Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 1 addition & 23 deletions .github/workflows/package-release.yaml
Original file line number Diff line number Diff line change
@@ -1,27 +1,5 @@
name: Package Release
# Deploy repo: a manual `sol-v*` tag is the sole release trigger. This repo
# carries deployed concretes (`AddressRegistry`, `MigrationRegistry`) whose
# address + codehash consumers pin, which is exactly the shape
# rainix-tag-release exists for and exactly the shape rainix-autopublish's
# merge-driven, next-version lifecycle is wrong for: autopublish bumps the
# release version on every merge while the frozen deploy tag only advances at
# deploy time.
#
# The tag names the version; rainix-tag-release runs `cutRelease()`, which
# freezes src/generated/<tag>/ AND regenerates the released-suites lib that
# declares it in one call, then verifies the live chains match the fresh pins,
# publishes rain-deploy to Soldeer, and commits both back to main. One call,
# because a frozen record no declaration names is a release every check silently
# stops asking about.
#
# The on-chain deploy is separate and manual, run BEFORE tagging; this never
# broadcasts. The chain verification inside rainix-tag-release is what fails if a
# newly declared release is not on chain, and that is the intended gate: a
# release is declared here only once it is a deployment that already happened.
#
# Switching lifecycles retracts nothing: every version already published stays
# published, and consumers pin exact versions, so this changes who cuts a
# release and nothing about how anyone consumes one.
# Deploy repo: released by a manual `sol-v*` tag via rainix-tag-release.
on:
push:
tags:
Expand Down
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -393,11 +393,9 @@ Three separate steps, in this order. Nothing automatic ever broadcasts.
This repo has released none, so today it has nothing to check and passes; it
gets a subject the moment step 3 freezes one, and is red from then until step
1 has been run everywhere. That is the order these steps are in.
3. **Tag.** Push a `sol-v*` tag. `rainix-tag-release` regenerates the snapshot
for the version the tag names, verifies the live chains against those fresh
pins, publishes to Soldeer and commits the frozen snapshot back to `main`. It
verifies and publishes; it never broadcasts, which is exactly why step 1
cannot be folded into it.
3. **Tag.** Push a `sol-v*` tag, the sole release trigger. It verifies and
publishes but never broadcasts, which is exactly why step 1 cannot be folded
into it. The release mechanics are `rainix-tag-release`'s.

This is a deploy repo: it carries deployed concretes whose addresses and
codehashes consumers pin, so releases are **manual `sol-v*` tags**, not merges.
Expand Down
Loading