Changes URL of GH release - the one used previously doesn't work correctly, since GH uses something like `<org>/<repo>/releases/tag/untagged-<hash>` for draft releases. AFAICT it's too cumbersome to figure this hash programatically.
4.4 KiB
- 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.
- Ensure forks and local clones of:
- Check https://deno.land/benchmarks?-100 and ensure there's no recent regressions.
- Write a message in company's
#clichannel:
: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.yml
- Click on the "Run workflow" button.
- In the drop down, select the
mainbranch. - For the kind of release, select either
patchorminor. - 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
- Checkout the branch the release is being made on.
- Manually run
./tools/release/01_bump_crate_versions.ts- Ensure the crate versions were bumped correctly
- Ensure
Releases.mdwas updated correctly
- Open a PR with the changes and continue with the steps below.
Phase 2: Publish
-
Go to the "cargo_publish" workflow in the CLI repo's actions: https://github.com/denoland/deno/actions/workflows/cargo_publish.yml
- Run it on the same branch that you used before and wait for it to complete.
Failure Steps
- The workflow was designed to be restartable. Try restarting it.
- If that doesn't work, then do the following:
- Checkout the
v$MINOR_VERSIONbranch. - If
cargo publishhasn't completed then run./tools/release/03_publish_crates.ts- Note that you will need access to crates.io so it might fail.
- If
cargo publishsucceeded and a release tag wasn't created, then manually create and push thev$VERSIONtag on thev$MINOR_VERSIONbranch.
- Checkout the
-
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:
- There are 24 assets on the v$VERSION GitHub release draft.
- There are 25 zip files for this version on dl.deno.land.
-
Publish the release on Github
Update https://deno.com
- Run
https://github.com/denoland/dotcom/actions/workflows/update_version.yml to
automatically open a PR.
- Merge the PR.
Update https://docs.deno.com
- Run
https://github.com/denoland/deno-docs/actions/workflows/update_versions.yml
to automatically open a PR.
- Merge the PR.
Updating deno_docker
- Run the version bump workflow: https://github.com/denoland/deno_docker/actions/workflows/version_bump.yml
- This will open a PR. Review and merge it.
- Create a
$VERSIONtag (withoutvprefix).
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.
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:
- Update https://dl.deno.land/release-latest.txt to the previous release.
- Revert the PR to the dotcom repo in
order to prevent the
setup-denoGH action from pulling it in.