v0.1.0a6 — 2026-04-24¶
SBOM generation for every release. Operators can now audit the exact
dependency graph shipped in any pip install oxi-core.
What's new¶
-
scripts/generate-sbom.sh— standalone script that produces a CycloneDX 1.6 JSON SBOM for any oxi package. Called automatically byscripts/release.shafter the smoke-test venv validates the wheel. The SBOM lands indist/alongside the wheel and sdist so it can be attached to the GitHub release page. -
scripts/release.shSBOM integration — after the smoke-test venv is validated,cyclonedx-bomis installed into that isolated venv and the SBOM is generated from it. This guarantees the dependency snapshot reflects exactly what a cleanpip installpulls in — not the broader dev environment. Pass--no-sbomto skip if needed. -
.github/workflows/sbom.yml— CI job that generates and uploads the SBOM as a GitHub Actions artifact (90-day retention) on every push tomainand on manual trigger. Lets operators download the SBOM for any commit without running a release. -
oxi-core[release]extras — new optional-dependency group that pinsbuild,twine, andcyclonedx-bomfor reproducible release tooling.
SBOM details¶
- Format: CycloneDX 1.6 JSON (
--output-reproducibleensures stable output for identical inputs). - Root component:
oxi-corewith version and license pulled frompyproject.toml. - Covers all transitive runtime dependencies resolved by pip at install time.
- Filename convention:
sbom-<pkg-name>-<version>.cdx.json.
Install¶
Next¶
0.1.0a6 → 0.1.0b1 after the bandit/CodeQL SAST integration (T1-16) lands
and the remaining T1 polish items close.