adacovex 1.4.0¶
Date: 2026-08-03
Version bumped 1.3.0 -> 1.4.0.
Changes¶
C1: Proof-aware SBOM generation (adacovex sbom)¶
New sbom subcommand generates a software bill of materials for the target
project from its Alire manifest, alire.lock solved-crate list, and GNAT
project (.gpr) with clauses:
adacovex sbom --format=cyclonedx-json --out=path/to/sbom.json
--formatselectscyclonedx-json(default, writes<target>/sbom.json) orspdx-json(writes<target>/sbom.spdx.json).--outoverrides the output path; the containing directory is created automatically.The dependency graph is resolved by the new
Adacovex.Parsers.Manifestpackage: the root project is index 1, then alire.lock crates and GPRwith-clause dependencies (including transitives) are appended, with cross-source deduplication.The new
Adacovex.Renderers.SBOMpackage emits CycloneDX 1.5 JSON and SPDX 2.3 JSON documents. Every component carries the proof-aware propertiesadacovex:proof_level(GoldorPlatinumfrom the assessed GNATprove result) andadacovex:dal_target(DAL-AthroughDAL-D; empty forDAL-E), which in SPDX are encoded asattributionTextsentries.Both formats validate against the official CycloneDX 1.5 and SPDX 2.3 JSON schemas.
The SBOM mode scans sources, parses proof/tests, and assesses DAL first so the emitted properties reflect the real assessment state.
Mutually exclusive with
--compare-baseand--coverage-delta.
C2: GitHub Action moved to the repository root¶
The composite action moved from .github/actions/adacovex/action.yml to
./action.yml, so it is consumed directly as uses: bladeacer/adacovex@v1.4.0
(no nested path) and is auto-discovered at the repo root for the marketplace.
All workflows (ci.yml, pr-check.yml, release.yml) now reference
uses: ./, and the release tarball packages the root action.yml.
C3: Action SBOM inputs¶
The action gained two inputs:
generate-sbom(defaulttrue) – after the assessment, generate a proof-aware SBOM and upload it as anadacovex-sbomartifact, with a row in the Markdown step summary. Setfalseto skip.sbom-format(defaultcyclonedx-json) – SBOM format, passed toadacovex sbom --format=....
SBOM generation is skipped automatically in differential and coverage-gate
modes (the two modes are mutually exclusive with sbom), and a failed SBOM
(no Alire manifest, for example) is reported as a warning without failing the
job.
Fixes¶
H1: SBOM proof level read before the proof parse¶
Run_SBOM computed the adacovex:proof_level property from the proof summary
before calling Parse_Prove_From_Project, so the emitted level was always
Gold (the default empty-summary mapping). The property is now computed after
the parse, so a verified target emits Platinum.
Test Suite¶
Test suite extended with a new Adacovex_SBOM_Tests category (53 checks)
covering the proof/DAL property mapping, the Alire manifest + GPR dependency
graph fixture, and CycloneDX/SPDX rendering with quote-escaping and JSON
structural balance. The suite is now 222 tests.
Proof Results¶
Self-assessment: Platinum (28/28 VCs proved, AoRTE-free).
Traceability¶
New -- HLR-MANIFEST (manifest and dependency-graph parsing) and -- HLR-SBOM (SBOM generation) tags on Adacovex. Parsers. Manifest and `Adacovex. Renderers.
SBOMare defined indocs/HLR.mdanddocs/compliance/HLR.md` and traced by the new SBOM feature.