Problem
next is currently 32 commits ahead of main, with work accumulated since 2023. main is not merely a release branch: the public installer and z-shell/zd default to cloning main, so a promotion changes the code new users consume immediately.
The repository now has useful checks on next (Zsh, ZD Integration, Trunk, and CodeQL), and the current head passes them. However, the live rulesets do not require those checks on next; the main ruleset requires only Guard main branch source. The pull-request template says to promote after integration checks pass but does not define a promotion-specific readiness record, migration notes, or rollback decision.
The current review also found three user-visible compatibility regressions that required focused fixes in #368, #370, and #372. That is evidence that green syntax and broad integration checks alone are not a sufficient promotion policy.
Proposed scope
Define and enforce a small promotion gate specifically for same-repository next to main pull requests. Keep ordinary feature pull requests lightweight and preserve the class-3, Git-consumed publication model.
Acceptance criteria
Required validation
Promotion record
Rollback readiness
Tag boundary
Out of scope
- An arbitrary coverage percentage.
- Automatically editing consumer repositories.
- Automatically publishing a tag or GitHub release on every
main update.
- A permanent freeze of ordinary work on
next.
Problem
nextis currently 32 commits ahead ofmain, with work accumulated since 2023.mainis not merely a release branch: the public installer andz-shell/zddefault to cloningmain, so a promotion changes the code new users consume immediately.The repository now has useful checks on
next(Zsh,ZD Integration, Trunk, and CodeQL), and the current head passes them. However, the live rulesets do not require those checks onnext; themainruleset requires onlyGuard main branch source. The pull-request template says to promote after integration checks pass but does not define a promotion-specific readiness record, migration notes, or rollback decision.The current review also found three user-visible compatibility regressions that required focused fixes in
#368,#370, and#372. That is evidence that green syntax and broad integration checks alone are not a sufficient promotion policy.Proposed scope
Define and enforce a small promotion gate specifically for same-repository
nexttomainpull requests. Keep ordinary feature pull requests lightweight and preserve the class-3, Git-consumed publication model.Acceptance criteria
Required validation
nextandmainrulesets so the appropriate validation is required, not merely observed.z-shell/zd#93is complete.Promotion record
nextandmainSHAs, the complete compare URL, required-check results, and unresolved known issues.no migration requiredrationale when applicable.#376.z-shell/zd#94before this large promotion.Rollback readiness
mainSHA so recovery does not depend on creating an extra release tag.main.Tag boundary
#346for publication policy rather than coupling everymainupdate to an automatic tag.Out of scope
mainupdate.next.