Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

chore(scripts): implement mainline and stable release channels#13048

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation

mafredri
Copy link
Member

@mafredrimafredri commentedApr 23, 2024
edited
Loading

This PR modifies the release scripts to add support for--stable and--mainline releases.

Fixes#12458

It also formalizes the release process.

  • Creating a new minor (or major) release starts a new release branch:release/2.10 (I'd prefer using the v-prefix here but I followed the existing convention)
  • Creating a patch release (v2.10.1) must be applied to therelease/2.10 branch to enforce consistency
  • If possible, the release branch (e.g.release/2.10) will be fast-forwarded to the commit we want to release
  • If fast-forward is impossible, only new commits/cherry picks can be used in patch releases
  • Pushing a new version tag (v2.11.0) willnot trigger a release (build/publish)
  • Thescripts/release.sh should be used, in which case it will ask to start a release (build/publish) for you
  • When cutting a new minor release, the autogenerated changelog will exclude commits cherry-picked into a patch release (e.g.v2.10.2)
  • The release script will attempt to humanize the changelog for maintainer convenience (defined inscripts/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)
./scripts/release.sh --ignore-script-out-of-date --ref main --mainline --dry-runWorking directory is not clean, it is highly recommended to stash changes.Stash changes? (y/n) nChecking remote origin for repo...Fetching main and tags from origin...Checking GitHub for latest release(s)...Latest mainline release: v2.10.2Latest stable release: v2.9.4Checking commit metadata for changes between v2.10.2 and 81fcdf717...Skipping commit 8d1220e0c814e709363cc22951f1b0238a4c1594 cherry-picked into v2.10.2 as 2a98123701655dadc659b84ac463b3b77b0172c0 (chore: add generate script for azure instance identity (#13028))Skipping commit d426569d4a1bb40042af52244768848c56af5aac cherry-picked into v2.10.2 as bda13a2818b71cd104db2afd0e21a56acdd46f9d (fix: make terminal raw in ssh command on windows (#12990))Skipping commit a231b5aef503ada90e37bd755a9574b858d8d60e cherry-picked into v2.10.2 as 353888a5d8fd971c2ed7e68260199eadadc60aa9 (feat: add src_id and dst_id indexes to tailnet_tunnels (#12911))Skipping commit 06eae954c978db7767d984348f3d471f64858b19 cherry-picked into v2.10.2 as 3fc6111994b5e129afee416f002ae4f9710915ac (fix: stop sending DeleteTailnetPeer when coordinator is unhealthy (#12925))Skipping commit a2b28f80d7a14e1a42af2f6527aedfce757727b1 cherry-picked into v2.10.2 as 3eb9abcbd3305cc2823a0493d889e031a850b563 (fix(coderd): prevent agent reverse proxy from using `HTTP[S]_PROXY` envs (#12875))Executing DRYRUN of release tagging...No breaking changes detected, using "patch" increment.ERROR: Provided ref (81fcdf717) is not in the required release branch (release/2.10) and cannot be fast-forwarded, unable to increment patch version. Please increment minor or major.
Minor release of current `main`
./scripts/release.sh --ignore-script-out-of-date --ref main --mainline --minor --dry-runWorking directory is not clean, it is highly recommended to stash changes.Stash changes? (y/n) nChecking remote origin for repo...Fetching main and tags from origin...Checking GitHub for latest release(s)...Latest mainline release: v2.10.2Latest stable release: v2.9.4Checking commit metadata for changes between v2.10.2 and 81fcdf717...Skipping commit 8d1220e0c814e709363cc22951f1b0238a4c1594 cherry-picked into v2.10.2 as 2a98123701655dadc659b84ac463b3b77b0172c0 (chore: add generate script for azure instance identity (#13028))Skipping commit d426569d4a1bb40042af52244768848c56af5aac cherry-picked into v2.10.2 as bda13a2818b71cd104db2afd0e21a56acdd46f9d (fix: make terminal raw in ssh command on windows (#12990))Skipping commit a231b5aef503ada90e37bd755a9574b858d8d60e cherry-picked into v2.10.2 as 353888a5d8fd971c2ed7e68260199eadadc60aa9 (feat: add src_id and dst_id indexes to tailnet_tunnels (#12911))Skipping commit 06eae954c978db7767d984348f3d471f64858b19 cherry-picked into v2.10.2 as 3fc6111994b5e129afee416f002ae4f9710915ac (fix: stop sending DeleteTailnetPeer when coordinator is unhealthy (#12925))Skipping commit a2b28f80d7a14e1a42af2f6527aedfce757727b1 cherry-picked into v2.10.2 as 3eb9abcbd3305cc2823a0493d889e031a850b563 (fix(coderd): prevent agent reverse proxy from using `HTTP[S]_PROXY` envs (#12875))Executing DRYRUN of release tagging...No breaking changes detected, using "minor" increment.Old version: v2.10.2New version: v2.11.0Release branch: release/2.11Creating new release branchDRYRUN: git checkout -b release/2.11 81fcdf717DRYRUN: git tag -a v2.11.0 -m Release v2.11.0 81fcdf717Continue? (y/n) yWriting release notes to build/RELEASE-v2.11.0-DRYRUN.mdRelease notes written to build/RELEASE-v2.11.0-DRYRUN.md, you can now edit this file manually.No editor found, please set the $EDITOR environment variable for edit prompt.Preview release notes? (y/n) y## Changelog>[!NOTE]>This is a mainline Coder release. We advise enterprise customers without a staging environment to install our [latest stable release](https://github.com/coder/coder/releases/latest)while we refine this version. Learn more about our [Release Schedule](https://coder.com/docs/v2/latest/install/releases).### Features- CLI: Support bundle: dump healthcheck summary (#12963, 407e61ecd) (@johnstcn)- CLI: Support bundle: show links to docs/admin/healthcheck (#12974, 8e1e0f04a) (@johnstcn)- CLI: Add `--env` flag for `coder ssh` (#12991, 8a1216254) (@aaronlehmann)- Database: Keep only 1 day of `workspace_agent_stats` after rollup (#12674, e17e8aa3c) (@mafredri)- Server: Improve detection of STUN issues (#12951, 9a4703a31) (@johnstcn)- Enterprise: Add ready for handshake support to pgcoord (#12935, 777dfbe96) (@coadler)- Add owner groups to workspace data (#12841, f96ce80ab) (@f0ssel)- Remove health link from deployment sidebar (#12914, 08451ce80) (@mtojek)- Add s suffix to use HTTPS for ports (#12862, 1d4bf30c0) (@f0ssel)- Link with protocol on shared ports (#12908, acaa25409) (@f0ssel)- Add agent acks to in-memory coordinator (#12786, e801e878b) (@coadler)- Add listening ports protocol selector (#12915, 3ab5a51ec) (@f0ssel)- Add warning about use of old/removed/invalid experiments (#12962, b85d5d849) (@dannykopping)### Bug fixes- CLI: Allow generating partial support bundles with no workspace or agent (#12933, fad97a14f) (@johnstcn)- Server: Properly calculate query latency for tailnet queries (#12944, 231fc26c9) (@coadler)- Database: Reduce db load via dbpurge advisory locking (#13021, 3adcccb61) (@mafredri)- Server: Avoid logging error for no rows (#12988, 92190443f) (@mafredri)- Examples: Copy /etc/skel on init in docker template (#12913, 0178bfe13) (@mafredri)- Installer: Use `--version` when provided (#12873, 61e5721ca) (@michaelbrewer)- Installer: Change post-install advisory when installing specific version (#12878, c243210ae) (@mafredri)- Installer: Remove extracted files after installation (#12879, b06452ee8) (@mafredri)- Support: Correctly rename existing agent connection info, add real netcheck (#12946, b163bc7f0) (@johnstcn)- Fix race in assertWorkspaceLastUsedAtUpdated (#12899, 3b7380fa0) (@spikecurtis)- Update typo in audit log field (#12907, d82f2fd41) (@coryb)- Stop logging session shutdown as warning (#12922, 546901101) (@spikecurtis)- Ignore gomock temporary files (#12924, b6359b0a8) (@mtojek)- Show template autostop setting when it overrides the workspace setting (#12910, 2ad7fcc0b) (@aslilac)- Use provided username when fetching workspaces (#12955, d3790bb5b) (@kylecarbs)- Disable azureidentity test on darwin (#12979, 942e90270) (@coadler)- Add grace period before showing replicas license error (#12989, 227e63205) (@kylecarbs)### Documentation- Describe multi-cloud architecture (#12857, 90efa1b84) (@mtojek)- Describe devcontainers as deployment model (#12877, 7c0fac990) (@mtojek)- Describe air-gapped architecture (#12897, 28754a79e) (@mtojek)- Explain that mainline stays around for one month now (#12993, f5a32b3f2) (@bpmct)### Code refactoring- Dashboard: Verify deployment config flags in e2e tests (#12986, ee7dda811) (@mtojek)### Tests- Dashboard: Fix flaky outdated agent test (#12927, e266ecf91) (@mtojek)- Dashboard: Add e2e tests for experiments (#12940, dcf1d3a9a) (@mtojek)- Dashboard: Add e2e tests for appearance (#12950, cf2d2a98b) (@mtojek)- Dashboard: Add e2e tests for security (#12961, 49689162b) (@mtojek)- Dashboard: Add e2e tests for user auth (#12971, b598aef54) (@mtojek)- Dashboard: Add e2e tests for network (#12987, cb8c576c9) (@mtojek)- Dashboard: Add e2e tests for observability (75223dfd8) (@mtojek)- Dashboard: Add e2e tests for workspace proxies (#13009, 3d7740bd3) (@mtojek)- Verify that enterprise tests are being run (#12871, c4b26f335) (@aslilac)- Verify actually uploaded license with assert (#12934, 8da8b89af) (@Emyrk)- Fix url checks in e2e tests (#12881, c5367c201) (@aslilac)- Add an e2e audit logs test (#12868, 00fcf3699) (@aslilac)### Continuous integration- Disable enterprise e2e tests temporarily (#12874, bc9ea61eb) (@aslilac)- Execute enterprise and non-enterprise e2e tests concurrently (#12872, 9cf235811) (@aslilac)- Bump crate-ci/typos from 1.19.0 to 1.20.9 in the github-actions group (#13027, 3af317317) (@app/dependabot)### Chores- Documentation: Add support bundle guide (#12931, b71af3211) (@johnstcn)- Documentation: Make external auth docs easier to follow (#12970, b40f54f60) (@doodzik)- Dashboard: Add e2e to test add and remove user (#12851, 41b8ff3e8) (@BrunoQuaresma)- Dashboard: Add e2e tests for groups (#12866, 3fbcdb0dd) (@BrunoQuaresma)- Bump golang.org/x/term from 0.18.0 to 0.19.0 (#12886, 24135a2d0) (@app/dependabot)- Bump github.com/elastic/go-sysinfo from 1.13.1 to 1.14.0 (#12894, 8ba8ec2f1) (@app/dependabot)- Bump golang.org/x/sync from 0.6.0 to 0.7.0 (#12895, f99fd807b) (@app/dependabot)- Bump golang.org/x/net from 0.22.0 to 0.24.0 (#12888, 9a7d8034c) (@app/dependabot)- Bump golang.org/x/tools from 0.19.0 to 0.20.0 (#12890, 589434e8d) (@app/dependabot)- Bump google.golang.org/grpc from 1.62.1 to 1.63.0 (#12892, 11123018a) (@app/dependabot)- Bump golang.org/x/oauth2 from 0.18.0 to 0.19.0 (#12893, 7179c86df) (@app/dependabot)- Deprecate agent report-stats endpoint (#12880, 189b8626d) (@Emyrk)- Remove InsertWorkspaceAgentStat query  (#12869, 0a8c8ce5c) (@Emyrk)- Add date information to windows startup logs (#12905, 4dc293d93) (@Emyrk)- Merge apikey/token session config values (#12817, 838e8df5b) (@Emyrk)- Disable pgcoord (HA) when --in-memory (#12919, a607d5610) (@Emyrk)- Add unit test for pass through external auth query params (#12928, 566f8f231) (@Emyrk)- Nix shell to support playwright e2e tests (#12917, 7fd9a75ad) (@Emyrk)- Deconflict e2e enterprise and AGPL artifacts in ci (#12941, b9936a467) (@Emyrk)- Add -agpl to agpl e2e artifacts (#12943, 22785a307) (@Emyrk)- Skip global.setup if first user already exists (#12930, 93b46fe1f) (@Emyrk)- Update generated array type definitions in TypeScript to be readonly (#12947, d9da054c9) (@Emyrk)- Fix broken links in the jfrog guide (#12835, c13909a1a) (@stirby)- Add `created_at` to workspace resource telemetry (#12969, 41ca6e4f7) (@kylecarbs)- Apply shellcheck recommendation which was causing "make lint" to fail locally (#12972, 06e042acf) (@dannykopping)- Fix linting issue (#12945, ba52a4fbe) (@coadler)- Add license review to CI (#12981, 80f597812) (@sreya)- Bump github.com/moby/moby (#12960, 3338cdca7) (@app/dependabot)- Give additional time in tests for `tailnetAPIConnector` graceful disconnect (#12980, 6b4eb0319) (@coadler)- Add e2e test against an external auth provider during workspace creation (#12985, 319fd5bf1) (@dannykopping)- Fix down migration 196 (#13006, 3aa0d7381) (@coadler)- Fix 404 for managed terraform variables (#13018, 4a6693a17) (@michaelbrewer)- Fix link to install (#13019, d2acb6776) (@michaelbrewer)- Bump google.golang.org/api from 0.172.0 to 0.175.0 (#13026, ea472c538) (@app/dependabot)- Bump github.com/coder/terraform-provider-coder (#13022, 2e49fa94d) (@app/dependabot)- Fix broken mainline link (#13015, 7bd1b3bdb) (@michaelbrewer)- Reduce dashboard requests from seeded data (#13034, d3f3ace22) (@kylecarbs)- Change `site_configs.value` to `text` (#13036, fab5591cf) (@aslilac)- Bump github.com/gohugoio/hugo from 0.124.0 to 0.125.2 (#13024, 81fcdf717) (@app/dependabot)### Other changes- added releases.md to manifest (#12936, ab116af54) (@stirby)- e2e tests for deployment/licenses (#12926, 2f2a395ba) (@mtojek)- Skip dependency license review on main (#12982, 0c993566d) (@sreya)- label some template settings as enterprise (#12952, 7cf8577f1) (@aslilac)Compare: [`v2.10.2...v2.11.0`](https://github.com/coder/coder/compare/v2.10.2...v2.11.0)## Container image- `docker pull ghcr.io/coder/coder:v2.11.0`## Install/upgradeRefer to our docs to [install](https://coder.com/docs/v2/latest/install) or [upgrade](https://coder.com/docs/v2/latest/admin/upgrade) Coder, or use a release asset below.Create, build and publish release? (y/n) yDRYRUN: execrelative ./release/tag_version.sh --old-version v2.10.2 --ref 81fcdf717 --minorDRYRUN: git push -u origin release/2.11DRYRUN: git push --tags -u origin v2.11.0Release tags for v2.11.0 created successfully and pushed to origin!Writing release JSON to /var/folders/xb/7t2r1stn5lj9z5mxstz6vymc0000gn/T/coder-release.json.WbcmOVOenQRunning release workflow...DRYRUN: cat /var/folders/xb/7t2r1stn5lj9z5mxstz6vymc0000gn/T/coder-release.json.WbcmOVOenQDRYRUN: gh workflow run release.yaml --json --ref v2.11.0Release workflow started successfully!

matifali reacted with heart emoji
@mafredrimafredriforce-pushed themafredri/feat-scripts-implement-mainline-and-stable-releases branch 2 times, most recently froma18ada0 to4e05413CompareApril 23, 2024 12:47
@mafredrimafredriforce-pushed themafredri/feat-scripts-implement-mainline-and-stable-releases branch from4e05413 toa12cac4CompareApril 23, 2024 12:58
@mafredrimafredri marked this pull request as ready for reviewApril 23, 2024 13:17
Copy link
Contributor

@dannykoppingdannykopping left a 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".
Copy link
Contributor

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.

Copy link
MemberAuthor

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 athttps://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 thewhy here?

dannykopping reacted with thumbs up emoji
Copy link
Member

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.

Copy link
MemberAuthor

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.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others.Learn more.

@mtojek@dannykopping

Ben and I manually add these prefixes already, as seen in the Bug fixes inv2.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.

Copy link
Member

@mtojekmtojek left a 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".
Copy link
Member

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.

Copy link
Member

@mtojekmtojek left a 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 👍

@mtojek
Copy link
Member

Related:#12458

@mafredrimafredri requested a review fromstirbyApril 23, 2024 18:22
@mafredrimafredri changed the titlefeat(scripts): implement mainline and stable release channelschore(scripts): implement mainline and stable release channelsApr 24, 2024
@mafredrimafredrienabled auto-merge (squash)April 24, 2024 19:41
@mafredrimafredri merged commitb82a782 intomainApr 24, 2024
@mafredrimafredri deleted the mafredri/feat-scripts-implement-mainline-and-stable-releases branchApril 24, 2024 19:43
@github-actionsgithub-actionsbot locked and limited conversation to collaboratorsApr 24, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@dannykoppingdannykoppingdannykopping left review comments

@mtojekmtojekmtojek approved these changes

@stirbystirbyAwaiting requested review from stirby

Assignees

@mafredrimafredri

Labels
None yet
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

Stable Releases: Modify release script to distinguish mainline and stable
4 participants
@mafredri@mtojek@dannykopping@stirby

[8]ページ先頭

©2009-2025 Movatter.jp