Skip to content

chore(deps): update dependency score_tooling to v3 - #40

Open
eclipse-score-bot wants to merge 1 commit into
mainfrom
renovate/score_tooling-3.x
Open

eclipse-score-bot wants to merge 1 commit into
mainfrom
renovate/score_tooling-3.x

Conversation

@eclipse-score-bot

@eclipse-score-bot eclipse-score-bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
score_tooling bazel_dep major 1.3.1 → 3.0.2

Release Notes

eclipse-score/tooling (score_tooling)

v3.0.2

Highlights

  • rules_score: root causes are argued by RootCauseAssessment records. They replace Mitigation and SafetyMeasure.
  • rules_score: failure modes trace to concrete public API methods, generated from the public API class diagrams.
  • rules_score: formal RST test specifications, and Given/When/Then text derived from gtest test names.
  • rules_score: documentation is keyed by the full target label, so equal target names in different packages or repositories no longer collide.
  • rules_score: $TransferInGate links fault trees, requirement ASILs are checked, and the certified-scope check is repository-aware.
  • PlantUML and validation: class template parameters and specializations.
  • cr_checker: // and /* */ headers are interchangeable.

Breaking changes

These changes require edits to build files, TRLC files or PlantUML diagrams.

rules_score: root cause assessments replace mitigations and safety measures (#​534)
  • New TRLC type ScoreReq.RootCauseAssessment with root_causes, measures, safety, rationale and version. An assessment without measures argues that the root cause does not apply.

  • Removed: ScoreReq.Mitigation, ScoreReq.SafetyMeasure, AoU.root_causes (and :root_causes: in .rst aou_req directives) and root causes in CompReq.derived_from.

  • Every CompReq.derived_from entry needs a version: Package.Item@<version>.

  • safety_analysis takes the assessment files in the new attribute assessments. safety_measures may only contain assumptions_of_use and component_requirements targets.

  • assumptions_of_use and component_requirements targets no longer need the fault_trees target in deps.

  • The traceability report has the levels "Assumptions of Use" and "Root Cause Assessments" instead of "Safety Measures". Custom LOBSTER templates must use {OWN_AOU_BLOCK} and {ASSESSMENT_BLOCK} instead of {SAFETYMEASURES_BLOCK}.

    # before
    safety_analysis(
        ...
        safety_measures = [
            "//docs:sample_aous",
            "sample_safety_analysis_safetymeasures.trlc",
        ],
    )
    
    # now
    safety_analysis(
        ...
        assessments = ["sample_safety_analysis_assessments.trlc"],
        safety_measures = ["//docs:sample_aous"],
    )
    ScoreReq.RootCauseAssessment ShmemCreatedWrongNameAssessed {
        root_causes = [sample_safety_analysis_fta.ShmemCreatedWrongName]
        measures = [SampleType.SampleAoU@1]
        safety = ScoreReq.Asil.B
        rationale = "The user prevents the wrong name through the assumption of use."
        version = 1
    }
    
rules_score: failure modes reference public API methods (#​555)
  • FailureMode.interface is a list of ScoreReq.ApiMethod records instead of a free-text string. The records are generated from the public_api class diagrams of an architectural_design: one per public method name (overloads collapsed) and one per free function.

  • architectural_design has the new attribute package, the TRLC package of the generated records. It is required with public_api .puml diagrams and rejected without them.

  • failure_modes must list the architectural_design in deps, and the failure mode files import its package.

  • safety_analysis.arch_design is removed.

  • The traceability level "Architecture" is replaced by "Public API". Custom LOBSTER templates must use {PUBLIC_API_SOURCES} instead of {ARCH_SOURCES}.

    # before
    architectural_design(
        name = "sample_seooc_design",
        public_api = ["public_api.puml"],
    )
    failure_modes(
        name = "sample_failure_modes",
        srcs = ["failure_modes.trlc"],
    )
    safety_analysis(
        ...
        arch_design = ":sample_seooc_design",
    )
    
    # now
    architectural_design(
        name = "sample_seooc_design",
        package = "sample_seooc_api",
        public_api = ["public_api.puml"],
    )
    failure_modes(
        name = "sample_failure_modes",
        srcs = ["failure_modes.trlc"],
        deps = [":sample_seooc_design"],
    )
    safety_analysis(
        ...
    )
    // before
    interface = "safety_software_seooc_example.SampleLibraryAPI.GetNumber"
    
    // now
    import sample_seooc_api
    ...
    interface = [sample_seooc_api.safety_software_seooc_example_SampleLibraryAPI_GetNumber]
    
rules_score: documentation is keyed by the full target label (#​542)
  • Pages and sources of units, components, unit designs, dependency modules, architectural designs and test-case coverage are keyed by <repo>/<package>/<name> (_main for the main repository) instead of the bare target name.
    • units/<label path>/index.rst, units/<label path>/<diagram>.puml, units/<label path>/<design>.rst.inc
    • components/<label path>/index.rst, components/<label path>/requirements/...
    • Page titles are the full label.
    • The HTML of a dependency module is merged to <repo>/<package>/<dep>/ instead of <dep>/. Links to published dependency pages change.
  • Custom rules that consume the providers must adapt:
    • SphinxModuleInfo.transitive_modules and SphinxNeedsInfo.needs_modules are structs with path (the label path) instead of name.
    • UnitInfo.dependent_labels and ComponentInfo.dependent_labels are depsets of structs (unit_label, dependencies), one per unit, instead of depsets of labels (#​533).
PlantUML: the provided-interface binding )- is removed (#​544)
  • Component )- Interface is rejected. Write the provided binding as -, -- or --(). Layout and style hints (-up-, --[bold]--) stay allowed.

    ' before
    Gateway )- ResponseApi
    
    ' now
    Gateway - ResponseApi
  • A bare -- between a component and an interface is a provided binding and no longer an association.

Skills
  • The SKILL.md files of rules-score, score-architecture, score-requirements, score-safety-analysis and score-testing changed. Downstream repositories must regenerate their sync_skills goldens.

Stricter validations

These changes need no new syntax, but input that built before can now fail.

TRLC requirement ASILs (#​540)
  • A FeatReq or CompReq must not have a lower ASIL than any requirement it is derived from. An upstream ASIL_B forbids QM, an upstream ASIL_D requires ASIL_D.
  • trlc is raised from 3.0.1 to 3.1.1. Raise it if you pin an older version.
Root cause assessments (#​534)

Errors in the safety_analysis build:

  • A root cause is listed by more than one assessment.
  • An assessment lists a root cause that no fault_trees target generates, or a measure that is not an own AoU or a CompReq of safety_measures.
  • The safety of an assessment is below the ASIL of a failure mode of its root causes or above the ASIL of a listed measure.

Failures of the traceability report of the dependable_element:

  • A root cause has no assessment.
  • An own AoU is not listed as a measure of any assessment.
Certified scope (#​533)
  • unit.scope entries are resolved relative to the package of the unit and matched together with the repository: an exact target, :__pkg__ or :__subpackages__ in the same repository. A scope in another repository no longer matches by package path alone. Add the repository, for example @seooc//:sample_library.
  • A component no longer implicitly certifies nested components. A unit implicitly certifies its own implementation.
  • The message is Unit <unit label> depends on <dependency label>, but the dependency is not in any certified scope (<reason>).
  • Violations warn with maturity = "development" and fail otherwise, so release builds can fail on dependencies the old check accepted.
Documentation names (#​542)
  • Basenames of design diagrams and images must be unique within a unit.
  • design_name must be unique within its parent component (case-insensitive).
Public API diagrams (#​555)
  • The public_api diagrams of an architectural_design must be class diagrams.
  • Public API classes must not declare conversion operators, new, delete or co_await. The parser fails with UnsupportedOperator.
$TransferInGate (#​545)
  • $TransferInGate(alias, connection) connects to the fault tree of the failure mode connection. The build fails when:
    • alias is not the fully qualified name of a failure mode (for example "Transfer1").
    • The target is unknown or ambiguous.
    • The transfers form a cycle, including a transfer to the own tree.
    • The gate alias collides with another node of the same diagram.
  • Transfers across different fault_trees targets are not supported.
  • A root cause inherited through a transfer is assessed once. The safety of its assessment must be at least the ASIL of all failure modes of all trees it belongs to.

New features

rules_score
  • Failure-mode-to-API traceability (#​555): the report traces failure modes to the public API methods in the "Public API" level. The safety analysis page shows one badge per guideword.
  • Formal test specifications (#​550): the new rule test_specification takes an RST file with a Test Goal, an optional Test Focus and at least one Test Step (optional Precondition, Action, Expected). A unit lists them in test_specs, a test refers to one with RecordProperty("test-spec", "//pkg:label"). The coverage lock gets a spec key per test case, which must not be mixed with Given/When/Then keys.
  • Given/When/Then from test names (#​505): a test named [<Prefix>_]Given<X>[_When<Y>]_(Expect|Then)<Z> does not need the given/when/then properties. This needs a lobster version with --derive-gwt-from-test-name. With lobster 1.0.6 only the properties are used. A test case in a coverage lock needs a Given and a Then. The When is optional.
PlantUML and validation
  • Class template parameters (type, non-type, template-template, parameter packs, optional names) are modeled in PlantUML and compared with the C++ implementation by position, count, kind and pack marker. An omitted design name is unconstrained, an explicit name must match (#​532).
  • Partial and explicit specializations are matched to the design by their fully qualified base name. Their template arguments are not compared. Explicit instantiations are ignored (#​532).
cr_checker
  • C, C++, Rust and TRLC headers may use either // or /* */. The other form is derived from the template, and --fix keeps the form a file already uses (#​554).

Bug fixes

  • cr_checker: --modified-only honors inputs and :(exclude) pathspecs. Before, it checked all modified files. A leading YAML frontmatter block of a Markdown file is kept in front of the header, and --fix no longer breaks it (#​546).
  • rules_score: the architecture key conflict check of a dependable element works for elements in non-root packages and external repositories (#​543).

Migration checklist

Breaking changes:

  1. Replace Mitigation/SafetyMeasure records by RootCauseAssessment records and pass them through safety_analysis.assessments. Remove root_causes from AoUs and root causes from CompReq.derived_from. Add @<version> to every derived_from entry.
  2. Add package to architectural_design targets with public_api, list them in the deps of failure_modes, remove arch_design from safety_analysis, and write FailureMode.interface as a list of ApiMethod records.
  3. Update custom LOBSTER templates: {OWN_AOU_BLOCK} and {ASSESSMENT_BLOCK} replace {SAFETYMEASURES_BLOCK}, and {PUBLIC_API_SOURCES} replaces {ARCH_SOURCES}.
  4. Adapt links to documentation paths (<repo>/<package>/<dep>/) and custom rules that read the changed provider fields.
  5. Replace Component )- Interface by Component - Interface in PlantUML component diagrams.
  6. Regenerate the sync_skills goldens.

Stricter validations:

  1. Check the ASIL of every FeatReq and CompReq against its upstream requirements.
  2. Give every root cause exactly one assessment and list every own AoU in an assessment.
  3. Add the repository to unit.scope entries of external targets and build with maturity = "release".
  4. Make design diagram and image basenames unique per unit and design_name unique per component.
  5. Make sure public_api diagrams are class diagrams without unsupported operators.
  6. Check $TransferInGate calls: use the fully qualified failure mode as alias and a failure mode of another tree as connection.

v3.0.1

Changelog

rules_score: unit documentation layout

  • Unit pages are rendered to units/<unit>/index.rst. Design files are staged in
    units/<unit>/design/. Previously: units/<unit>.rst and units/<unit>_design/.
  • Sphinx exclude pattern **/units/*_design replaced by units/*/design.
  • Two different units with the same name in one dependable_element now fail the build
    (previously the second was silently dropped).
  • File collisions while staging a unit's design files now fail the build.
  • PUML basenames no longer need to be unique across units.

Added

  • sync_skills(repo_skills_target = None): optional label of a filegroup with the repo's
    committed score-* skills. Required when .github/skills has its own BUILD file.
  • .devcontainer/run-tool: standard SCORE tool launcher.

Fixed

  • component(requirements = ...) accepts assumed_system_requirements targets, so component
    requirements can derive directly from assumed system requirements without a feature layer.

v3.0.0

Highlights

  • rules_score: the safety analysis is split into failure_modes, fault_trees and safety_analysis. A dependable_element now derives its own AoUs from the safety analysis measures.
  • PlantUML tooling: an element's identifier now comes from its written name, not its alias. Qualified and rooted declarations and free functions in class diagrams are supported.
  • validation: free-function consistency check between PlantUML class design and C++ implementation.

Breaking changes

rules_score: safety analysis and AoUs
  • safety_analysis is split into three rules to avoid a dependency cycle between the fault trees, the measures and the analysis:

    • failure_modes(srcs, deps): the FailureMode records.
    • fault_trees(srcs, deps, fta_package): the fault-tree diagrams and the generated RootCause records.
    • safety_analysis(failure_modes, fault_trees, safety_measures, arch_design): the FMEA page.
  • safety_analysis attributes are renamed:

    Before Now
    failuremodes failure_modes (labels of failure_modes targets)
    root_causes fault_trees (label of a fault_trees target, required)
    safetymeasures safety_measures
    arch_design (optional) arch_design (required)
  • dependable_element.assumptions_of_use is removed. The element's own AoUs are the assumptions_of_use targets listed in the safety_measures of its safety_analysis targets.

    • An assumptions_of_use target that no safety_analysis lists is neither rendered nor forwarded.
    • A dependable_element without a safety analysis has no own AoUs.
  • ScoreReq.AoU.root_causes is now mandatory.

    • .rst aou_req directives need :root_causes: <fta_package>.<RootCause>, ....
    • assumptions_of_use.deps must list the fault_trees target. Other assumptions_of_use targets are rejected there.
    • :root_causes: on non-AoU directives is rejected.
  • aou_forwarding.yaml entries must carry the AoU version: aou_id: "Package.AOU_ID@1". Unknown IDs, version mismatches and duplicate entries fail the build.

  • The default fta_package is now the package and name joined by __ plus _fta (e.g. pkg_sub__name_fta). Set fta_package explicitly if you reference <fta_package>.<RootCause> from elsewhere.

  • Raw .trlc files in safety_measures may only contain Mitigation records. A root cause whose failure mode is missing from failure_modes fails the build.

  • List one safety_analysis per dependability_analysis. Use several dependability_analysis targets for several analyses.

  • The .github/skills/*/SKILL.md files changed. Downstream repos must regenerate their sync_skills goldens.

PlantUML: identifiers are built from the name, not the alias
  • The written name of an element is its identity. The alias (as X) is only a local reference key and no longer takes part in the identifier.

  • Names must be identifier paths: segments of letters, digits and _, separated by . or ::. Free-text names are errors, for every element kind.

  • Sequence participants:

    • The "instance : pkg::Type" label form is removed.
    • Referencing an aliased participant by its name instead of its alias is an error.
  • Diagrams must be migrated.

    ' before
    component "Unit 1" as unit_1 <<unit>>
    participant "Order Service" as OrderService
    
    ' now
    component unit_1 <<unit>>
    participant "orders::OrderService" as OrderService
  • validation matches by this identifier. Component and sequence checks match participant uids, and the Bazel check matches the last segment of the entity id (case-insensitive) against the Bazel target name.

  • See plantuml/parser/docs/element-identifiers.md for the full rules.

New features

PlantUML
  • Qualified names in nested declarations are appended to the enclosing scope (like relative names in C++). A leading . or :: roots the name:
    package outer {
        class core::X     ' outer.core.X
        class ::core::X   ' core.X
    }
    :: is accepted wherever a name is written: declarations, package/namespace names, ports, extends/implements targets and relationship endpoints.
  • Free functions in class diagrams: entity Name <<function>> { + f(...) } groups free functions, which resolve in the enclosing namespace. They are serialized to FlatBuffers. See plantuml/parser/docs/class-diagram.md. (#​511)
  • Class-diagram parser and AST simplified. (#​517)
  • Clearer sequence-diagram diagnostics for aliased participants and lifecycle commands.
Sphinx clickable_plantuml
  • Links are resolved by uid. A last-segment name index lets a bare unit_1 in a sequence or component diagram find the diagram that defines pkg.comp.unit_1.
  • *.idmap.json gains match_by_name (default false). It is true for component, class and sequence diagrams and false for FTA diagrams.
  • Aliases that are not plain identifiers are quoted in url of "...". Aliases that cannot be written (double quote, line break) are reported with a warning.
validation
  • New ClassDesignImplementationFreeFunctionConsistency check: a free function in the unit design must exist in the C++ implementation with a matching return type, parameters and template parameters. (#​518)
  • Clearer errors for bazel_component, sequence and class checks.

Bug fixes

  • validation: a class reachable through several implementation targets (e.g. a shared header) was reported as defined more than once. The duplicate-class error now says "design" or "implementation". (#​522)
  • rules_score: units listed directly in dependable_element.components were missing from the generated toctree. (#​519)

Build and CI

  • Rust crates are pinned to minor versions (~x.y). Cargo.lock and cargo-bazel-lock.json are added, and the crate repository is renamed from @crates to @crates_score_tooling. (#​515)

Migration checklist

  1. Split each safety_analysis into failure_modes, fault_trees and safety_analysis, and rename its attributes.
  2. Remove assumptions_of_use from dependable_element. List the AoU targets in safety_analysis.safety_measures instead.
  3. Add root_causes to every AoU and list the fault_trees target in the deps of each assumptions_of_use target.
  4. Add @<version> to the aou_id entries in aou_forwarding.yaml.
  5. Rewrite PlantUML declarations to identifier-path names. Use an alias only for long or qualified names.
  6. Regenerate the sync_skills goldens.

Full changelog: eclipse-score/tooling@v2.3.1...v3.0.0

v2.3.1

Release v2.3.x contains breaking changes:

Renames (Bazel)
fmea(...) is now safety_analysis(...).
dependability_analysis(fmea = [...]) is now dependability_analysis(safety_analysis = [...]).
The controlmeasures attribute is replaced by safetymeasures. These files hold Mitigation, AoU and CompReq records.
New optional attribute fta_package sets the package name of the generated RootCause records. It defaults to _fta.
unit(...) and component(...) get an optional design_name. Use it when the PlantUML <>/<> name differs from the Bazel target name.

FTA .puml diagrams
$TopEvent(...) is now $FailureMode(name, "Pkg.FailureMode", ...). It accepts up to 8 failure modes per node.
$BasicEvent(name, "Pkg.Alias", conn) is now $RootCause(name, "Alias", conn). The alias is a plain name without a package prefix.
Root causes are generated as TRLC records in fta_events.trlc (package <fta_package>). They are not written by hand.
Each root cause links to the failure modes of the tree it sits under.

TRLC model (ScoreReq)
Removed: ControlMeasure, PreventiveMeasure and Measure.
Removed: the mitigates field on AoU and Mitigation.
Added: RootCause, the abstract SafetyMeasure, and FailureMode-to-RootCause links.
Mitigation no longer extends AssumedSystemReq. It now requires root_causes = [...] and justification.
AoU can have optional root_causes = [...].
CompReq.derived_from can reference a RootCause, unversioned. This makes the CompReq a control measure for that root cause.
CompReq.derived_from may only reference AoUs received from other dependable elements. An element's own AoUs are never a source.

Wiring (BUILD)
A safety_analysis target that an AoU references via root_causes must be listed in the deps of assumptions_of_use.
The same target must also be passed via safetymeasures to safety_analysis(...).

Migration:

BUILD
fmea becomes safety_analysis.
controlmeasures becomes safetymeasures.
dependability_analysis(fmea=...) becomes dependability_analysis(safety_analysis=...).

FTA .puml
$TopEvent becomes $FailureMode.
$BasicEvent(n, "Pkg.Alias", c) becomes $RootCause(n, "Alias", c). The alias is a plain identifier with no package prefix.

TRLC measures
Add import _fta, the generated package. It defaults to the target name plus _fta.
Delete ControlMeasure and PreventiveMeasure records and all mitigates fields.
Convert each former measure:
Mitigation: add root_causes = [_fta.] and justification.
CompReq: add derived_from = [_fta.], with no @​version. Add the safety_analysis target to that component_requirements target's deps.
AoU: add root_causes = [_fta.]. Add the safety_analysis target to the assumptions_of_use deps, and pass the file in safetymeasures.

Coverage
Every $RootCause needs a Mitigation, AoU or CompReq. Otherwise release maturity fails.
Every FailureMode needs a $RootCause under it.

v2.3.0

What's Changed

Full Changelog: eclipse-score/tooling@v2.2.3...v2.3.0

v2.2.3

What's Changed

Full Changelog: eclipse-score/tooling@v2.2.2...v2.2.3

v2.2.2

What's Changed

New Contributors

Full Changelog: eclipse-score/tooling@v2.2.0...v2.2.2

v2.2.1

What's Changed

Full Changelog: eclipse-score/tooling@v2.1.1...v2.2.1

v2.2.0

What's Changed

Full Changelog: eclipse-score/tooling@v2.1.1...v2.2.0

v2.1.1

What's Changed

Full Changelog: eclipse-score/tooling@v2.1.0...v2.1.1

v2.1.0

What's Changed

🚨 Breaking: Ferrocene symbol-report/blanket coverage flow removed

rust_coverage_report (from //:defs.bzl / //coverage:coverage.bzl), //coverage:ferrocene_report and its helper scripts have been removed (#​394). Repositories defining a //:rust_coverage target with this rule must migrate

▎ ⚠️ If your repo consumes the rust-coverage.yml reusable workflow from cicd-workflows (lifecycle, baselibs): that workflow drives the removed flow through your //:rust_coverage target. Do not bump to 2.1.0 (and don't let renovate auto-merge it) until you have migrated to the LLVM pipeline below.

Unchanged: //coverage:llvm_profile_wrapper (kept for repos mid-migration) and //coverage:combined_report.

✨ New: reusable LLVM source-based coverage pipeline (@​score_tooling//coverage)

The coverage pipeline proven in communication and persistency is now a shared module (#​394), imported verbatim from eclipse-score/communication and adapted for cross-repo consumption:

  • One report for C++ and Rust — line and branch coverage, generated by llvm-cov directly from covmap instrumentation (no gcov/genhtml).
  • Untested in-scope files appear at exact 0% — baselines via llvm-cov --empty-profile over the instrumented archives; denominators come from the compiler, not heuristics. Untested code can no longer hide from the report or the gate.
  • Justification system — COV_JUSTIFIED in-code markers + reviewed YAML database, an effective coverage metric ((covered + justified) / total), stale-justification detection.
  • Gating — report generation fails when effective coverage is below COVERAGE_THRESHOLD (default 100).

Full Changelog: eclipse-score/tooling@v2.0.2...v2.1.0

v2.0.2: Release 2.0.2

What's Changed

Full Changelog: eclipse-score/tooling@v2.0.1...v2.0.2

v2.0.1: Release 2.0.1

What's Changed

New Contributors

Full Changelog: eclipse-score/tooling@v2.0.0...v2.0.1

v2.0.0: Release 2.0.0

  • multitool dependency removed, then partially reintroduced (c82be4d, 3c98c2a)
    docs-as-code bumped to 4.6.1 (no longer requires multitool, unlike 3.x).
    A later commit re-adds rules_multitool as a dependency, but now only for
    a dedicated actionlint_hub — the default multitool hub (ruff, ty,
    yamlfmt, etc.) is provided transitively via aspect_rules_lint instead.
    Consumers relying on the repo's old multitool wiring/lockfile need to
    re-check their setup.

  • sphinx parameter removed from public API of the rules_score sphinx
    integration (8d08c8b)
    html_merge_tool is now a private attribute; a new sphinx_toolchain
    macro replaces direct parameterization. Update BUILD files per the
    revised integration_guide.rst.

  • PlantUML linker removed (2561e03)
    Clickable PlantUML diagrams now resolve via a new idmap mechanism
    instead of the old linker. Anything depending on the previous linker
    output/behavior breaks.

  • ClassDiagram data model shrunk: relationships, source_files,
    version fields removed (3e04d66)
    Touches the flatbuffers schema (class_diagram.fbs) and serializer — a
    wire-format break for anything consuming serialized class diagram
    data (validation core, plantuml parser output).

  • PDF docs support removed (libcairo dropped) (49d7975)
    Docs builds relying on PDF output via rules_score examples no longer
    work.

  • Bazel 8.7.0 + rules_python 1.8.5 bump (6e2021b)

🧩 Major Topics

Sequence diagram tooling — significant refactor

  • Added SequenceParticipant to the sequence logic model, refactored
    parser/resolver, added source-location tracking, fixed related tests.
    (5f1fc92,
    df8dec0,
    2e1a1a7,
    09bee59,
    c8eca5d,
    7c9b690)
  • Expanded parser syntax support: lifecycle commands, ref-over statements,
    message suffixes/missing endpoints, group and return commands, and
    graceful handling of unmodeled syntax instead of failing
    (a16eccf,
    b2b9978,
    3add899,
    c60d96b,
    93afcd8)

Component/Class diagram tooling

  • New common identity struct for consistent UID traceability across
    components (fd21ff0).
  • Source location added for components and classes
    (e99f189,
    371edcc);
    component diagram title fix
    (6a4f971).
  • Added lollipop (provided/required interface) relation support
    (b71001d).

Validation framework — new capability + diagnostics overhaul

  • Added public API and static design validation with spec
    (7ccbcc4,
    c082280),
    diagram schema check before opening
    (c224ae1), fix
    to only check component-internal interfaces
    (e9553b1).
  • Wired unit validation into the dependable-element workflow
    (1ce2cbb), with
    a new validation overview doc
    (2b6f125).
  • Broad diagnostics refactor across the validator stack, plus shared error
    formatting support: bazel component validator, class design
    implementation, component internal/public API, component sequence, and
    sequence internal API diagnostics
    (01fb511,
    d52655d,
    bd6c8c5,
    781859d,
    0067aa7,
    9e760de,
    1e86eb5).
  • Removed the now-obsolete component/class integration test suite in favor
    of the new validator tests
    (6a6fa13).

rules_score docs/toolchain overhaul

  • Sphinx toolchain reworked (see API break above), reusable building blocks
    introduced, needs-loading deduped between sphinx_module_ext and
    bazel_sphinx_needs
    (9c4706b,
    395d7b7).
  • Lobster RST report integration reworked (dev mode, always prints report if
    available) (728b239);
    tracing tag added for every Interface method
    (3c21375); test
    case coverage added
    (1e21640).
  • Examples split into separate modules to enable dependable-element
    integration testing; CI reworked into parallel runners
    (49d7975).
  • New skills documentation added for the repo (rules-score,
    score-architecture, score-requirements, score-safety-analysis,
    score-testing) with a sync mechanism
    (8b9b31c,
    9baca71).
  • Additional docs/sphinx fixes: diamond-dependency HTML merge flattening,
    cross-module link-rewriting fixes, per-target conf.py generation and a
    confdir/cwd bug fix, and general rule hygiene in sphinx_module.bzl
    (fa242cd,
    53b4301,
    80a56cb,
    45916a8,
    cc7fce5).

cr_checker refactor

  • Copyright-header checker rewritten to use git-based file discovery,
    switched from an include- to an exclude-based file schema, reads each
    file only once (previously up to 3×), and gained integration tests
    (528dba0).

libclang parser hermeticity

  • Header includes now resolved via sysroot, bumped to clang 18, and compile
    flags now sourced from the LLVM toolchain instead of the host
    (c5ff8ce).

Other fixes

  • clang parser: switched from eprintln/no logging to a proper logging
    strategy (50ce3b9);
    plantuml parser now tolerates unresolvable template types instead of
    panicking (bf25920).
  • rules_score: several bugfixes around dependable-element path handling,
    doc-path hermeticity, and sphinx warning suppression
    (ee78ed8); AoU
    harmonization (835f219).
  • CI/repo hygiene: removed pre-commit hook from CI, Python formatting pass,
    sysroot excludes sphinx build dir
    (50f75ea,
    a3246a7,
    326f345),
    fixed copyright headers repo-wide
    (850cd89).

  • If you want to rebase/retry this PR, check this box

This PR was generated by #infrastructure automation. Contact us if you have any questions or feedback.

@eclipse-score-bot
eclipse-score-bot force-pushed the renovate/score_tooling-3.x branch from 8351a87 to 85c279f Compare October 29, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant