diff options
author | David Sherret <dsherret@users.noreply.github.com> | 2022-03-08 18:10:03 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-08 18:10:03 -0500 |
commit | a3d6be025c14174ce6e270a3004b9892d5aae071 (patch) | |
tree | 86b083148ce7646dfea4a4dd395240f29faa2e69 /tools/cut_a_release.md | |
parent | 32ef9bfa47f8e8f838c02ddda376bea134b140eb (diff) |
chore: reduce release PRs from 2 to 1 (#13878)
Diffstat (limited to 'tools/cut_a_release.md')
-rw-r--r-- | tools/cut_a_release.md | 73 |
1 files changed, 24 insertions, 49 deletions
diff --git a/tools/cut_a_release.md b/tools/cut_a_release.md index ca6cb9ff3..aa5e0eb47 100644 --- a/tools/cut_a_release.md +++ b/tools/cut_a_release.md @@ -64,65 +64,40 @@ previous release and start cherry-picking newer commits from the `main`. Once all relevant commits are cherry-picked, push the branch to the upstream and verify on GitHub that everything looks correct. -1. Checkout a branch for releasing crate dependencies (e.g. `deps_#.#.#`). - -2. Run `./tools/release/01_bump_dependency_crate_versions.ts` to increase the - minor versions of all crates in the `bench_util`, `core`, `ext`, and - `runtime` directories. - -3. Commit these changes with a commit message like - `chore: bump crate version for #.#.#` and create a PR for this change. **If - you are cutting a patch release**: make sure to target `v1.XX` branch instead - of `main` in your PR. - -4. Make sure CI pipeline passes (DO NOT merge yet). - -5. Run `./tools/release/02_publish_dependency_crates.ts` to publish these bumped - crates to `crates.io` - - **Make sure that `cargo` is logged on with a user that has permissions to - publish those crates.** - - If there are any problems when you publish, that require you to change the - code, then after applying the fixes they should be committed and pushed to - the PR. - -6. Once all crates are published merge the PR. - -7. Update your local branch (`v1.XX` for patch or `main` for minor) and checkout +1. Update your local branch (`v1.XX` for patch or `main` for minor) and checkout another branch (e.g. `release_#.#.#`). -8. Run `./tools/release/03_bump_cli_version.ts` to bump the CLI version. - -9. If you are doing a patch release, answer `y` to the _Increment patch?_ - prompt. +2. Run `./tools/release/01_bump_crate_versions.ts` to increase the versions of + all crates including the CLI. If you are doing a CLI patch release, answer + `y` to the _Increment patch?_ prompt. -10. The above command will update the `Releases.md` file. Review it and ensure - its output is correct. **If you are cutting a minor release**: make sure - that there are no duplicate entries in previous releases; most often commits - with `fix` prefix would have been included in patch releases. +3. The above command will update the `Releases.md` file. Review it and ensure + its output is correct. **If you are cutting a minor release**: make sure that + there are no duplicate entries in previous releases; most often commits with + `fix` prefix would have been included in patch releases. -11. Update link in `cli/compat/mod.rs` with the released version of `deno_std` - and do a search through the tests to find std urls that need to be updated. +4. Update link in `cli/compat/mod.rs` with the released version of `deno_std` + and do a search through the tests to find std urls that need to be updated. -12. Create a PR for these changes. **If you are cutting a patch release**: make - sure to target `v1.XX` branch instead of `main` in your PR. +5. Create a PR for these changes. **If you are cutting a patch release**: make + sure to target `v1.XX` branch instead of `main` in your PR. -13. Make sure CI pipeline passes. +6. Make sure CI pipeline passes (DO NOT merge yet). -14. Publish `cli` crate to `crates.io`: `cd cli && cargo publish` +7. Publish the crates to `crates.io` by running + `./tools/release/02_publish_crates.ts` -15. Merge the PR. +8. Merge the PR. -16. Create a tag with the version number (with `v` prefix). +9. Create a tag with the version number (with `v` prefix). -17. Wait for CI pipeline on the created tag branch to pass. +10. Wait for CI pipeline on the created tag branch to pass. The CI pipeline will create a release draft on GitHub (https://github.com/denoland/deno/releases). Update the draft with the contents of `Releases.md` that you previously added. -18. Upload Apple M1 build (`deno-aarch64-apple-darwin.zip`) to the release draft +11. Upload Apple M1 build (`deno-aarch64-apple-darwin.zip`) to the release draft and to https://console.cloud.google.com/storage/browser/dl.deno.land ``` @@ -131,20 +106,20 @@ verify on GitHub that everything looks correct. zip -r deno-aarch64-apple-darwin.zip deno ``` -19. Publish the release on Github +12. Publish the release on Github -20. Update the Deno version on the website by updating +13. Update the Deno version on the website by updating https://github.com/denoland/dotland/blob/main/versions.json. -21. Push a new tag to [`manual`](https://github.com/denoland/manual). The tag +14. Push a new tag to [`manual`](https://github.com/denoland/manual). The tag must match the CLI tag; you don't need to create dedicated commit for that purpose, it's enough to tag the latest commit in that repo. -22. For minor releases: make sure https://github.com/mdn/browser-compat-data has +15. For minor releases: make sure https://github.com/mdn/browser-compat-data has been updated to reflect Web API changes in this release. Usually done ahead of time by @lucacasonato. -23. **If you are cutting a patch release**: open a PR that forwards all commits +16. **If you are cutting a patch release**: open a PR that forwards all commits created in the release process to the `main` branch. ## Updating `doc.deno.land` |