Skip to content

feat(sbom): write CycloneDX 1.7 by default - #357

Open
bomly-guy wants to merge 1 commit into
mainfrom
feat/cyclonedx-1.7
Open

feat(sbom): write CycloneDX 1.7 by default#357
bomly-guy wants to merge 1 commit into
mainfrom
feat/cyclonedx-1.7

Conversation

@bomly-guy

@bomly-guy bomly-guy commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Emit CycloneDX 1.7 from --format cyclonedx / -o cyclonedx=… (was 1.6). The codec, targets, and cyclonedx-go v0.11.0 already supported 1.7 — this flips the two write-default selection points (render.SBOMTarget, benchmark bomlySBOMTarget).
  • Ingest unchanged: SPDX 2.3 and CycloneDX 1.4–1.7 were already auto-detected; the pinned 1.6 smoke fixture keeps exercising 1.6 ingest.
  • SBOM interoperability assurance now validates v1_7. No validator bump needed — the pinned cyclonedx-cli v0.32.0 already supports --input-version v1_7 (verified by running it). The evidence catalog's recorded checksum for the workflow file is updated accordingly (make evidence passes).
  • Docs sweep: every current-behavior "1.6" mention updated (SBOM, OUTPUT_FORMATS, GETTING_STARTED, GLOSSARY, SCAN_TARGETS, README, faq.json, manifest, evidence pages). The dated July 24 run description in EVIDENCE.md intentionally still says 1.6. Bonus accuracy fix: the SBOM detector prose claimed only 1.6 ingest was supported with 1.5 as future work — the codec has accepted 1.4–1.7 all along; the generated ecosystem page now says so.

Validation

  • Generated document reports specVersion: 1.7 and passes cyclonedx-cli v0.32.0 validation with --input-version v1_7 --fail-on-errors
  • bomly scan --sbom round-trips the generated 1.7 file
  • make evidence (24 cases), make fuzz FUZZTIME=5s (SBOM handling touched), make generate (no drift beyond the intended prose regeneration), make test (68 packages), offline link check — all green

Notes

  • No new flag: this is a default bump, so no config/MCP surface changes per the feature checklist. If downstream consumers need 1.6 output pinning, a --sbom-version selector can be a follow-up.
  • Squash title carries feat: for a minor version bump.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Added CycloneDX 1.7 output support.
    • Expanded SBOM input detection to support CycloneDX versions 1.4–1.7 alongside SPDX 2.3.
  • Documentation
    • Updated guides, FAQs, format references, and interoperability materials to reflect the supported versions.
  • Tests
    • Updated validation and interoperability checks for CycloneDX 1.7.

The codec and cyclonedx-go v0.11.0 already supported 1.7 end to end
(targets, encoder cases, ingest auto-detection for 1.4-1.7); only the
write default still selected 1.6. Flip the two selection points
(render.SBOMTarget, benchmark bomlySBOMTarget), point the interop
assurance at v1_7 (the pinned cyclonedx-cli v0.32.0 validator already
accepts it — verified by running it against a generated 1.7 document),
and update the recorded workflow checksum in the evidence catalog.

Ingest is unchanged: CycloneDX 1.4-1.7 and SPDX 2.3 remain accepted, and
the existing 1.6 smoke fixture keeps exercising 1.6 ingest. Docs sweep
updates every current-behavior mention of 1.6 (SBOM, output formats,
getting started, glossary, scan targets, README, faq.json, manifest,
evidence pages); the dated July 24 workflow-run statement in EVIDENCE.md
intentionally keeps saying 1.6. Also fixes stale detector prose that
claimed only 1.6 ingest was supported and 1.5 was future work — 1.4-1.7
have all been accepted by the codec.

Verified: emitted document reports specVersion 1.7 and passes
cyclonedx-cli v0.32.0 validation with --input-version v1_7; ingest
round-trips the generated 1.7 file; make evidence, make fuzz, make
generate, and the full test suite pass.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 8d027b44-d977-4e67-a3ff-918bc5f91649

📥 Commits

Reviewing files that changed from the base of the PR and between 368e006 and 7d4971e.

📒 Files selected for processing (18)
  • .github/workflows/sbom-interoperability.yml
  • README.md
  • docs/GETTING_STARTED.md
  • docs/GLOSSARY.md
  • docs/OUTPUT_FORMATS.md
  • docs/SBOM.md
  • docs/SCAN_TARGETS.md
  • docs/detectors/ecosystems/sbom/sbom.md
  • docs/evidence/TARGETS_AND_OPERATIONS.md
  • docs/faq.json
  • docs/manifest.json
  • internal/benchmark/run.go
  • internal/cli/render/sbom.go
  • internal/cli/render/sbom_test.go
  • internal/output/output.go
  • internal/support/prose/detectors/sbom.md
  • internal/tools/sbomassurance/main.go
  • test/evidence/cases.json

📝 Walkthrough

Walkthrough

CycloneDX output and validation references move from 1.6 to 1.7. Documentation now describes 1.7 output and 1.4–1.7 ingestion, while tests, benchmarks, workflow text, and evidence checksums are updated accordingly.

Changes

CycloneDX version alignment

Layer / File(s) Summary
Output targets and validation
internal/cli/render/*, internal/benchmark/*, internal/tools/sbomassurance/*, internal/output/*
CycloneDX target selection, benchmark encoding, validator arguments, tests, and format comments now reference CycloneDX 1.7.
SBOM support documentation
docs/SBOM.md, docs/SCAN_TARGETS.md, docs/detectors/..., internal/support/prose/..., docs/faq.json, docs/GLOSSARY.md, docs/manifest.json
Documentation now lists CycloneDX 1.7 output and CycloneDX 1.4–1.7 ingestion.
Interoperability references and evidence
.github/workflows/*, docs/evidence/*, README.md, docs/GETTING_STARTED.md, docs/OUTPUT_FORMATS.md, test/evidence/cases.json
Workflow summaries, usage documentation, output tables, and workflow checksums are synchronized with the CycloneDX 1.7 update.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: CycloneDX output now defaults to 1.7 instead of 1.6.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/cyclonedx-1.7

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Bomly Diff Summary

Compared a5e8dd26e3f6b75458875984b3334f9963c9fa94 to 7d4971e490aabccd26abeb21b7a3ea2149353f29.

Overview

Status Manifests Dependencies Findings Duration
✅ Pass +0 / ~0 / -0 0 added / 0 version changed / 0 detail changes / 0 removed 0 introduced / 0 persisted / 0 resolved 1m 16s

Dependency Changes

✅ No dependency changes.

Vulnerabilities

✅ No vulnerability changes.

License Changes

✅ No license changes.

Project Posture

✅ No project posture changes (--matchers +scorecard was not selected).

Policy Findings

✅ No policy differences were identified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant