Back to Deno

Release Doc Template

tools/release/release_doc_template.md

2.7.145.5 KB
Original Source
  • Fork this gist and follow the instructions there.

Pre-flight

During this process $BRANCH_NAME branch should be frozen and no commits should land until the release is finished.

:lock:

@here

Deno v$VERSION is now getting released.

`denoland/deno` is now locked.

*DO NOT LAND ANY PRs*

Release checklist: <LINK TO THIS FORKED GIST GOES HERE>

Updating deno

Phase 1: Bumping versions

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

    1. Click on the "Run workflow" button.
    2. In the drop down, select the main branch.
    3. For the kind of release, select either patch or minor.
    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.
    <details> <summary>Failure Steps</summary>
    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 Releases.md was updated correctly
    3. Open a PR with the changes and continue with the steps below.
    </details>

Phase 2: Publish

  • Go to the "cargo_publish" workflow in the CLI repo's actions: https://github.com/denoland/deno/actions/workflows/cargo_publish.generated.yml

    1. Run it on the same branch that you used before and wait for it to complete.
    <details> <summary>Failure Steps</summary>
    1. The workflow was designed to be restartable. Try restarting it.
    2. If that doesn't work, then do the following:
      1. Checkout the v$MINOR_VERSION branch.
      2. If cargo publish hasn't completed then run ./tools/release/03_publish_crates.ts
        • Note that you will need access to crates.io so it might fail.
      3. If cargo publish succeeded and a release tag wasn't created, then manually create and push the v$VERSION tag on the v$MINOR_VERSION branch.
    </details>
  • This CI run create a tag which triggers a second CI run that publishes the GitHub draft release.

    The CI pipeline will create a release draft on GitHub (https://github.com/denoland/deno/releases).

  • ⛔ Verify that:

  • Publish the release on Github

Update https://deno.com

Update https://docs.deno.com

Updating deno_docker

Updating deno_pypi

Update MDN

  • If a new JavaScript or Web API has been added or enabled, make sure https://github.com/mdn/browser-compat-data has been updated to reflect API changes in this release. If in doubt message @bartlomieju and skip this step.

Add deno upgrade banner

All done!

  • Write a message in company's #cli channel:
:unlock:

@here

`denoland/deno` is now unlocked.

*You can land PRs now*

Deno v$VERSION has been released.

Downgrading

In case something went wrong:

  1. Update https://dl.deno.land/release-latest.txt to the previous release.
  2. Revert the PR to the dotcom repo in order to prevent the setup-deno GH action from pulling it in.