From 001c1651b33071564ca6a9cd733f4ec2de5c1867 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Tue, 21 Jul 2026 16:26:13 +0200 Subject: [PATCH 1/9] Feat: Add pre-commit & cr_checker This commit adds the cr_checker from the `tools` repo. It works as replacement of the old one from tooling. I also added pre-commit to ensure at least some code quality --- .github/ISSUE_TEMPLATE/bug_fix.md | 2 - .github/actionlint.yaml | 7 ++ .github/actions/gitlint/action.yml | 2 +- .pre-commit-config.yaml | 82 +++++++++++++++++++ .venv_docs | 1 + .vscode/restructuredtext.code-snippets | 2 +- BUILD | 12 +-- CONTRIBUTION.md | 13 +++ MODULE.bazel | 5 ++ MODULE.bazel.lock | 36 ++++++-- README.md | 13 +++ .../time/_assets/architecture_layers.puml | 13 +++ .../features/time/_assets/class_overview.puml | 13 +++ .../high_res_steady_time/ht1_polling.puml | 13 +++ .../_assets/steady_clock/st1_polling.puml | 13 +++ .../_assets/system_clock/sc1_polling.puml | 13 +++ .../_assets/testing/t1_scoped_override.puml | 13 +++ .../time/_assets/testing/t2_test_factory.puml | 13 +++ .../_assets/vehicle_time/vt1_polling.puml | 13 +++ .../vehicle_time/vt2_availability.puml | 13 +++ .../vehicle_time/vt3_subscription.puml | 13 +++ .../vehicle_time/vt4_status_subscription.puml | 13 +++ .../_assets/vehicle_time/vt5_diagnostics.puml | 13 +++ docs/features/time/index.rst | 14 ++++ .../time_daemon/_assets/app/app_class.puml | 13 +++ .../time_daemon/_assets/app/app_init_seq.puml | 13 +++ .../_assets/app/app_workflow_seq.puml | 13 +++ .../_assets/ctrlflow/ctrlflow_class.puml | 13 +++ .../_assets/ctrlflow/ctrlflow_init_seq.puml | 13 +++ .../ctrlflow/ctrlflow_workflow_seq.puml | 13 +++ .../time_daemon/_assets/dd_class.puml | 13 +++ .../_assets/dd_data_control_flow.puml | 13 +++ .../time_daemon/_assets/dd_deployment.puml | 13 +++ .../abs_time/abs_time_data_control_flow.puml | 13 +++ .../abs_time/abs_time_deployment.puml | 13 +++ .../examples/qvt/qvt_data_control_flow.puml | 13 +++ .../_assets/examples/qvt/qvt_deployment.puml | 13 +++ .../time_daemon/_assets/ipc/ipc_class.puml | 13 +++ .../time_daemon/_assets/ipc/ipc_init_seq.puml | 13 +++ .../_assets/ipc/ipc_publish_seq.puml | 13 +++ .../_assets/ipc/ipc_receive_seq.puml | 13 +++ .../_assets/msg_broker/msg_broker_class.puml | 13 +++ .../msg_broker/msg_broker_init_seq.puml | 13 +++ .../msg_broker/msg_broker_workflow_seq.puml | 13 +++ .../time_daemon/_assets/mw/mw_class.puml | 13 +++ .../_assets/mw/mw_time_receive_seq.puml | 13 +++ .../mw/mw_time_receive_simple_seq.puml | 13 +++ .../ptp_machine/ptp_machine_class.puml | 13 +++ .../ptp_machine_get_new_data_seq.puml | 13 +++ .../ptp_machine/ptp_machine_init_seq.puml | 13 +++ .../time_daemon/_assets/sad_deployment.puml | 13 +++ .../_assets/ver_machine/ver_class.puml | 13 +++ .../_assets/ver_machine/ver_init_seq.puml | 13 +++ .../ver_machine/ver_verification_seq.puml | 13 +++ docs/features/time_daemon/index.rst | 14 ++++ .../gptp_engine/gptp_engine_class.puml | 13 +++ .../_assets/gptp_engine/gptp_threading.puml | 13 +++ .../shm_ptp_engine/shm_ptp_engine_class.puml | 13 +++ .../shm_ptp_engine_init_seq.puml | 13 +++ .../shm_ptp_engine_read_seq.puml | 13 +++ .../time_slave/_assets/timeslave_class.puml | 13 +++ .../_assets/timeslave_data_flow.puml | 13 +++ .../_assets/timeslave_deployment.puml | 13 +++ .../_assets/ts_client/ipc_channel.puml | 13 +++ .../_assets/ts_client/ipc_sequence.puml | 13 +++ docs/features/time_slave/index.rst | 14 ++++ pyproject.toml | 50 ++++++++++- tools/qnx_credential_helper.py | 2 +- tools/run_tool.sh | 38 +++++++++ 69 files changed, 955 insertions(+), 28 deletions(-) create mode 100644 .github/actionlint.yaml create mode 100644 .pre-commit-config.yaml create mode 120000 .venv_docs create mode 100755 tools/run_tool.sh diff --git a/.github/ISSUE_TEMPLATE/bug_fix.md b/.github/ISSUE_TEMPLATE/bug_fix.md index 5c0c5e32..89c35e36 100644 --- a/.github/ISSUE_TEMPLATE/bug_fix.md +++ b/.github/ISSUE_TEMPLATE/bug_fix.md @@ -22,5 +22,3 @@ assignees: '' > [!IMPORTANT] > Make sure to link this issue with the PR for your bugfix. - - diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml new file mode 100644 index 00000000..8517a8c5 --- /dev/null +++ b/.github/actionlint.yaml @@ -0,0 +1,7 @@ +self-hosted-runner: + labels: [] + +paths: + .github/workflows/**/*.{yml,yaml}: + ignore: + - 'file "/bin/sh" does not exist.*entrypoint' diff --git a/.github/actions/gitlint/action.yml b/.github/actions/gitlint/action.yml index cb16e6ff..b96f49fd 100644 --- a/.github/actions/gitlint/action.yml +++ b/.github/actions/gitlint/action.yml @@ -23,7 +23,7 @@ inputs: required: false runs: using: "docker" - image: "jorisroovers/gitlint:0.19.1" + image: "docker://jorisroovers/gitlint:0.19.1" entrypoint: /bin/sh args: - -c diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..4f0c8de0 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,82 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: check-yaml + args: ["-m"] + - id: check-toml + - id: check-json + exclude: ^\.vscode/ # those are actually jsonc files + - id: end-of-file-fixer + - id: trailing-whitespace + - id: check-merge-conflict + - id: check-case-conflict + - id: mixed-line-ending + - id: detect-private-key + - id: check-added-large-files + args: ["--maxkb=150"] + + - repo: local + hooks: + - id: bazel-mod-tidy + name: format Bazel module files + entry: bazel mod tidy + language: system + pass_filenames: false + files: '(^|/)(MODULE\.bazel|.*\.bzl|BUILD(\.bazel)?)$' + + - id: bzlmod-lockfile + name: bazel mod deps lockfile check + entry: bazel mod deps --lockfile_mode=error + language: system + pass_filenames: false + files: '(^|/)MODULE\.bazel(\.lock)?$' + + - id: actionlint + name: actionlint + # Disable shellcheck and pyflakes for now, to enforce consistent behavior. + entry: tools/run_tool.sh actionlint -shellcheck= -pyflakes= + language: system + require_serial: true + types: [yaml] + files: ^\.github/workflows/ + - id: ruff-check + name: ruff-check + entry: tools/run_tool.sh ruff check --fix + language: system + require_serial: true + types: [python] + - id: ruff-format + name: ruff-format + entry: tools/run_tool.sh ruff format + language: system + require_serial: true + types: [python] + + # Note: this is super slow, therefore it is last + - repo: local + hooks: + - id: BasedPyright + name: BasedPyright + entry: bash -c '. .venv_docs/bin/activate && bazel run //:ide_support && .venv_docs/bin/python3 -m basedpyright && deactivate' + language: system + pass_filenames: false + + # Ensure every file has a copyright header as per the Eclipse Foundation's requirements + # Runs `cr_checker` + - repo: https://github.com/eclipse-score/tools + rev: 7694bf823421b5542cd2f45239b8bdf205dbface + hooks: + - id: copyright diff --git a/.venv_docs b/.venv_docs new file mode 120000 index 00000000..96c3e880 --- /dev/null +++ b/.venv_docs @@ -0,0 +1 @@ +/home/maximilianp/.cache/bazel/_bazel_maximilianp/e21129910acadb4e6a77c10ca6c1c7f2/execroot/_main/bazel-out/k8-fastbuild/bin/.ide_support \ No newline at end of file diff --git a/.vscode/restructuredtext.code-snippets b/.vscode/restructuredtext.code-snippets index bde982f1..1e663538 100644 --- a/.vscode/restructuredtext.code-snippets +++ b/.vscode/restructuredtext.code-snippets @@ -344,4 +344,4 @@ " ${7}" ] } -} \ No newline at end of file +} diff --git a/BUILD b/BUILD index cfb90305..c98ffbd6 100644 --- a/BUILD +++ b/BUILD @@ -13,6 +13,7 @@ load("@score_docs_as_code//:docs.bzl", "docs") load("@score_tooling//:defs.bzl", "copyright_checker", "dash_license_checker", "setup_starpls", "use_format_targets") +load("@score_tools//cr_checker:cr_checker.bzl", "copyright_checker") load("//:project_config.bzl", "PROJECT_CONFIG") setup_starpls( @@ -29,17 +30,6 @@ docs( copyright_checker( name = "copyright", - srcs = [ - ".github", - "docs", - "examples", - "score", - "tools", - "//:BUILD", - "//:MODULE.bazel", - ], - config = "@score_tooling//cr_checker/resources:config", - template = "@score_tooling//cr_checker/resources:templates", visibility = ["//visibility:public"], ) diff --git a/CONTRIBUTION.md b/CONTRIBUTION.md index dcc54e64..739aec3b 100644 --- a/CONTRIBUTION.md +++ b/CONTRIBUTION.md @@ -1,3 +1,16 @@ + + # Eclipse Safe Open Vehicle Core (SCORE) The [Eclipse Safe Open Vehicle Core](https://projects.eclipse.org/projects/automotive.score) project aims to develop an open-source core stack for Software Defined Vehicles (SDVs), specifically targeting embedded high-performance Electronic Control Units (ECUs). Please check the [documentation](https://eclipse-score.github.io) for more information. diff --git a/MODULE.bazel b/MODULE.bazel index 19aa03e7..047f703c 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -152,3 +152,8 @@ python.toolchain( is_default = True, python_version = PYTHON_VERSION, ) + +bazel_dep(name = "score_tools", version = "0.0.1", dev_dependency = True) + +# Provide the tools from the devcontainer to Bazel +bazel_dep(name = "score_devcontainer", version = "1.8.0") diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock index d00620c0..75383789 100644 --- a/MODULE.bazel.lock +++ b/MODULE.bazel.lock @@ -63,10 +63,12 @@ "https://bcr.bazel.build/modules/aspect_rules_lint/2.7.1/source.json": "afc63f90e4fbcdcb9ec01a472609b8b778efb86156ae34ff4a58a1a2262489d7", "https://bcr.bazel.build/modules/aspect_rules_py/1.0.0/MODULE.bazel": "8eb29876512d3242af50a424300bec5c5f8957b455963df5f618cb7fd4e8ae19", "https://bcr.bazel.build/modules/aspect_rules_py/1.4.0/MODULE.bazel": "6fd29b93207a31445d5d3ab9d9882fd5511e43c95e8e82e7492872663720fd44", - "https://bcr.bazel.build/modules/aspect_rules_py/1.4.0/source.json": "fb1ba946478fb6dbb26d49307d756b0fd2ff88be339af23c39c0397d59143d2c", + "https://bcr.bazel.build/modules/aspect_rules_py/1.6.3/MODULE.bazel": "a34d989f9a258f478b40f69a0c1dd0a810b65173681b459c296ffeebabd997b0", + "https://bcr.bazel.build/modules/aspect_rules_py/1.6.3/source.json": "aac06d362804a5a4c1424efc37fc1ded6c6ac7d8be84ef28f735944f8a1f884d", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.0/MODULE.bazel": "d0045b5eabb012be550a609589b3e5e47eba682344b19cfd9365d4d896ed07df", "https://bcr.bazel.build/modules/aspect_rules_ts/3.6.0/source.json": "5593e3f1cd0dd5147f7748e163307fd5c2e1077913d6945b58739ad8d770a290", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.5/MODULE.bazel": "5a3c8013c3ba9ebc0a65efda40e4376b869e1260873c98020504feed55244ce8", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "cafb8781ad591bc57cc765dca5fefab08cf9f65af363d162b79d49205c7f8af7", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "aa975a83e72bcaac62ee61ab12b788ea324a1d05c4aab28aadb202f647881679", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", @@ -631,8 +633,10 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_lint/2.7.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.0.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.4.0/MODULE.bazel": "not found", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_py/1.6.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_rules_ts/3.6.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.2.5/MODULE.bazel": "not found", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.2.6/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.2.8/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/bazel_features/0.1.0/MODULE.bazel": "not found", @@ -1017,7 +1021,8 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_crates/0.0.9/MODULE.bazel": "8f581e0a658a6dab149f381d783443cb00b559f4e9623956f8ff3de06108c550", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_dash_license_checker/0.1.1/MODULE.bazel": "76681dbd2d45b5c540869a2337174086c56c54953aab1d02cd878b59d31d13a5", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.7.0/MODULE.bazel": "f9a5971fbd05f0ed14e7a373dbf58af72a5c58d081537a75c314daaf61c92ae9", - "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.7.0/source.json": "a3f55522fd9f63fae7a92f3cb5f91c25ae7474a39e9f9c633f0cf797fc0ca8e5", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.8.0/MODULE.bazel": "89f855b94d041d2e61ff9667562fb4539c146249f6fb4c5dddf3d13bb9064aa7", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_devcontainer/1.8.0/source.json": "ef316fad71fdbd53daf43fc0a82fbc7c293908a2712214ff79134c177d028024", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.2.4/MODULE.bazel": "ea4801e96c87e2b8650a0fa9e5fed9b8bdbef05c1bc3e30003ba527d5af60a43", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.2.6/MODULE.bazel": "1af2963e91c6472555e222f0aba3dc2f5492d04598298209a361978ee3e321e3", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_docs_as_code/0.3.3/MODULE.bazel": "95d2b7d44d461c1cf9bd016605f740716fd4ea1303f5f2ed93de3566b90feb1b", @@ -1069,6 +1074,8 @@ "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.5/MODULE.bazel": "7de02547bdf121d3dedf5141b97f0fd9a545bd255ff5c7b699056b35816ffad9", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_rust_policies/0.0.5/source.json": "22c8bf0a5cbf7c7b06f774f3f66498e0bc14346a8b2208f7427a8fbb78a42547", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_starpls_lsp/0.1.0/MODULE.bazel": "b2f8c4c8d8e851706255ff9002b448bff6e040b8f0c6adedbde2a09375aa16cc", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tools/0.0.1/MODULE.bazel": "eb0d44c5480ae91ecbc0e36ff2c81cd33b0afa13c247956da7fca3710d6fa017", + "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/score_tools/0.0.1/source.json": "745dc7cf996657e0e69ad79917d8bc9647adabaeff95b2266b7b852abe66a502", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/stardoc/0.5.0/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/stardoc/0.5.1/MODULE.bazel": "not found", "https://raw.githubusercontent.com/eclipse-score/bazel_registry/main/modules/stardoc/0.5.3/MODULE.bazel": "not found", @@ -1422,8 +1429,8 @@ }, "@@aspect_rules_py+//py:extensions.bzl%py_tools": { "general": { - "bzlTransitiveDigest": "VfJYy1B5v3oMq9SNoz4hGTKf+uJgqbxHJYD8rdhivHo=", - "usagesDigest": "NC1b49l5tenTBVWEUGzzC0j5Kg1GH+l5lBw5JRCldIU=", + "bzlTransitiveDigest": "djt7CfplACDm3/SXXCwxDEtkvXV2TzCov+MMdxDmYyw=", + "usagesDigest": "tVlELaqQFX7HPl1uFzRY9m7nVV7tY9roq1qfK75ApwE=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -1471,25 +1478,25 @@ } }, "rules_py_tools.darwin_amd64": { - "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:tools.bzl%prebuilt_tool_repo", + "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:repo.bzl%prebuilt_tool_repo", "attributes": { "platform": "darwin_amd64" } }, "rules_py_tools.darwin_arm64": { - "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:tools.bzl%prebuilt_tool_repo", + "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:repo.bzl%prebuilt_tool_repo", "attributes": { "platform": "darwin_arm64" } }, "rules_py_tools.linux_amd64": { - "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:tools.bzl%prebuilt_tool_repo", + "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:repo.bzl%prebuilt_tool_repo", "attributes": { "platform": "linux_amd64" } }, "rules_py_tools.linux_arm64": { - "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:tools.bzl%prebuilt_tool_repo", + "repoRuleId": "@@aspect_rules_py+//py/private/toolchain:repo.bzl%prebuilt_tool_repo", "attributes": { "platform": "linux_arm64" } @@ -1522,6 +1529,16 @@ "aspect_bazel_lib", "aspect_bazel_lib+" ], + [ + "aspect_rules_py+", + "aspect_tools_telemetry_report", + "aspect_tools_telemetry++telemetry+aspect_tools_telemetry_report" + ], + [ + "aspect_rules_py+", + "bazel_skylib", + "bazel_skylib+" + ], [ "aspect_rules_py+", "bazel_tools", @@ -1533,7 +1550,7 @@ "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { "general": { "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", - "usagesDigest": "tiZsmifkpLM+xnn6EXkTF48bYLsbvhr5rcGkv4SuImc=", + "usagesDigest": "en09+0dIP5SFoDRg5oFK1oiymh8SvqQM5anFivYitug=", "recordedFileInputs": {}, "recordedDirentsInputs": {}, "envVariables": {}, @@ -1543,6 +1560,7 @@ "attributes": { "deps": { "aspect_rules_lint": "2.7.1", + "aspect_rules_py": "1.6.3", "aspect_tools_telemetry": "0.3.3" } } diff --git a/README.md b/README.md index 1e8af750..261b849a 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,16 @@ + + # C++ & Rust Bazel Template Repository diff --git a/docs/features/time/_assets/architecture_layers.puml b/docs/features/time/_assets/architecture_layers.puml index 71c5dd4d..b7a038fb 100644 --- a/docs/features/time/_assets/architecture_layers.puml +++ b/docs/features/time/_assets/architecture_layers.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml architecture_layers title score::time — Architecture Layers diff --git a/docs/features/time/_assets/class_overview.puml b/docs/features/time/_assets/class_overview.puml index 5d88ec18..586b6693 100644 --- a/docs/features/time/_assets/class_overview.puml +++ b/docs/features/time/_assets/class_overview.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml class_overview title score::time — Class Overview diff --git a/docs/features/time/_assets/high_res_steady_time/ht1_polling.puml b/docs/features/time/_assets/high_res_steady_time/ht1_polling.puml index 19154bb6..162f438c 100644 --- a/docs/features/time/_assets/high_res_steady_time/ht1_polling.puml +++ b/docs/features/time/_assets/high_res_steady_time/ht1_polling.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ht1_polling title HT1 — HighResSteadyTime: Time Polling diff --git a/docs/features/time/_assets/steady_clock/st1_polling.puml b/docs/features/time/_assets/steady_clock/st1_polling.puml index 913479fd..2dcf0380 100644 --- a/docs/features/time/_assets/steady_clock/st1_polling.puml +++ b/docs/features/time/_assets/steady_clock/st1_polling.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml st1_polling title ST1 — SteadyClock: Time Polling diff --git a/docs/features/time/_assets/system_clock/sc1_polling.puml b/docs/features/time/_assets/system_clock/sc1_polling.puml index f79ce5a4..b42a811c 100644 --- a/docs/features/time/_assets/system_clock/sc1_polling.puml +++ b/docs/features/time/_assets/system_clock/sc1_polling.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml sc1_polling title SC1 — SystemClock: Time Polling diff --git a/docs/features/time/_assets/testing/t1_scoped_override.puml b/docs/features/time/_assets/testing/t1_scoped_override.puml index c4eee024..c35bf73a 100644 --- a/docs/features/time/_assets/testing/t1_scoped_override.puml +++ b/docs/features/time/_assets/testing/t1_scoped_override.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml t1_scoped_override title T1 — Testing: ScopedClockOverride (Scope-Bound Override) diff --git a/docs/features/time/_assets/testing/t2_test_factory.puml b/docs/features/time/_assets/testing/t2_test_factory.puml index a4b85ac9..c6747c1a 100644 --- a/docs/features/time/_assets/testing/t2_test_factory.puml +++ b/docs/features/time/_assets/testing/t2_test_factory.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml t2_test_factory title T2 — Testing: ClockTestFactory (Constructor Injection) diff --git a/docs/features/time/_assets/vehicle_time/vt1_polling.puml b/docs/features/time/_assets/vehicle_time/vt1_polling.puml index 5fe8d05d..9093d7b7 100644 --- a/docs/features/time/_assets/vehicle_time/vt1_polling.puml +++ b/docs/features/time/_assets/vehicle_time/vt1_polling.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml vt1_polling title VT1 — VehicleTime: Time Polling with Status Check diff --git a/docs/features/time/_assets/vehicle_time/vt2_availability.puml b/docs/features/time/_assets/vehicle_time/vt2_availability.puml index 9bbea636..3b21bbb8 100644 --- a/docs/features/time/_assets/vehicle_time/vt2_availability.puml +++ b/docs/features/time/_assets/vehicle_time/vt2_availability.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml vt2_availability title VT2 — VehicleTime: Initialization and Readiness Check diff --git a/docs/features/time/_assets/vehicle_time/vt3_subscription.puml b/docs/features/time/_assets/vehicle_time/vt3_subscription.puml index 5eaf5cf5..1baf80cf 100644 --- a/docs/features/time/_assets/vehicle_time/vt3_subscription.puml +++ b/docs/features/time/_assets/vehicle_time/vt3_subscription.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml vt3_subscription title VT3 — VehicleTime: Async PTP Protocol Data Subscription diff --git a/docs/features/time/_assets/vehicle_time/vt4_status_subscription.puml b/docs/features/time/_assets/vehicle_time/vt4_status_subscription.puml index 71e32047..0cfe90c0 100644 --- a/docs/features/time/_assets/vehicle_time/vt4_status_subscription.puml +++ b/docs/features/time/_assets/vehicle_time/vt4_status_subscription.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml vt4_status_subscription title VT4 — VehicleTime: Synchronization Status Subscription diff --git a/docs/features/time/_assets/vehicle_time/vt5_diagnostics.puml b/docs/features/time/_assets/vehicle_time/vt5_diagnostics.puml index 52901206..35f72b1c 100644 --- a/docs/features/time/_assets/vehicle_time/vt5_diagnostics.puml +++ b/docs/features/time/_assets/vehicle_time/vt5_diagnostics.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml vt5_diagnostics title VT5 — VehicleTime: Status Flag Inspection diff --git a/docs/features/time/index.rst b/docs/features/time/index.rst index 653b8a15..c58d8412 100644 --- a/docs/features/time/index.rst +++ b/docs/features/time/index.rst @@ -1,3 +1,17 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + score::time — Unified Clock Interface ====================================== diff --git a/docs/features/time_daemon/_assets/app/app_class.puml b/docs/features/time_daemon/_assets/app/app_class.puml index 81e37bf7..c5845bb8 100644 --- a/docs/features/time_daemon/_assets/app/app_class.puml +++ b/docs/features/time_daemon/_assets/app/app_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml application_class_diagram title Application: Class Diagram diff --git a/docs/features/time_daemon/_assets/app/app_init_seq.puml b/docs/features/time_daemon/_assets/app/app_init_seq.puml index ca562357..6c577df3 100644 --- a/docs/features/time_daemon/_assets/app/app_init_seq.puml +++ b/docs/features/time_daemon/_assets/app/app_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml app_init_seq_diagram title Application: Initialization Sequence diff --git a/docs/features/time_daemon/_assets/app/app_workflow_seq.puml b/docs/features/time_daemon/_assets/app/app_workflow_seq.puml index 78c9b92d..f4aac652 100644 --- a/docs/features/time_daemon/_assets/app/app_workflow_seq.puml +++ b/docs/features/time_daemon/_assets/app/app_workflow_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml app_init_seq_diagram title Application: Initialization Sequence diff --git a/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_class.puml b/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_class.puml index 01d701a5..78edc70e 100644 --- a/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_class.puml +++ b/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml control_flow_divider_class_diagram title ControlFlowDivider: Class Diagram diff --git a/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_init_seq.puml b/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_init_seq.puml index fac9a77d..84bb93f8 100644 --- a/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_init_seq.puml +++ b/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ctrlflow_init_seq_diagram title ControlFlowDivider: Initialization Sequence diff --git a/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_workflow_seq.puml b/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_workflow_seq.puml index 715eaec2..d8deb743 100644 --- a/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_workflow_seq.puml +++ b/docs/features/time_daemon/_assets/ctrlflow/ctrlflow_workflow_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml control_flow_divider_workflow title ControlFlowDivider: Main Workflow diff --git a/docs/features/time_daemon/_assets/dd_class.puml b/docs/features/time_daemon/_assets/dd_class.puml index e2b2d035..f104eee9 100644 --- a/docs/features/time_daemon/_assets/dd_class.puml +++ b/docs/features/time_daemon/_assets/dd_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_class_diagram title TimeDaemon: Class Diagram Overview diff --git a/docs/features/time_daemon/_assets/dd_data_control_flow.puml b/docs/features/time_daemon/_assets/dd_data_control_flow.puml index b4eed8f1..0a566e72 100644 --- a/docs/features/time_daemon/_assets/dd_data_control_flow.puml +++ b/docs/features/time_daemon/_assets/dd_data_control_flow.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_data_control_flow_diagram title TimeDaemon: Data and Control Flow diff --git a/docs/features/time_daemon/_assets/dd_deployment.puml b/docs/features/time_daemon/_assets/dd_deployment.puml index 82b2fc66..8e86f845 100644 --- a/docs/features/time_daemon/_assets/dd_deployment.puml +++ b/docs/features/time_daemon/_assets/dd_deployment.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_deployment_diagram title Deployment view diff --git a/docs/features/time_daemon/_assets/examples/abs_time/abs_time_data_control_flow.puml b/docs/features/time_daemon/_assets/examples/abs_time/abs_time_data_control_flow.puml index 9f05781c..10a2b19d 100644 --- a/docs/features/time_daemon/_assets/examples/abs_time/abs_time_data_control_flow.puml +++ b/docs/features/time_daemon/_assets/examples/abs_time/abs_time_data_control_flow.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_data_control_flow_diagram title VehicleTimeDaemon: Multi-Timebase Data Flow diff --git a/docs/features/time_daemon/_assets/examples/abs_time/abs_time_deployment.puml b/docs/features/time_daemon/_assets/examples/abs_time/abs_time_deployment.puml index ff5c38be..6ce14249 100644 --- a/docs/features/time_daemon/_assets/examples/abs_time/abs_time_deployment.puml +++ b/docs/features/time_daemon/_assets/examples/abs_time/abs_time_deployment.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_deployment_diagram title Deployment view diff --git a/docs/features/time_daemon/_assets/examples/qvt/qvt_data_control_flow.puml b/docs/features/time_daemon/_assets/examples/qvt/qvt_data_control_flow.puml index 8e30bea1..2b088090 100644 --- a/docs/features/time_daemon/_assets/examples/qvt/qvt_data_control_flow.puml +++ b/docs/features/time_daemon/_assets/examples/qvt/qvt_data_control_flow.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_data_control_flow_diagram title VehicleTimeDaemon: Data and Control Flow diff --git a/docs/features/time_daemon/_assets/examples/qvt/qvt_deployment.puml b/docs/features/time_daemon/_assets/examples/qvt/qvt_deployment.puml index 897853d2..b659d8a9 100644 --- a/docs/features/time_daemon/_assets/examples/qvt/qvt_deployment.puml +++ b/docs/features/time_daemon/_assets/examples/qvt/qvt_deployment.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml dd_deployment_diagram title Deployment view diff --git a/docs/features/time_daemon/_assets/ipc/ipc_class.puml b/docs/features/time_daemon/_assets/ipc/ipc_class.puml index 0b19cf97..b84830e6 100644 --- a/docs/features/time_daemon/_assets/ipc/ipc_class.puml +++ b/docs/features/time_daemon/_assets/ipc/ipc_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ipc_class_diagram title IPC: Class Diagram diff --git a/docs/features/time_daemon/_assets/ipc/ipc_init_seq.puml b/docs/features/time_daemon/_assets/ipc/ipc_init_seq.puml index 48d3c3e4..8662325d 100644 --- a/docs/features/time_daemon/_assets/ipc/ipc_init_seq.puml +++ b/docs/features/time_daemon/_assets/ipc/ipc_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ipc_init_seq_diagram title IPC Machine: Initialization diff --git a/docs/features/time_daemon/_assets/ipc/ipc_publish_seq.puml b/docs/features/time_daemon/_assets/ipc/ipc_publish_seq.puml index db37a02e..07bba532 100644 --- a/docs/features/time_daemon/_assets/ipc/ipc_publish_seq.puml +++ b/docs/features/time_daemon/_assets/ipc/ipc_publish_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ipc_publish_seq_diagram title IPC Machine: Publishing new TimeInfo data diff --git a/docs/features/time_daemon/_assets/ipc/ipc_receive_seq.puml b/docs/features/time_daemon/_assets/ipc/ipc_receive_seq.puml index 5d4b8745..b2380464 100644 --- a/docs/features/time_daemon/_assets/ipc/ipc_receive_seq.puml +++ b/docs/features/time_daemon/_assets/ipc/ipc_receive_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ipc_receive_seq_diagram title IPC Machine: Receiving new TimeInfo data diff --git a/docs/features/time_daemon/_assets/msg_broker/msg_broker_class.puml b/docs/features/time_daemon/_assets/msg_broker/msg_broker_class.puml index 516ba856..3da05552 100644 --- a/docs/features/time_daemon/_assets/msg_broker/msg_broker_class.puml +++ b/docs/features/time_daemon/_assets/msg_broker/msg_broker_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml message_broker_class_diagram title MessageBroker: Class Diagram diff --git a/docs/features/time_daemon/_assets/msg_broker/msg_broker_init_seq.puml b/docs/features/time_daemon/_assets/msg_broker/msg_broker_init_seq.puml index ac401cd3..6e11d5c2 100644 --- a/docs/features/time_daemon/_assets/msg_broker/msg_broker_init_seq.puml +++ b/docs/features/time_daemon/_assets/msg_broker/msg_broker_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml message_broker_initialization_sequence_diagram title MessageBroker: Initialization Sequence diff --git a/docs/features/time_daemon/_assets/msg_broker/msg_broker_workflow_seq.puml b/docs/features/time_daemon/_assets/msg_broker/msg_broker_workflow_seq.puml index 8ab97dcd..d09aec46 100644 --- a/docs/features/time_daemon/_assets/msg_broker/msg_broker_workflow_seq.puml +++ b/docs/features/time_daemon/_assets/msg_broker/msg_broker_workflow_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml message_broker_workflow_sequence_diagram title Message Broker: Workflow Diagram diff --git a/docs/features/time_daemon/_assets/mw/mw_class.puml b/docs/features/time_daemon/_assets/mw/mw_class.puml index ce117773..f87bc4bb 100644 --- a/docs/features/time_daemon/_assets/mw/mw_class.puml +++ b/docs/features/time_daemon/_assets/mw/mw_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml mw_time_svt_class_diagram title mw::time::svt: Class Diagram diff --git a/docs/features/time_daemon/_assets/mw/mw_time_receive_seq.puml b/docs/features/time_daemon/_assets/mw/mw_time_receive_seq.puml index 01ca54b6..da3824a6 100644 --- a/docs/features/time_daemon/_assets/mw/mw_time_receive_seq.puml +++ b/docs/features/time_daemon/_assets/mw/mw_time_receive_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml mw_time_receive_seq_diagram title mw::time::svt: Providing new Vehicle Time to Applications diff --git a/docs/features/time_daemon/_assets/mw/mw_time_receive_simple_seq.puml b/docs/features/time_daemon/_assets/mw/mw_time_receive_simple_seq.puml index ca27df74..84752234 100644 --- a/docs/features/time_daemon/_assets/mw/mw_time_receive_simple_seq.puml +++ b/docs/features/time_daemon/_assets/mw/mw_time_receive_simple_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml mw_time_receive_simple_seq_diagram title mw::time::svt: Providing new Vehicle Time to Applications (simplified) diff --git a/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_class.puml b/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_class.puml index 49b3f2c1..28e2d5da 100644 --- a/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_class.puml +++ b/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ptp_machine_class_diagram title PTPMachine: Class Diagram diff --git a/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_get_new_data_seq.puml b/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_get_new_data_seq.puml index 64e48d09..24d1ff3e 100644 --- a/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_get_new_data_seq.puml +++ b/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_get_new_data_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ptp_machine_data_publishing title PTPMachine: Periodic Data Publishing Workflow diff --git a/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_init_seq.puml b/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_init_seq.puml index 619602f7..a10df131 100644 --- a/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_init_seq.puml +++ b/docs/features/time_daemon/_assets/ptp_machine/ptp_machine_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml ptp_machine_initialization title PTPMachine: Initialization Sequence diff --git a/docs/features/time_daemon/_assets/sad_deployment.puml b/docs/features/time_daemon/_assets/sad_deployment.puml index 3b0da92b..33611c32 100644 --- a/docs/features/time_daemon/_assets/sad_deployment.puml +++ b/docs/features/time_daemon/_assets/sad_deployment.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml sad_deployment_diagram title Deployment view diff --git a/docs/features/time_daemon/_assets/ver_machine/ver_class.puml b/docs/features/time_daemon/_assets/ver_machine/ver_class.puml index 299b6f47..180a91d9 100644 --- a/docs/features/time_daemon/_assets/ver_machine/ver_class.puml +++ b/docs/features/time_daemon/_assets/ver_machine/ver_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml verification_machine_class_diagram title VerificationMachine: Class Diagram diff --git a/docs/features/time_daemon/_assets/ver_machine/ver_init_seq.puml b/docs/features/time_daemon/_assets/ver_machine/ver_init_seq.puml index 9e4a0bce..c0a5f21d 100644 --- a/docs/features/time_daemon/_assets/ver_machine/ver_init_seq.puml +++ b/docs/features/time_daemon/_assets/ver_machine/ver_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml verification_machine_init_sequence_diagram title VerificationMachine: Initialization Sequence diff --git a/docs/features/time_daemon/_assets/ver_machine/ver_verification_seq.puml b/docs/features/time_daemon/_assets/ver_machine/ver_verification_seq.puml index 09f5c4ba..dcacb2e7 100644 --- a/docs/features/time_daemon/_assets/ver_machine/ver_verification_seq.puml +++ b/docs/features/time_daemon/_assets/ver_machine/ver_verification_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml verification_machine_verification_sequence_diagram title VerificationMachine: Validation Workflow diff --git a/docs/features/time_daemon/index.rst b/docs/features/time_daemon/index.rst index 9af39f65..c2a8ba98 100644 --- a/docs/features/time_daemon/index.rst +++ b/docs/features/time_daemon/index.rst @@ -1,3 +1,17 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + Concept for TimeDaemon ======================= diff --git a/docs/features/time_slave/_assets/gptp_engine/gptp_engine_class.puml b/docs/features/time_slave/_assets/gptp_engine/gptp_engine_class.puml index 39209e23..ddb58bb0 100644 --- a/docs/features/time_slave/_assets/gptp_engine/gptp_engine_class.puml +++ b/docs/features/time_slave/_assets/gptp_engine/gptp_engine_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml !theme plain diff --git a/docs/features/time_slave/_assets/gptp_engine/gptp_threading.puml b/docs/features/time_slave/_assets/gptp_engine/gptp_threading.puml index 79ee3b2a..dd9e4d55 100644 --- a/docs/features/time_slave/_assets/gptp_engine/gptp_threading.puml +++ b/docs/features/time_slave/_assets/gptp_engine/gptp_threading.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml gptp_threading_model title gPTP Engine Threading Model diff --git a/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_class.puml b/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_class.puml index 1b5486c6..76b8ac8c 100644 --- a/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_class.puml +++ b/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml shm_ptp_engine_class_diagram !theme plain diff --git a/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_init_seq.puml b/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_init_seq.puml index 1a3d2f62..869223ad 100644 --- a/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_init_seq.puml +++ b/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_init_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml shm_ptp_engine_init_seq !theme plain diff --git a/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_read_seq.puml b/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_read_seq.puml index 0a6a9142..319fcabf 100644 --- a/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_read_seq.puml +++ b/docs/features/time_slave/_assets/shm_ptp_engine/shm_ptp_engine_read_seq.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml shm_ptp_engine_read_seq !theme plain diff --git a/docs/features/time_slave/_assets/timeslave_class.puml b/docs/features/time_slave/_assets/timeslave_class.puml index 6e2560ab..bc43227f 100644 --- a/docs/features/time_slave/_assets/timeslave_class.puml +++ b/docs/features/time_slave/_assets/timeslave_class.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml !theme plain diff --git a/docs/features/time_slave/_assets/timeslave_data_flow.puml b/docs/features/time_slave/_assets/timeslave_data_flow.puml index 3981db47..dd3ebbf2 100644 --- a/docs/features/time_slave/_assets/timeslave_data_flow.puml +++ b/docs/features/time_slave/_assets/timeslave_data_flow.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml !theme plain diff --git a/docs/features/time_slave/_assets/timeslave_deployment.puml b/docs/features/time_slave/_assets/timeslave_deployment.puml index 2e922ca9..2cd6c955 100644 --- a/docs/features/time_slave/_assets/timeslave_deployment.puml +++ b/docs/features/time_slave/_assets/timeslave_deployment.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml !theme plain skinparam nodesep 40 diff --git a/docs/features/time_slave/_assets/ts_client/ipc_channel.puml b/docs/features/time_slave/_assets/ts_client/ipc_channel.puml index ba0ce3c7..6530d2fe 100644 --- a/docs/features/time_slave/_assets/ts_client/ipc_channel.puml +++ b/docs/features/time_slave/_assets/ts_client/ipc_channel.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml !theme plain diff --git a/docs/features/time_slave/_assets/ts_client/ipc_sequence.puml b/docs/features/time_slave/_assets/ts_client/ipc_sequence.puml index 4139f95b..7863f11d 100644 --- a/docs/features/time_slave/_assets/ts_client/ipc_sequence.puml +++ b/docs/features/time_slave/_assets/ts_client/ipc_sequence.puml @@ -1,3 +1,16 @@ +' ******************************************************************************* +' Copyright (c) 2026 Contributors to the Eclipse Foundation +' +' See the NOTICE file(s) distributed with this work for additional +' information regarding copyright ownership. +' +' This program and the accompanying materials are made available under the +' terms of the Apache License Version 2.0 which is available at +' https://www.apache.org/licenses/LICENSE-2.0 +' +' SPDX-License-Identifier: Apache-2.0 +' ******************************************************************************* + @startuml !theme plain diff --git a/docs/features/time_slave/index.rst b/docs/features/time_slave/index.rst index 31d2585f..87777390 100644 --- a/docs/features/time_slave/index.rst +++ b/docs/features/time_slave/index.rst @@ -1,3 +1,17 @@ +.. + # ******************************************************************************* + # Copyright (c) 2026 Contributors to the Eclipse Foundation + # + # See the NOTICE file(s) distributed with this work for additional + # information regarding copyright ownership. + # + # This program and the accompanying materials are made available under the + # terms of the Apache License Version 2.0 which is available at + # https://www.apache.org/licenses/LICENSE-2.0 + # + # SPDX-License-Identifier: Apache-2.0 + # ******************************************************************************* + Concept for TimeSlave ====================== diff --git a/pyproject.toml b/pyproject.toml index 5819ca5a..05490ab1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,9 +1,53 @@ -[tool.basedpyright] -extends = "bazel-bin/ide_support.runfiles/score_tooling+/python_basics/pyproject.toml" -verboseOutput = true +# This file is at the root level, as it applies to all Python code, +# not only to docs or to tools. + +[tool.pyright] +typeCheckingMode = "standard" +pythonVersion = "3.12" # Keep in sync with MODULE.bazel + +# Warn if function parameters lack type annotations +reportMissingParameterType = "warning" + +# Warn if generic types (e.g. List) are missing type args +reportMissingTypeArgument = "warning" + +# Warn when using members marked as private (e.g. _log) +reportPrivateUsage = "warning" + +# Warn when variable type can't be inferred or is 'Any' +reportUnknownVariableType = "warning" + +# Warn about declared but unused variables +reportUnusedVariable = "warning" exclude = [ "**/__pycache__", "**/.*", "**/bazel-*", ] + +[tool.ruff] +#line-length=59 +target-version = "py312" # Keep in sync with MODULE.bazel +extend-exclude = [ + "__pycache__", + ".*", + "bazel-*", +] + +# Selected rules for clean code, readability, and bug prevention +lint.select = [ + "E", # pycodestyle (PEP8) + "F", # pyflakes (undefined vars, unused imports) + "I", # isort (import sorting) + "B", # flake8-bugbear (likely bugs) + "C90", # mccabe (complexity checks) + "UP", # pyupgrade (modern Python 3.12+ features) + "SIM", # flake8-simplify (simplifies code patterns) + "RET" # flake8-return (consistent return statements) +] + +lint.ignore = [ + # Rules we want to ignore go in here. + # Always provide a comment explaining why. +] diff --git a/tools/qnx_credential_helper.py b/tools/qnx_credential_helper.py index 05819cbb..75387d1b 100755 --- a/tools/qnx_credential_helper.py +++ b/tools/qnx_credential_helper.py @@ -65,7 +65,7 @@ def eprint(*args, **kwargs): sys.exit(1) cookies = {c.name: c.value for c in list(cookie_jar)} - if not "myQNX" in cookies: + if "myQNX" not in cookies: eprint("Failed to get myQNX cookie from login page") sys.exit(1) diff --git a/tools/run_tool.sh b/tools/run_tool.sh new file mode 100755 index 00000000..e4fa335b --- /dev/null +++ b/tools/run_tool.sh @@ -0,0 +1,38 @@ +#!/usr/bin/env bash + +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +# Unified entry point for running a CLI tool by name. +# Inside a container the tool is expected on PATH; outside, it is resolved via Bazel. +# See https://github.com/eclipse-score/devcontainer/tree/main/tools for further information. + +set -euo pipefail + +if [[ "$#" -lt 1 ]]; then + echo "Usage: $0 [args...]" >&2 + exit 2 +fi + +tool_name="$1" +shift + +if { [[ -f /.dockerenv ]] || [[ -f /run/.containerenv ]] || [[ -d /devcontainer ]]; } && + command -v "${tool_name}" >/dev/null 2>&1; then + exec "${tool_name}" "$@" +elif command -v bazel >/dev/null 2>&1; then + exec bazel run "@score_devcontainer//tools:${tool_name}" -- "$@" +else + echo "Could not run '${tool_name}': not available on PATH in a container, and bazel was not found." >&2 + exit 127 +fi From 0cd94bfce741eb73d2d5b3531a7df6b870af0aed Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Tue, 21 Jul 2026 16:37:22 +0200 Subject: [PATCH 2/9] fix: add pre-commit to README --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 261b849a..ad0638d3 100644 --- a/README.md +++ b/README.md @@ -83,6 +83,14 @@ artifacts of the module. bazel test //tests/... ``` +### 4️⃣ Run pre-commit Checks + +```sh +pre-commit run -a +``` + +This runs all configured pre-commit hooks (formatting, linting, etc.) against all files in the repository. + --- ## 🛠 Tools & Linters From 9a5a91c460b9660969a0a729646583dace0e7557 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Tue, 21 Jul 2026 16:41:13 +0200 Subject: [PATCH 3/9] chore: Fix copyright header --- .github/actionlint.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index 8517a8c5..abfc9363 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -1,3 +1,16 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + self-hosted-runner: labels: [] From 0177e58ee1a977ed1bddf85fb37cec4859177875 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Wed, 22 Jul 2026 11:05:12 +0200 Subject: [PATCH 4/9] fix: remove not needed files --- .gitignore | 1 + .venv_docs | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 120000 .venv_docs diff --git a/.gitignore b/.gitignore index 085f857a..ae8c9960 100644 --- a/.gitignore +++ b/.gitignore @@ -51,5 +51,6 @@ styles/ # Python .venv +.venv_docs __pycache__/ /.coverage diff --git a/.venv_docs b/.venv_docs deleted file mode 120000 index 96c3e880..00000000 --- a/.venv_docs +++ /dev/null @@ -1 +0,0 @@ -/home/maximilianp/.cache/bazel/_bazel_maximilianp/e21129910acadb4e6a77c10ca6c1c7f2/execroot/_main/bazel-out/k8-fastbuild/bin/.ide_support \ No newline at end of file From 5aacc854bd17ba79d77cbd21439e0d209f03d217 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Wed, 22 Jul 2026 11:15:12 +0200 Subject: [PATCH 5/9] fix: Make dev_dependency for devcontainer --- MODULE.bazel | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MODULE.bazel b/MODULE.bazel index 047f703c..8d3e00c2 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -156,4 +156,4 @@ python.toolchain( bazel_dep(name = "score_tools", version = "0.0.1", dev_dependency = True) # Provide the tools from the devcontainer to Bazel -bazel_dep(name = "score_devcontainer", version = "1.8.0") +bazel_dep(name = "score_devcontainer", version = "1.8.0", dev_dependency = True) From f2a798e348fda0601c7403b609d9766c4203a143 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Wed, 22 Jul 2026 11:21:40 +0200 Subject: [PATCH 6/9] Feat: Add on-pr The `on-pr` workflow from cicd workflows has all the things we need to execute and has the right permissions. --- .github/workflows/on-pr.yml | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .github/workflows/on-pr.yml diff --git a/.github/workflows/on-pr.yml b/.github/workflows/on-pr.yml new file mode 100644 index 00000000..36b7c131 --- /dev/null +++ b/.github/workflows/on-pr.yml @@ -0,0 +1,32 @@ +# ******************************************************************************* +# Copyright (c) 2026 Contributors to the Eclipse Foundation +# +# See the NOTICE file(s) distributed with this work for additional +# information regarding copyright ownership. +# +# This program and the accompanying materials are made available under the +# terms of the Apache License Version 2.0 which is available at +# https://www.apache.org/licenses/LICENSE-2.0 +# +# SPDX-License-Identifier: Apache-2.0 +# ******************************************************************************* + +name: PR Checks + +on: + pull_request: + types: [opened, reopened, synchronize] + merge_group: + types: [checks_requested] + push: + branches: + - main + + +jobs: + # Common S-CORE Workflow + + common: + uses: eclipse-score/cicd-workflows/.github/workflows/on-pr.yml@88cb460c47cb49efeb25cd7b73c8945dd1c5bce2 # on-pr/v0.0.0 + permissions: + contents: read From dc77c23623d1590a9f2be76eaeee0d3fe20d9b96 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Wed, 22 Jul 2026 11:40:42 +0200 Subject: [PATCH 7/9] fix: pre-commit command --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 4f0c8de0..8b50427e 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -70,7 +70,7 @@ repos: hooks: - id: BasedPyright name: BasedPyright - entry: bash -c '. .venv_docs/bin/activate && bazel run //:ide_support && .venv_docs/bin/python3 -m basedpyright && deactivate' + entry: bash -c 'bazel run //:ide_support && .venv_docs/bin/python3 -m basedpyright' language: system pass_filenames: false From 3d82bd41245ae90e0fe3d7f4517aee09bd9c181a Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Wed, 22 Jul 2026 14:51:19 +0200 Subject: [PATCH 8/9] fix: Fix basedpyright pre-commit --- .pre-commit-config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8b50427e..c9771f36 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -70,7 +70,7 @@ repos: hooks: - id: BasedPyright name: BasedPyright - entry: bash -c 'bazel run //:ide_support && .venv_docs/bin/python3 -m basedpyright' + entry: bash -c 'bazel run //:ide_support && . .venv_docs/bin/activate && .venv_docs/bin/python3 -m basedpyright && deactivate' language: system pass_filenames: false From 6b191eea25b5bf8f521a8679b25e7c1e07ff07f4 Mon Sep 17 00:00:00 2001 From: MaximilianSoerenPollak Date: Wed, 22 Jul 2026 15:14:01 +0200 Subject: [PATCH 9/9] fix: Remove basedpyright --- .pre-commit-config.yaml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index c9771f36..3d82b7cf 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -65,14 +65,6 @@ repos: require_serial: true types: [python] - # Note: this is super slow, therefore it is last - - repo: local - hooks: - - id: BasedPyright - name: BasedPyright - entry: bash -c 'bazel run //:ide_support && . .venv_docs/bin/activate && .venv_docs/bin/python3 -m basedpyright && deactivate' - language: system - pass_filenames: false # Ensure every file has a copyright header as per the Eclipse Foundation's requirements # Runs `cr_checker`