Before stable
package.json: 0.63.4
CHANGELOG: ## Unreleased
Insider artifacts have 0.64.0-insiders.N, but that version is not committed.
Master stays at the last stable version while insiders preview the next target. Stable promotes the final tested source SHA.
package.json stays at the last shipped stable until the post-release PR merges.
CHANGELOG.md ## Unreleased headings compute the next stable version.
sequenceDiagram
participant PR as PRs
participant M as master
participant I as Insiders feed
participant S as Stable release
participant R as Post-release PR
Note over M,I: repo still says 0.63.4
Unreleased computes 0.64.0
PR->>M: merge feature/fix
M->>I: cut v0.64.0-insiders.0 (tag B)
Note right of I: testers get build .0
PR->>M: merge candidate
M->>I: cut v0.64.0-insiders.1 (tag C)
Note right of I: testers get build .1
PR->>M: merge final fix
M->>I: cut v0.64.0-insiders.2 (tag D)
Note right of I: testers approve build .2
I->>S: promote source SHA D
S->>S: tag v0.64.0 on D
rebuild public artifacts
S->>R: generate PR from D
R->>M: merge version + changelog bump
Note over M: package.json = 0.64.0
CHANGELOG has ## v0.64.0
newer bullets remain Unreleased
The workflows build from computed versions in CI. The repository only catches up after the generated post-release PR merges.
package.json: 0.63.4
CHANGELOG: ## Unreleased
Insider artifacts have 0.64.0-insiders.N, but that version is not committed.
package.json: 0.64.0
CHANGELOG: ## v0.64.0
Generated from released SHA D, moving shipped bullets out of Unreleased.
package.json: 0.64.0
CHANGELOG: ## v0.64.0
Master now matches stable. Later work continues under Unreleased.
v0.64.0-insiders.2 and v0.64.0 point at the same source SHA; stable rebuilds public artifacts instead of republishing the insider binary.