Repository navigation
feat(rules_score): trace failure modes to public API methods - #555
Merged
Merged
Conversation
FailureMode.interface was a free-text String. It is now a list of ApiMethod TRLC records generated from the public_api class diagrams, so failure modes trace to concrete interface methods. puml_cli / puml_api - New puml_api crate replaces puml_lobster. It collects the public methods of the resolved class model: one record per method name (all overloads) and one per free function. Attributes, enums, typedefs and non-public members yield no record. - New --api-output-file / --api-package flags write public_api.trlc. Public API inputs must be class diagrams. - Operators and destructors get stable record names. Unsupported operators (conversion, new, delete, co_await) fail with UnsupportedOperator. - Split main.rs into inputs, parsing, resolving, fta and sinks modules. - Shared TRLC rendering moves to puml_utils::trlc. FTA package names that start with a digit now get a `P` prefix. rules_score - Add the ScoreReq.ApiMethod record type. - FailureMode.guidewords is a list. The safety-analysis page shows one badge per guideword. - architectural_design takes `package`. It is required with public_api diagrams and rejected without them. - failure_modes lists the architectural_design in `deps` to resolve the records. - lobster_sa: the "Architecture" level is replaced by "Public API". - Remove trlc_package.bzl. The default FTA package is inlined into safety_analysis.bzl. - Update examples, tests and user docs. BREAKING CHANGE: FailureMode.interface now references ApiMethod records generated from public_api class diagrams. Migrate by: - adding `package` to architectural_design targets with public_api - adding that target to the `deps` of failure_modes - removing `arch_design` from safety_analysis - replacing string `interface` values with ApiMethod references The "Architecture" lobster level is renamed "Public API"; public_api accepts class diagrams only; puml_cli --lobster-output-dir is removed.
hoe-jo
requested review from
LittleHuba,
castler,
limdor,
melodyoncode and
ramceb
as code owners
October 29, 2026 12:00
Coverage ReportCoverage report was generated. Full report can be downloaded from the CI artifacts (expand Artifacts at the bottom of the run). Overall coverage rate: |
LittleHuba
approved these changes
Oct 29, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
FailureMode.interface was a free-text String. It is now a list of ApiMethod TRLC records generated from the public_api class diagrams, so failure modes trace to concrete interface methods.
puml_cli / puml_api
Pprefix.rules_score
package. It is required with public_api diagrams and rejected without them.depsto resolve the records.BREAKING CHANGE: FailureMode.interface now references ApiMethod records generated from public_api class diagrams. Migrate by:
packageto architectural_design targets with public_apidepsof failure_modesarch_designfrom safety_analysisinterfacevalues with ApiMethod references The "Architecture" lobster level is renamed "Public API"; public_api accepts class diagrams only; puml_cli --lobster-output-dir is removed.