Skip to content

Playground/bitmanipulation seooc rebased - #529

Draft
antonkri wants to merge 15 commits into
mainfrom
playground/bitmanipulation-seooc-rebased
Draft

antonkri wants to merge 15 commits into
mainfrom
playground/bitmanipulation-seooc-rebased

Conversation

@antonkri

Copy link
Copy Markdown
Contributor

No description provided.

…equirements, architecture, certified scope)

- score_tooling: local_path_override to ../tooling (poc/rst-package-param
  branch) for the package/only_types patches needed below.
- score_platform: local_path_override to ../score to reference
  docs/features/baselibs/requirements:feat_req_baselibs directly.
- bitmanipulation/BUILD: add comp_req_bitmanipulation, aous_bitmanipulation
  (reusing docs/requirements/index.rst), arch_design_bitmanipulation,
  dependable_element_bitmanipulation (integrity_level B); unit() targets
  gained an explicit certified scope attribute.
- docs/architecture/index.rst: shorten comp_arc_sta id to satisfy the
  45-char sphinx-needs limit.
- docs/architecture/static_design.puml: new static architecture diagram,
  package alias renamed to match the dependable_element target name.
- devcontainer/.bazelrc/.vscode: graphviz + locale fixes for
  live_preview/docs builds, libclang toolchain registration, starpls LSP
  setup, live_preview port forwarding.
- Notes.md: findings and pragmatic decisions made along the way.
…lation

Switches comp_req_bitmanipulation, component_bitmanipulation and
dependable_element_bitmanipulation from feat_req_baselibs (all 14
baselibs feature requirements) to the new feat_req_bitmanipulation
target in score (containing only feat_req__baselibs__bitmanipulation,
extracted out of feat_req_baselibs index.rst into its own included
file). Fixes the previously known lobster traceability test failure:
the other 13 feature requirements had no comp_req reference and made
bazel test //score/bitmanipulation:dependable_element_bitmanipulation
fail with 13 missing-reference errors. Test now passes.

Updates Notes.md accordingly.
…properties

Add RecordProperty-based traceability metadata to all 43 GoogleTest
cases in bit_manipulation_test.cpp and bitmask_operators_test.cpp,
mapping each test to its corresponding comp_req__bitmanipulation__*
requirement (best-guess mapping based on the requirement texts in
score/bitmanipulation/docs/requirements/index.rst).

Two independent traceability consumers are now satisfied:
- lobster-gtest: "lobster-tracing" property (namespaced tag format),
  verified via component_bitmanipulation.lobster showing refs for
  all 43 items.
- score_docs_as_code's score_source_code_linker extension: "TestType",
  "DerivationTechnique", "PartiallyVerifies" (raw comp_req id) and
  "Description" properties, per the project's
  test-to-requirement-linking skill convention. This eliminates the
  previously-appearing "Tests missing some properties" warnings in
  `bazel run //:docs_check`.

Verified: bazel test //score/bitmanipulation:bit_manipulation_test
//score/bitmanipulation:bitmask_operators_test (2/2 PASSED),
dependable_element_bitmanipulation test still PASSED, docs_check
build succeeds with 0 warnings and no missing-properties messages
for these tests.

Updates Notes.md to document the resolved gap.
- Override score_docs_as_code with a local checkout that adds a new
  score_lobster_report Sphinx extension (renders the Lobster JSON
  report from dependable_element_bitmanipulation as a table with
  real sphinx-needs cross-references).
- Add score/bitmanipulation/docs/traceability/index.rst invoking the
  new '.. lobster-traceability-report::' directive, wired into the
  bitmanipulation docs toctree.
- traceability/index.rst: add a Checklists section rendering the 3
  existing inspection checklists (requirements, architecture,
  implementation) as a needtable with id/title/status.
- MODULE.bazel: replace local_path_override (score_docs_as_code,
  score_tooling, score_platform) with git_override pinned to the
  respective playground branch commits, so other developers can build
  this PoC without local sibling checkouts of docs-as-code/tooling/score.
- Add public_api.puml describing the BitmanipulationAPI.BitOperations
  interface for FMEA traceability.
- Wire it into architectural_design(public_api=...) and
  dependability_analysis(arch_design=...) so FailureMode.interface
  resolves against the Architecture lobster pool.
- Add interface field to all FailureMode records.
- Add safety_analysis/trlc control measures, failure modes and FTA
  root-cause diagrams for the bitmanipulation SEooC.
…pdate traceability.rst prose

- Switch score_docs_as_code's git_override commit from ec3576f2 to
  be3c0a81 (pushed to playground/bitmanipulation-seooc-lobster-report),
  which makes the lobster-traceability-report directive render every
  pool from the Lobster JSON report (Feature Requirements, Forwarded
  AoUs, Architecture, Public API, Failure Modes, Control Measures, Root
  Causes), each with clickable cross-references, instead of only
  Component Requirements/Unit Test.
- Replace the temporary local_path_override used to iterate on that fix
  without a commit+push round-trip.
- Update docs/traceability/index.rst's prose to describe all pools now
  covered by the report.
… switch score_tooling to pushed git_override

- bazel/toolchains/BUILD: adapt libclang_toolchain() call to the current
  score_tooling API (cc_toolchain/libclang attrs instead of
  cxx_builtin_include/extra_config_site/libclang)
- score/bitmanipulation/bit_manipulation_test.cpp,
  bitmask_operators_test.cpp: restore dual GTest traceability
  instrumentation (lobster-tracing + PartiallyVerifies/score_source_code_linker)
  lost during the cherry-pick rebase
- score/bitmanipulation/BUILD: restore package= for comp_req_bitmanipulation,
  set maturity="development" on dependable_element_bitmanipulation (no
  test_case_coverage_lock set up yet for this SEooC POC)
- score/bitmanipulation/docs/requirements/{assumptions_of_use.rst,.ignore,index.rst}:
  split the AoU section into its own file to avoid a duplicate-Need warning
  caused by sphinx_mounts independently discovering it as a standalone doc;
  .ignore tells sphinx_mounts to skip it as a standalone document while the
  existing .. include:: in index.rst still renders it
- score/bitmanipulation/docs/architecture/index.rst: fix stale
  [version==1] qualifier on comp_arc_sta__baselibs__bitmanip_static's
  :fulfils: (should be [version==2], matching the sibling comp_arc need)
- MODULE.bazel(.lock): replace the TEMPORARY local_path_override for
  score_tooling with a git_override pinned to the now-pushed
  poc/rst-package-param branch tip (a429b1cbfdefe8a2b6d54284640eaeefab0b27b5)
@github-project-automation github-project-automation Bot moved this to In Progress in BAS - Baselibs FT Aug 28, 2026
@github-actions github-actions Bot added c++ C++ code comp-bitmanipulation Related to score/bitmanipulation component bazel Bazel and Starlark build files labels Aug 28, 2026
@antonkri
antonkri marked this pull request as draft August 31, 2026 06:39
Picks up score commit af96b69, which replaces that repo own
score_tooling local_path_override with a git_override, so no module in
the dependency graph relies on a sibling ../tooling checkout anymore.
Points at the now-pushed playground/bitmanipulation-seooc-lobster-report
commit 1ecd38c2 (adds the lobster_parser test-link producer), replacing
the local_path_override used while that change was uncommitted.

Also select docs(testlink_source = "lobster") in BUILD so
score_source_code_linker reads test links from the *.lobster activity
pools instead of scanning bazel-testlogs/**/test.xml.
Extracts the comp_req directives out of docs/requirements/index.rst into
a new docs/requirements/component_requirements.rst, mirroring the
already-separate assumptions_of_use.rst. index.rst is now just a title
plus a hidden toctree linking both.

This replaces the previous `.. include:: assumptions_of_use.rst` with a
toctree entry, and removes the colocated .ignore file entirely: with
`.. include::`, the included file was still physically discovered by
sphinx_mounts own directory walk as a second, independent document
(the mount for score/bitmanipulation/docs lives genuinely outside
docs/, so unlike a self-conflicting same-tree mount, .ignore actually
took effect there) causing the same aou_req need to register twice
unless excluded. A toctree entry instead gives the referenced file its
own document identity with no duplicate registration, so no exclusion
mechanism is needed for either file.

BUILD: comp_req_bitmanipulation now converts component_requirements.rst
instead of index.rst; aous_bitmanipulation is unchanged.

Trade-off: Component Requirements now render as their own page instead
of inline prose on the Requirements overview page, same as AoUs already
did.

Verified: `bazel run //:docs_check` (0 warnings, no duplicate_id/orphan)
and `bazel test //score/bitmanipulation:dependable_element_bitmanipulation`
(PASSED, same pre-existing header_only lobster warning as before).
feat_req_bitmanipulation was retired on the score side (merged back into
index.rst - see score commit 10d492b0fb7747734220ea213d67e2e1b9a31dc5).
Switches all 3 references (comp_req_bitmanipulation deps,
component_bitmanipulation requirements, dependable_element_bitmanipulation
requirements) to feat_req_baselibs, and comp_req_bitmanipulation ref_package
from "Bitmanipulation" to "Index" (that target now derives its TRLC
package name from index.rst, not the retired bitmanipulation.rst).

MODULE.bazel: score_platform git_override bumped to the above commit,
replacing the local_path_override used while the score-side change was
uncommitted.

Accepted trade-off: dependable_element_bitmanipulation now pulls in all
14 baselibs feature requirements as its "Feature Requirements" lobster
pool instead of just its own. Verified coverage impact: Feature
Requirements 7.1% (1/14, only bitmanipulation traced), Component
Requirements unchanged at 83.3%. Still bazel test PASSED - maturity=
development treats the untraced 13 as a warning, not a failure.

NOTE: requires the above score commit to be pushed to
eclipse-score/score before this git_override resolves.
@github-actions github-actions Bot added the documentation Improvements or additions to documentation label Sep 1, 2026
Relocates the SEooC from //score/bitmanipulation:dependable_element_bitmanipulation
to //:dependable_element_baselibs in the root BUILD, since it is meant to
represent baselibs as a whole (not scoped per component) and more
components are expected to be wired into it over time.

- assumptions_of_use/architectural_design/dependability_analysis/components
  labels fully qualified to //score/bitmanipulation:... (the artifact
  targets themselves stay put, only the dependable_element() call moved).
- static_design.puml: SEooC package alias renamed
  dependable_element_bitmanipulation -> dependable_element_baselibs to
  match the new module_name (module_name = name in the dependable_element
  macro). Component/unit entity matching in the architecture validator is
  by short label name only (label_short_name() in bazel_component_validator
  strips the package path), so component_bitmanipulation/bit_manipulation/
  bitmask needed no changes there.
- Lobster traceability report page moved from
  score/bitmanipulation/docs/traceability/index.rst to the new
  docs/verification_report/lobster_traceability_report.rst (wired into
  docs/index.rst next to module_verification_report), since it is now
  generated by the repo-wide dependable_element, not a per-component one.
  The per-component page keeps only its (still component-specific)
  inspection checklists, with a note pointing at the new report location.

Verified: bazel test //:dependable_element_baselibs (PASSED, same
pre-existing header_only/Feature-Requirements-coverage warnings as before)
and bazel run //:docs_check (0 warnings, lobster report renders on its
new page).
@antonkri
antonkri force-pushed the playground/bitmanipulation-seooc-rebased branch from 5c95985 to bada8bf Compare September 1, 2026 10:39
…rview

MODULE.bazel: point the score_docs_as_code git_override at 6f0ba691, which
renders unit test links in the Lobster traceability report with their
readable colon-form names instead of the generated testcase__ ids.

BUILD: remove the setup_starpls target and its load. It only served the
VS Code Bazel extensions language server and is not needed for this
playground branch.

architecture/index.rst: add the Overview/Description section pointing at
doc__bitmanipulation, so the component architecture page links back to
the component documentation instead of duplicating its text.
Picks up the reworked score_lobster_report rendering: requirement chain
top-down, coverage pie charts, collapsed tables and the joined Safety
Analysis table.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bazel Bazel and Starlark build files c++ C++ code comp-bitmanipulation Related to score/bitmanipulation component documentation Improvements or additions to documentation

Projects

Status: In Progress

Development

Successfully merging this pull request may close these issues.

1 participant