-
Notifications
You must be signed in to change notification settings - Fork 580
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(scripts): implement mainline and stable release channels #13048
chore(scripts): implement mainline and stable release channels #13048
Conversation
a18ada0
to
4e05413
Compare
4e05413
to
a12cac4
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks really solid @mafredri! Also checked and there are no shellcheck violations 👌
Left a couple small stability comments & 1 question
# Create humanized titles where possible, examples: | ||
# | ||
# "feat: add foo" -> "Add foo". | ||
# "feat(site): add bar" -> "Dashboard: Add bar". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need to do this? Keeping the category & subsection is probably useful.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can take a look at the latest changelogs over at https://github.com/coder/coder/releases. The goal here was mainly reduce the burden of creating new releases by automating some of the transformations.
I think @stirby may be better equipped to address the why here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
I'm sure that sooner or later this will break.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If it breaks it's left as-is (original title), fwiw.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ben and I manually add these prefixes already, as seen in the Bug fixes in v2.10.0. IMO, these tags help with skimming the changelog. The automation removes a huge chunk of the tedious work in making the release.
We'll still have the chance to edit the changelog and, as Mathias mentioned, we'll catch where it breaks.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First round done 👍
# Create humanized titles where possible, examples: | ||
# | ||
# "feat: add foo" -> "Add foo". | ||
# "feat(site): add bar" -> "Dashboard: Add bar". |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
I'm sure that sooner or later this will break.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let's watch it in the wild 👍
Related: #12458 |
This PR modifies the release scripts to add support for
--stable
and--mainline
releases.Fixes #12458
It also formalizes the release process.
release/2.10
(I'd prefer using the v-prefix here but I followed the existing convention)release/2.10
branch to enforce consistencyrelease/2.10
) will be fast-forwarded to the commit we want to releasev2.11.0
) will not trigger a release (build/publish)scripts/release.sh
should be used, in which case it will ask to start a release (build/publish) for youv2.10.2
)scripts/release/check_commit_metadata.sh
)Running pre-release hooks will be part of an upcoming PR, there we will add sanity checks for patch-releases with migrations.
Here are two examples of running the release script:
Patch release on current `main` (not possible)
Minor release of current `main`