Repository navigation
Conversation
…native 6021100c Select the release identity 0.37.13+signer.1.0.9 (intended tag castlabs-v0.37.13+signer.1.0.9) for signer 1.0.9. Only the version label and its release metadata change: the Python runtime, native castlabs/c2pa-rs 6021100cc5060b06061ca15b634281cfeb97c718, Cargo.lock SHA-256 ff5cf2de..., Rust 1.96.0, revision 3 / mask 63 and all release controls are unchanged from the published 0.37.13+signer.1.0.8. - Package, c2pa.py header, lock, input/evidence schemas, release helper and body, escaped tag trigger, concurrency group, wheel/bundle names, expected versions and the release job tag gate select 1.0.9. - Tests reject the published 1.0.8 identity as a tag ref, dist-info, functional build version or workflow reference. - Docs record 1.0.8 as published and add 1.0.9 preparation notes. No tag, release or publication.
|
@cl-percy start |
Hosted non-publishing qualification of head
|
| Job | Focused | Non-threaded (release smoke required) | Threaded | Installed 0.37.13+signer.1.0.9 wheel |
|---|---|---|---|---|
ubuntu-24.04 (119300271632) |
286 passed | 929 passed | 54 passed | 286 passed |
windows-2022 (119300272011) |
286 passed | 929 passed | 54 passed | 286 passed |
Both jobs also ran the real-native ladder harness, with no skips.
- All release prepare/build/test/publish jobs were skipped.
- The run uploads no artifacts by design. Its isolated wheels are qualification
bytes, not release candidates. - The PR
Buildrun 39622768702 passed, includingCastlabs release tooling.
What I did not run, and why:
- Native was not re-qualified.
6021100cis unchanged, is still the c2pa-rs
feat/trusted-vsi-functionaltip, and was already qualified by c2pa-rs runs
39004441528and39004441573. - A branch-tip build-only artifact run is not possible yet. It requires this
commit onfeat/trusted-vsi-functional, so it can run only after review. - No tag or draft was created.
@thasso, the REST review request rejected you as a non-collaborator on this
repository, so I'm asking for your review here instead. BibinBaby444 has been
requested formally. Either approval is enough for the publication gate.
sripadmasm
left a comment
There was a problem hiding this comment.
Review (head 98ccd6d): approve
Read-only review. No blocker, major or minor findings.
Native: unchanged.
- The lock still pins c2pa-rs
6021100c.compare 6021100c...feat/trusted-vsi-functionalreports identical. - Cargo.lock, toolchain, features and targets are unchanged.
sdk/src/settings/builder.rs:413/425(all_actions_included/auto_all_actions_included) are present.- So the
specVersion 2.4/allActionsIncludedbehaviour that signer contentauth#62 relies on, and verified natively on+signer.1.0.8, is preserved.
Python runtime: unchanged. The only change under src/ is the comment at src/c2pa/c2pa.py:14. __version__ never enters a manifest.
Release identity: consistent across pyproject, the lock, schemas, castlabs_release.py, both workflows and the tests. The body marker is now distinct from 1.0.8's, and new negative tests reject the 1.0.8 identity. No gates are weakened. The qualification run passed on Linux and Windows.
Suggestions
- Native byte check: after the tagged run, compare the SHA-256 of
libc2pa_c.so/c2pa_c.dllin the 1.0.9 bundles with the 1.0.8 release (ID 415634231). Equal hashes would prove "native unchanged" byte for byte. - Signer pin: signer 1.0.9 must pin the full local version,
c2pa-python==0.37.13+signer.1.0.9. Under PEP 440,==0.37.13also matches the 1.0.8 wheel.
Release order for signer 1.0.9: see castlabs/stardustproof-c2pa-signer#55.
|
@sripadmasm thanks for the review. You only have read access to castlabs/c2pa-python, so GitHub cannot record a formal approval here; your review above (approve, no blocker/major/minor findings) is recorded as an advisory approval. Publication still waits for a formal approving review from a reviewer with write access. Your two suggestions are adopted for publication: (1) after the tagged run, the native libc2pa_c.so / c2pa_c.dll SHA-256 in the 1.0.9 bundles will be compared with the 1.0.8 release (ID 415634231) and recorded; (2) signer 1.0.9 will pin the full local version c2pa-python==0.37.13+signer.1.0.9. |
Purpose
Prepare the signer-aligned dependency version
0.37.13+signer.1.0.9for signer1.0.9. The intended tag is
castlabs-v0.37.13+signer.1.0.9.This PR only prepares the release. It does not authorize a tag, a release or
publication. Publication waits for reviewer approval (Bibin or thasso) and then
the protected-environment gate.
Inputs (unchanged from published 0.37.13+signer.1.0.8)
castlabs/c2pa-rs@6021100cc5060b06061ca15b634281cfeb97c718. This isstill the tip of c2pa-rs
feat/trusted-vsi-functional, so no native change ispending.
ff5cf2de2403ff491957fc8a2206c289203d2799a30425bd615f7c9e69974a8f.I re-checked it against the blob at
6021100.63, the feature set and the Python runtime API are all unchanged.
abc9a034, which is the published 1.0.8 source(release ID
415634231, tagged run39010024287). That tag, its release andits assets/evidence stay untouched and are not relabeled.
The base remains
0.37.13because neither the Python line nor the native linechanged. Only the
+signer.<version>label moves. The policy example in therelease notes used to say
0.37.14+signer.1.0.9. I changed it to the actualidentity, so please confirm that
0.37.13is the intended base.Changes (version label and release metadata only)
pyproject.toml, thec2pa.pyversion header, the inputs lock, the inputand evidence schemas, and
castlabs_release.py(RELEASE_VERSION, releasebody) now carry
0.37.13+signer.1.0.9.castlabs-vsi-release.yml:'castlabs-v0.37.13\+signer.1.0.9', with the literal+stillescaped.
the expected versions, and the tag gate of the
releasejob.jqfilter nowuse the new tag.
castlabs-vsi-releaseenvironment, owned no-clobber draftcreation,
prerelease=false, the marker/label checks, source/branch-tipvalidation and attestations.
trusted-vsi-paired.yml:FUNCTIONAL_BUILD_VERSIONandCASTLABS_RELEASE_EXPECTED_VERSION.against the 1.0.9 lock, as a wheel dist-info, as a functional build
version, and as a PyPI version.
signer.1.0.8.published and describe 1.0.9 as preparation only.
Verification so far
tests/test_castlabs_release_tooling.pyandtests/test_trusted_vsi_build.pypassed (66 tests, no native code), alongwith the lock-value and release-value helpers and
git diff --check. Therewere no local cargo or native builds.
98ccd6de63d89eca9c23f27658f6b29fe99daffcpassed:https://github.com/castlabs/c2pa-python/actions/runs/39622774539
(
castlabs-vsi-release.yml,trusted_vsi_only=true, native6021100c).Each platform ran 286 focused, 929 non-threaded (release smoke required) and
54 threaded tests, plus the real-native ladder harness and 286 tests against
the installed
0.37.13+signer.1.0.9wheel. Nothing was skipped. Allrelease jobs were skipped and no artifacts were uploaded. The PR
Buildrun39622768702 passed, including
Castlabs release tooling.Remaining after approval (not done here)
feat/trusted-vsi-functional. A fast-forward keeps thequalified SHA equal to the release source. If a merge commit is used, its
tree must match the qualified tree.
castlabs-v0.37.13+signer.1.0.9at that tip. The tagged runbuilds and tests both platforms. Its
releasejob waits for the protectedcastlabs-vsi-releaseenvironment and then creates an owned no-clobberdraft.
release ID.
No PyPI. Signer pins must be updated only after these immutable facts exist.