Repository navigation
feat: use score_sbom for license handling - #430
Conversation
License Check Results🚀 The license check job ran with the Bazel command: bazel run --lockfile_mode=error //:license-checkStatus: Click to expand output |
|
The created documentation from the pull request is available at: docu-html |
71adca4 to
66b5c7a
Compare
6ccf003 to
15be60c
Compare
15be60c to
8362b09
Compare
8362b09 to
970e173
Compare
970e173 to
5723bea
Compare
| ) | ||
|
|
||
| dash_license_checker( | ||
| src = ":filtered_cargo_lock", |
There was a problem hiding this comment.
There's no licence gate left for Rust. Licences now come from what publishers declare on crates.io, not from Dash/IP approval, and sbom-tool doesn't fail on any licence. Something still needs to gate this: Dash, or a policy check on the SBOM output.
There was a problem hiding this comment.
"gate" is back (no more review needed with the filter and the updated Cargo.lock) the updated cicd-workflows/.github/workflows/license-check.yml workflow has a "workaround" for the missing secret so actually the dash tool is now really triggered (but no automatic review, only commend) ... ❗ the update only gets effective after merge so the current run still fails
There was a problem hiding this comment.
The updated Cargo.lock is much closer: down from ~40 version mismatches to 2 compared to what Bazel builds.
Crate: libc Cargo.lock: 0.2.189 Bazel: 0.2.186 (pinned exactly in score_crates for QNX 8)
Crate: lazy_static Cargo.lock: 1.5.0 Bazel: 1.5.1
Could you align these two? Otherwise Dash checks a libc version we don't ship. Regarding a "correct" Cargo.lock: score_crates v0.0.12 now ships its own Cargo.lock (score-crates #69), which could serve as the reference, although it covers all S-CORE crates, not only ours.
On "gate": the shared workflow (also the new d2083d5) never fails the job; the exit code only switches the comment between "Passed" and "Needs Review", and without a DASH token there is no IP-team review request. That's the same as on main, so no regression from this PR, but it's a report rather than a merge gate.
Where this should go long-term needs a broader discussion: eclipse-dash/dash-licenses#533. The Eclipse IP team is investigating a move to an Eclipse Apoapsis/ORT-based solution, with Dash/IPLab to be retired eventually over a deprecation period of years. Similarly, https://github.com/bazelbuild/rules_license (used in #432) states that active development has moved to https://github.com/bazel-contrib/supply-chain, and score_sbom doesn't consume rules_license providers yet. I'd suggest we take the gate question and the target toolchain (Dash → ORT, rules_license → supply-chain) to cicd-workflows / the tooling community, and keep this PR to the libc / lazy_static fix.
232f65c to
7c53427
Compare
Replace the hand-rolled dash_license_checker setup (including the filtered_cargo_lock workaround and the license_check.sh aggregator) with the score_sbom tool (v0.1.1) from the S-CORE bazel registry. The new //:sbom target generates SPDX 2.3 and CycloneDX 1.6 SBOMs for the KVS library, covering: - third-party dependency inventory (name, version, SHA-256, PURL) - Rust crate licenses/suppliers via crates.io API (auto_crates_cache) - Python dependency licenses via dash-license-scan (python_lockfiles path) - first-party code license propagation stays with the repository license (Apache-2.0) Old dash-based license check targets are removed. Signed-off-by: Uwe Maucher <205777204+umaucher@users.noreply.github.com>
Add a separate testonly SBOM covering build and test tooling, kept apart from the product SBOM because build-time dependencies are not product/runtime dependencies. Covers the docs build, unit and CIT test suites, and the test-related Python lockfile. Pip repositories are represented authoritatively by python_lockfiles, so their generated Bazel aliases are excluded to avoid duplicate components. Make the test targets referenced by the root test suites public (rust_kvs tests, cit_cpp, cit_rust) so the SBOM can pull them in. Remove python_lockfiles from the product SBOM: the only Python lockfile in the repo is test-related, so it belongs to the build-tools inventory. Signed-off-by: Uwe Maucher <205777204+umaucher@users.noreply.github.com>
Keep the CI license command effective while SBOM-based license policy remains under review.
Use the current reusable workflow implementation for reliable license-check status reporting.
Signed-off-by: Uwe Maucher <205777204+umaucher@users.noreply.github.com>
d992d60 to
08b3115
Compare
- Use the @score_tools cr_checker in //tools, as on main since #476. It checks every tracked file that has a template. No srcs or extensions lists. - Keep tools/copyright_exclusions.txt. Drop the root cr_checker_exclusion file. - Pass //:Cargo.lock to dash_license_checker with file_type cargo, as on main since #430. The score_tooling converter already drops path crates. - Drop the filtered_cargo_lock genrule and the PROJECT_CONFIG load. - Export Cargo.lock to //tools. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- Use the @score_tools cr_checker in //tools, as on main since #476. It checks every tracked file that has a template. No srcs or extensions lists. - Keep tools/copyright_exclusions.txt. Drop the root cr_checker_exclusion file. - Pass //:Cargo.lock to dash_license_checker with file_type cargo, as on main since #430. The score_tooling converter already drops path crates. - Drop the filtered_cargo_lock genrule and the PROJECT_CONFIG load. - Export Cargo.lock to //tools. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Replace the hand-rolled dash_license_checker setup (including the filtered_cargo_lock workaround and the license_check.sh aggregator) with the score_sbom tool (v0.1.1) from the S-CORE bazel registry.
The new //:sbom_* targets generates SPDX 2.3 and CycloneDX 1.6 SBOMs for the KVS library, covering:
Old dash-based license check targets are removed.
Add a separate testonly SBOM covering build and test tooling, kept apart from the product SBOM. Covers the docs build, unit and CIT test suites, and the test-related Python lockfile.