Skip to content

Release candidate 09 - #320

Open
arkjedrz wants to merge 21 commits into
releases/v_0_9from
release_candidate_09
Open

Release candidate 09#320
arkjedrz wants to merge 21 commits into
releases/v_0_9from
release_candidate_09

Conversation

@arkjedrz

Copy link
Copy Markdown
Contributor

No description provided.

LittleHuba and others added 3 commits August 28, 2026 12:54
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>
@AlexanderLanin

Copy link
Copy Markdown
Member

@arkjedrz can you explain overlap with #317?

@PiotrKorkus

Copy link
Copy Markdown
Contributor

@arkjedrz can you explain overlap with #317?

This is correct PR as it targets releases branch. #317 is targeting main branch. This one is correct in SCORE release aspect

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.
@LittleHuba LittleHuba mentioned this pull request Aug 31, 2026
antonkri and others added 9 commits August 31, 2026 13:09
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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shall we fix that upstream @antonkri , The release keeps growing as one big patching

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, but let us make it green first to see what problems we have

@github-actions

github-actions Bot commented Sep 2, 2026

Copy link
Copy Markdown

Release Approval Check Results

Target Branch:

Status: Some modules are missing required approvals

Modules:

  • score_baselibs: Awaiting approval (requires one of: 4og)

  • score_communication: Awaiting approval (requires one of: castler, LittleHuba)

  • score_persistency: Awaiting approval (requires one of: vinodreddy-g, arkjedrz, PandaeDo, umaucher)

  • score_orchestrator: Awaiting approval (requires one of: vinodreddy-g, PandaeDo)

  • score_kyron: Awaiting approval (requires one of: pawelrutkaq, vinodreddy-g)

  • score_lifecycle: Awaiting approval (requires one of: pawelrutkaq, NicolasFussberger)

  • score_logging: Awaiting approval (requires one of: antonkri, pawelrutkaq)

  • score_time: Awaiting approval (requires one of: lavrovvalera)

  • score_config_management: Awaiting approval (requires one of: michaelsaborov)

  • score_docs_as_code: Awaiting approval (requires one of: MaximilianSoerenPollak, a-zw)

  • score_platform: Awaiting approval (requires one of: FScholPer, anmittag, qor-lb, antonkri)

  • score_itf: Awaiting approval (requires one of: ltekieli, draganbjedov)

  • score_test_scenarios: Awaiting approval (requires one of: arkjedrz, PiotrKorkus)

  • Testing: Awaiting approval (requires one of: PiotrKorkus)

  • Infrastructure: Awaiting approval (requires one of: AlexanderLanin)

  • Technical_Leads: Awaiting approval (requires one of: antonkri, FScholPer, qor-lb)

…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).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants