Skip to content

docs(ci): note immutable-release dependency on the release job (#481) - #482

Closed
emmanuelm41 wants to merge 1 commit into
mainfrom
chore/release-workflow-v11-immutable
Closed

docs(ci): note immutable-release dependency on the release job (#481)#482
emmanuelm41 wants to merge 1 commit into
mainfrom
chore/release-workflow-v11-immutable

Conversation

@emmanuelm41

@emmanuelm41 emmanuelm41 commented Jul 1, 2026

Copy link
Copy Markdown
Member

Goal — closes #481

Enable immutable releases so the signed binaries we ship on GitHub can't be altered or replaced after publish (supply-chain hardening; kache-action and the package managers pull from these releases).

The problem

Binaries are already signed (Authenticode + macOS notarization + PGP via _release-rust.yml), but releases are not immutable — confirmed off:

GET /repos/kunobi-ninja/kache/immutable-releases → {"enabled":false}

We can't just flip the switch. Immutability locks the tag + assets at publish time, but the old release flow published first, then uploaded assets — which immutability would reject, breaking every release. Fix: draft → upload → publish (Zondax/_workflows#110).

This PR

Since Zondax/_workflows#110 is backward-compatible (identical final state), the v10 tag is moved forward to include it rather than split — so kache stays pinned to @v10 and needs no functional change. This PR is doc-only: it records the immutable-release constraint on the release job so the pin isn't later rolled back to a tag predating the draft→publish flow.

Rollout / merge order ⚠️

  1. Merge feat(_release-rust): draft→upload→publish for immutable releases Zondax/_workflows#110, then advance both v10 and v11 tags to that commit (no split; both carry the backward-compatible flow).
  2. Merge this PR.
  3. Enable the setting: gh api -X PUT /repos/kunobi-ninja/kache/immutable-releases (reversible via DELETE) — must come after the tag move, or the next release breaks.

This repo will have GitHub immutable releases enabled — publishing a
release locks its tag + assets. That requires the reusable release
workflow to create a draft, attach all assets, then publish (see
Zondax/_workflows#110), which the pinned @v10 tag now carries. Document
that constraint on the release job so the pin isn't rolled back to a
tag predating the draft→publish flow.

No functional change (pin stays @v10).

Closes #481
@emmanuelm41
emmanuelm41 force-pushed the chore/release-workflow-v11-immutable branch from db432d1 to f612825 Compare July 1, 2026 20:55
@emmanuelm41 emmanuelm41 changed the title ci(release): enable immutable releases (bump _release-rust to @v11) docs(ci): note immutable-release dependency on the release job (#481) Jul 1, 2026
@emmanuelm41 emmanuelm41 closed this Jul 1, 2026
@emmanuelm41
emmanuelm41 deleted the chore/release-workflow-v11-immutable branch July 1, 2026 20:59
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.

Enable immutable releases

1 participant