-
Notifications
You must be signed in to change notification settings - Fork 1k
Tracking: Introduce proper trunk/backport workflow #4738
Description
For now every rustup release is directly merged onto trunk and thus we might want to block patch releases from happening once a major/breaking change has landed (or vice versa). This is not very practical.
To keep and even further increase the bandwidth and momentum, an important change we would need to make to the current workflow would be to allow people from both inside and outside of the project to contribute whenever they want, and for the changes to land in the right release in a more flexible timeframe, so that we can introduce major changes even when we are waiting for patch releases. Thus the desire for a backport branch that collects all the bugfixes in this minor cycle, with proper CI and even CD (when the new release process is ready), from which we will force-push our stables.
Surely this needs more bandwidth, so it will probably not happen immediately, but I can see that this might be an important step in ensuring the project's long term health.
Tasks
- Merge the initial PR: ci(backport): add support for backporting #4774
- Verify this change with the dummy PR: ci(backport): test workflow #4792
- Test this change thoroughly with more dummy PRs, even merging some of them to make sure everything is good:
- In both the CI files and git itself, rename
backport/*torelease/*as suggested: - The
conclusionjob is identical to themainone. - Other pre-enqueue jobs are identical to the
mainones. -
The in-queue jobs are identical to themainones. - The after-merge jobs are identical to the
mainones modulo the deployment.- The deployment to GitHub Actions is kept.
- All other deployments should not trigger.
- In both the CI files and git itself, rename
- Enable the manual triggering of
schedule-level CI. - Delete the
release/1.29-dummybranch and create therelease/1.29branch. -
Inform the infra team to enable merge queue and add branch protection rules (notably the force-push ban) forTechnically impossible due to GitHub restrictions (Add branch protection and merge queue for rustup release branch team#2372 (comment)).release/*branches. - Update the dev guide to reflect the new workflow, including the manual triggering of CI, changed branching rules, changed
stablestatus (can be force pushed instead of fast-forwarded), etc.