Release candidate 09 - #320
Conversation
Update known_good.json to a new, consistent, passing state across all
S-CORE modules, based on score_communication HEAD at the start of this
work, preferring published releases and falling back to a pinned
commit hash with atomic patches where no suitable recent release
exists.
Module changes:
- score_baselibs -> 0.2.12
- score_persistency -> 0.3.5 (rust_kvs moved from src/rust/rust_kvs to
score/kvs/rust_kvs; code_root_path/exclude_test_targets metadata
updated; obsolete patches 001-003 removed as fixed upstream)
- score_orchestrator -> 0.1.1
- score_kyron -> 0.1.3
- score_communication -> 0.4.0 (published release; existing patches
001-expose-comm-examples, 003-module-deps-visibility,
004-rules-build-error-not-dev-dependency apply cleanly and
unmodified against the 0.4.0 tag)
- score_lifecycle_health renamed to score_lifecycle -> 0.5.0 (kept in
its original position in known_good.json, directly after
score_kyron, to minimize diff in generated files)
- score_logging, score_time, score_config_management: hash-pinned to
new upstream HEADs, with patches regenerated/added:
- patches/logging/002-004 regenerated for context drift;
005-memory-shared-moved-to-communication.patch removed (merged
upstream)
- patches/time/001 regenerated; new
002-lifecycle-renamed-to-score_lifecycle.patch and
003-remove-obsolete-py_unittest_qnx_test.patch (score_time relied
on a py_unittest_qnx_test.bzl macro removed upstream from
score_baselibs)
- patches/config_management: new
002-lifecycle-renamed-to-score_lifecycle.patch
- tooling group bumped: score_crates -> 0.0.11, score_itf -> 0.5.0,
score_tooling -> 2.2.1, score_platform -> 0.7.1,
score_bazel_platforms -> 1.0.0, score_test_scenarios -> 0.4.1,
score_docs_as_code -> 8.0.1, score_process renamed to
score_process_description -> 2.1.2
Own-repository fixes required by the above bumps:
- bazel/toolchains/BUILD, bazel_common/score_llvm_libclang.MODULE.bazel:
adapt to score_tooling@2.2.1's new libclang_toolchain() signature
(cc_toolchain attribute instead of cxx_builtin_include/
extra_config_site) and expose the llvm_toolchain repo
- BUILD, showcases/simple_lifecycle/BUILD: fix @score_lifecycle_health
/ @score_process label references to the renamed modules
- feature_integration_tests/test_scenarios/rust/BUILD,
showcases/orchestration_persistency/BUILD: fix
@score_persistency//src/rust/rust_kvs ->
@score_persistency//score/kvs/rust_kvs
- .bazelrc: removed obsolete persistent_logging flag line
- MODULE.bazel.lock: updated for all new/changed module resolutions
Validated:
- bazel mod graph: passes
- bazel build --config=linux-x86_64 //images/linux_x86_64:image:
passes (full build)
- bazel build --config=linux-x86_64 //feature_integration_tests/itf:
passes (test target builds; only pre-existing deprecation warnings)
- Generated files confirmed self-consistent/idempotent with
known_good.json
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ore_baselibs score_communication's own MODULE.bazel already carries a single_version_override patch for score_baselibs (third_party/score_baselibs/restore_qnx8_poll_workaround.patch) that fixes AbortableBlockingReader::WaitForData on QNX8: inotify file descriptors often only report POLLRDNORM (not POLLIN) as readable, and without a finite poll timeout a resource-manager wakeup failure would block forever (Ticket-221150). However, bzlmod only honors single_version_override/git_override entries declared by the root module, so this patch was silently ignored when score_baselibs is resolved as a dependency of our own root module. Add the same patch as patches/baselibs/002-restore-qnx8-poll-workaround.patch and register it in known_good.json's score_baselibs bazel_patches, so inotify-based blocking reads work as expected on QNX8 in this integration as well. Verified the patch applies cleanly (git apply --check) against our currently pinned score_baselibs@0.2.12 checkout. Validated: - bazel mod graph: passes - bazel build --config=linux-x86_64 //images/linux_x86_64:image: passes (full build, 1484 actions) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…rage_report working
score_tooling@2.1.0 removed rust_coverage_report from its public API in
favor of a fundamentally different score_coverage_scope/
score_coverage_reporter design (aspect-based, driven by implementation
target deps rather than rust_test query strings). Our
rust_coverage/BUILD (one target per rust-capable module, generated
from known_good.json) still relies on the old API, so 2.2.1 broke
`bazel query //rust_coverage/...` outright ("package contains
errors").
rust_coverage_report is only present through score_tooling@2.0.2 (the
last tag before the 2.1.0 rewrite), so pin to that version instead.
Separately, score_tooling's own defs.bzl had already stopped exporting
use_format_targets before 2.0.0 (it moved to
third_party/format:macros.bzl); fix BUILD's load() accordingly. That
macro in turn requires @aspect_rules_lint, which score_tooling@2.0.2
declares as dev_dependency = True -- invisible to consumers under
bzlmod. Add patches/tooling/001-expose-aspect-rules-lint-non-dev.patch
(one-line: drop dev_dependency = True from the aspect_rules_lint
bazel_dep in MODULE.bazel) so the format targets keep working on
2.0.2, exactly as they do on 2.2.1.
Net effect: same working format.* targets as before, plus
rust_coverage/BUILD targets restored, on score_tooling@2.0.2.
A full migration to score_tooling's new coverage API (to move back to
a current release) is a separate, larger follow-up.
Validated:
- bazel mod graph: passes
- bazel query "//:all + //rust_coverage/...": passes, includes
//rust_coverage:rust_coverage_score_* targets and //:format.* targets
- bazel build --config=linux-x86_64 //images/linux_x86_64:image:
passes (full build, 1485 actions)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add the release note for the S-CORE platform v0.9.0 release, derived from known_good.json on release_candidate_09 and the commits since v0.8.0. - Module versions listed with their delta against v0.8.0 - Logging, Time and Configuration Management are flagged as pinned to development commits instead of registry releases - New "Incompatible Changes" section covering the score_lifecycle_health -> score_lifecycle and score_process -> score_process_description renames The note is picked up automatically by the globbed toctree in releases.rst.
The upstream commit e0489b1 (config_management#58) already renames score_lifecycle_health to score_lifecycle, which made patch 002 redundant and broke patch 001 (context mismatch on the renamed BUILD targets). Merged the intended changes of both patches into a single rebased 001 patch that applies cleanly on top of e0489b1, and dropped the now-obsolete 002 patch.
Upstream commit e0489b1 leaves main_test.cpp referencing score::mw::lifecycle::LifeCycleManagerMock, which no longer exists in score_lifecycle v0.5.0 (renamed/removed), so //score/config_management/config_daemon/code:main_function_test fails to compile. Excluding it until upstream fixes the mock usage.
- Bump score_docs_as_code to 8.1.0 to get :post_template: module_verification_report support (docs-as-code#763). - Add score_persistency bazel_patches: 001-add-mod-need.patch, 002-rename-manual-verification-report-id.patch (renames colliding doc__persistency_verification_report ID so the new auto-generated report can use it instead). - Add docs/verification_report/modules/persistency/persistency_verification_report.rst, a locally-defined :post_template: report rendered from @score_persistency//:needs_json (needed because reference_integration only imports needs_json, not the full RST sources required for Jinja rendering of post_template). - Add docs/verification_report/index.rst as a landing page grouping the platform verification report and per-module verification reports, replacing the previous direct toctree links in docs/index.rst. - Fix docs/index.rst 'Integration' grid-item-card missing blank line (caused title/body to visually overlap) and add missing icons to the Integration and Modules cards.
- Fix Starlark formatting drift in bazel_common/score_python.MODULE.bazel via buildifier (format.fix_Starlark_with_buildifier). - score_lifecycle: remove two stale exclude_test_targets entries (mpmc/mpsc tsan_test) that no longer exist in the pinned module version, which caused "no such target" errors aborting the coverage build. - score_persistency: exclude the QNX/rpi4-only score/kvs/tests/integration_test_scenarios package from coverage (hardware-specific test data, not relevant for x86_64 coverage). - score_persistency: add patches 003 and 004 to make the pip extension and the score_rules_imagefs bazel_dep non-dev dependencies, since score/kvs/... (the new code_root_path) recursively loads packages that reference them and dev_dependency=True deps are invisible to downstream consumers. The pip hub was renamed to pip_score_persistency_venv_test to avoid a cross-module hub name collision with reference_integration's own pip hub.
| @@ -0,0 +1,12 @@ | |||
| diff --git a/MODULE.bazel b/MODULE.bazel | |||
There was a problem hiding this comment.
Shall we fix that upstream @antonkri , The release keeps growing as one big patching
There was a problem hiding this comment.
Yes, but let us make it green first to see what problems we have
Release Approval Check ResultsTarget Branch: ❌ Status: Some modules are missing required approvals Modules:
|
…ion) score_persistency's score/kvs/tests/test_cases python_tc_venv fails to build with 'Collision resolution not yet implemented! Saw nodejs_wheel/__init__.py twice'. Its venv merges two independently resolved pip hubs (its own compiled requirements.txt.lock and score_tooling's shared python_basics hub) which both vendor nodejs-wheel-binaries, and aspect_rules_py cannot yet reconcile that. This is an upstream aspect_rules_py limitation, not something fixable via version pinning in the lock file. Exclude the affected test targets (cit_cpp, cit_rust) via known_good.json's exclude_test_targets until it is resolved upstream.
- .github/workflows/test_and_docs.yml, README.md: '//:docs_combo_experimental' no longer exists in the pinned score_docs_as_code version; the docs() macro now exposes 'docs' instead. Switch to 'bazel run //:docs' (same CLI, still accepts --github_user/--github_repo). - score_tooling@2.0.2 moved 'use_format_targets' out of defs.bzl into third_party/format/macros.bzl. score_kyron, score_orchestrator and score_logging still load it from the old location, which breaks their whole BUILD file (and therefore //:docs, which depends on their needs_json targets). Patch all three to load use_format_targets from the new location. - score_logging's needs_json build additionally fails because a PlantUML diagram (mw_log_recorders.puml) lives outside docs/ and isn't staged into the sandboxed Sphinx build. Exclude it from the docs() data list, same as the existing score_lifecycle workaround, until fixed upstream. Verified locally: 'bazel build //:docs' completes successfully.
…nings - BUILD: mount score_persistency, score_orchestrator, score_kyron, score_baselibs (attach_to: sw_components) and score_platform, score_process_description (attach_to: process_methods_tools) as docs() bundles, restoring the module-doc collections that used to be built via the now-removed :docs_combo_experimental target. Removed their needs_json from data= to avoid defining the same need IDs twice (once via bundle, once via needs_json). score_logging and score_docs_as_code stay excluded: their own docs reference files outside their bundle root (PlantUML file resp. test fixtures), which sphinx-mounts rejects as a confinement violation. - docs/sw_components.rst, docs/process_methods_tools.rst: removed the stale manual toctree entries (wrong paths, referencing modules never wired up); sphinx-mounts now wires each bundle into these pages via attach_to automatically. - patches/baselibs, patches/persistency, patches/platform: fix upstream content issues surfaced by the newly-included bundles (missing toctree entry, missing doc title, absolute :doc: reference broken by bundle mounting). Verified locally: 'bazel run //:docs' completes with exit 0, no docs-related warnings left (only generic Bazel version-skew notices).
No description provided.