Changelog#
All notable changes to this project are documented in this file.
The format follows Keep a Changelog, and this project follows Semantic Versioning.
Unreleased#
0.1.2 - 2026-09-10#
Fixed#
Inspect source-audit evidence through bounded reads of regular recipe and bundle files from a digest-checked archive snapshot, without general package extraction. Select the exact
.condainfo component using the original package filename.Reject unsafe archive paths, links or special files at evidence paths, duplicate evidence files, malformed package streams, and archive expansion beyond source-audit limits.
Bound rendered YAML parsing and source-attestation declaration counts before constructing requirements.
0.1.1 - 2026-09-09#
Changed#
Updated the draft repodata transport documentation for the ordering and concurrent publication requirements in conda/ceps#142. Clarified that bundle positions identify evidence without affecting verification or signer matching.
Updated the locked conda development package to
b5dab4a46a650c6f0f82b2486993ee6891415debfrom conda/conda#16518.
0.1.0 - 2026-08-31#
Added#
conda sigstore attest,verify, andauditcommands backed by sigstore-python.Strict CEP 27 statement construction and validation for conda package publication attestations.
Support for the current draft repodata transport proposed in conda/ceps#142: a strict
attestations_sha256package-record field and immutable.sigs.<sha256>retrieval. Prefix.dev.v0.sigsdiscovery remains a separate compatibility transport.Offline verification and installed-environment, SLSA provenance, and recipe source-evidence auditing.
Scheduled live interoperability checks for the fixed Prefix.dev example and Sigstore staging.
Hermetic cold and warm verification, retained-package hashing, and extraction benchmarks with a separate workflow that preserves results without imposing hosted-runner timing thresholds.
A scheduled informational benchmark alternating cached Prefix.dev installs with strict verification disabled and enabled.
Sphinx documentation using MyST,
conda-sphinx-theme,sphinx-design, and a Diátaxis structure.Installation, locked-environment verification, environment-audit, standard sigstore-python verification, and Prefix.dev publishing guides.
Optional exact signer identity and OIDC issuer verification for
conda sigstore verify.Versioned JSON output with artifact and observed sidecar SHA-256 digests, plus an exact output and exit-status reference.
A direct, opt-in pre-extraction verifier for the package-verifier API in conda/conda#16518, controlled by
plugins.conda_sigstore_enforceand disabled by default. It accepts a repodata-hash-pinned.sigs.<sha256>sidecar when advertised and otherwise requires the deterministic adjacent.v0.sigssidecar.Rich terminal rendering for human-readable command output.
A tag-driven release workflow that builds once, records GitHub provenance, stages an immutable GitHub release, and publishes the same distributions to PyPI with Trusted Publishing and attestations.
A generic in-toto library API for signing a parsed statement and returning its authenticated signer and timestamp evidence after verification.
Changed#
Use the released conda-spawn 0.2.0 package from conda-forge in the locked test environments instead of building a pinned Git revision.
Resolve the locked Sigstore runtime dependencies, conda-package-handling, conda-lockfiles, and conda-workspaces from conda-forge instead of PyPI. Keep the package-verifier Git revision as a source-built conda dependency, and keep conda-sigstore as an editable path dependency.
Test every supported Python version on Windows ARM64 hosts using the locked win-64 environments through Prism while native win-arm64 dependencies remain unavailable on conda-forge.
Raised the minimum supported Python version from 3.10 to 3.11 to match the sigstore-python 4.5 dependency set available on conda-forge.
Replaced the superseded nested
attestationsmapping, advertised-size checks, and mutable.sigsclient retrieval with the currentattestations_sha256and immutable endpoint defined by conda/ceps#142 at commitbcfcf42990fb4e5446f33424353ba0b7c0e869f0.Reorganized the documentation around runnable beginner workflows and exact operator and machine-readable reference contracts.
Made conda’s standard
--console jsonoption select the same unstyled JSON result output as--jsonfor verification and audit commands.Removed the permanently unavailable
sourcefield from SLSA evidence output.Expanded the live Prefix interoperability check into a real strict pre-extraction installation followed by an environment audit.