1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-25 15:29:32 -05:00
denoland-deno/tools/release/release_doc_template.md
denobot 6369098ad7
chore: forward v1.33.1 release commit to main (#18897)
Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-04-28 21:14:26 +02:00

8.6 KiB

  • Fork this gist and follow the instructions there.

Pre-flight

During this process main branch (or any other branch that you're creating release from) should be frozen and no commits should land until the release is cut.

  • Check https://deno.land/benchmarks?-100 and ensure there's no recent regressions.
  • Write a message in company's #cli channel: :lock: deno and deno_std are now locked (<LINK TO THIS FORKED GIST GOES HERE>)

Patch release preparation

If you are cutting a patch release: First you need to sync commits to the relevant minor branch in the deno repo, so if you are cutting a v1.17.3 release you need to sync v1.17 branch.

To do that, you need to cherry-pick commits from the main branch to the v1.17 branch. For patch releases we want to cherry-pick all commits that do not add features to the CLI. This generally means to filter out feat commits but not necessarily (ex. feat(core): ...). Check what was the last commit on v1.17 branch before the 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.

  • DO NOT create a vx.xx.x-like branch! You are meant to cherry pick to a vx.xx branch. If you have accidentally created a vx.xx.x-like branch then delete it as tagging the CLI will fail otherwise.

  • Unstable feat commits were merged.

  • Internal API commits like feat(core) were merged.

Updating deno_std

  • Go to the "version_bump" workflow in the deno_std repo's actions: https://github.com/denoland/deno_std/actions/workflows/version_bump.yml

    1. Click on the "Run workflow" button.
    2. For the kind of release, select "minor".
    3. Run the workflow.
  • A PR will be automatically created. Follow the checklist in the PR, review it, and merge the PR.

    • DO NOT create a release tag manually. That will automatically happen.
    Failure Steps
    1. Checkout the latest main.
    2. Manually run ./_tools/release/01_bump_version.ts --minor
      1. Ensure the version in version.ts is updated correctly.
      2. Ensure Releases.md is updated correctly.
      3. Ensure all the tests pass with the latest build (examine the repo for what the command is and run the local built deno binary)
    3. Open a PR with the changes and continue with the steps below.
  • Wait for the CI run to complete which will automatically tag the repo and create a draft release.

    • Review the draft release and then publish it.
    Failure Steps
    1. Tag the repo manually in the format x.x.x
    2. Draft a new GH release by copying and pasting the release notes from Releases.md

Updating deno

Phase 1: Bumping versions

  • After releasing deno_std, go to the "version_bump" workflow in the CLI repo's actions: https://github.com/denoland/deno/actions/workflows/version_bump.yml

    1. Click on the "Run workflow" button.
    2. In the drop down, select the minor branch (ex. vx.xx) if doing a patch release or the main branch if doing a minor release.
    3. For the kind of release, select either "patch", "minor", or "major".
    4. Run the workflow.
  • Wait for the workflow to complete and for a pull request to be automatically opened. Review the pull request, make any necessary changes, and merge it.

    • DO NOT create a release tag manually That will automatically happen.
    Failure Steps
    1. Checkout the branch the release is being made on.
    2. Manually run ./tools/release/01_bump_crate_versions.ts
      1. Ensure the crate versions were bumped correctly
      2. Ensure deno_std version was updated correctly in cli/deno_std.rs
      3. Ensure Releases.md was updated correctly
    3. Open a PR with the changes and continue with the steps below.

Phase 2: Publish

Updating deno.land/api & deno.land/std symbols

This should occur after the Deno CLI & std are fully published, as the build script generates the symbols based on the latest tags.

Updating deno_docker

All done!

  • Write a message in company's #cli channel: :unlock: deno and deno_std are now unlocked.