deno.land / x / deno@v1.28.2 / tools / release / release_doc_template.md
denoland/deno
,
denoland/deno_std
,
denoland/dotland
,
denoland/deno_docker
denoland/manual
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.
🔒 deno and deno_std are now locked (<LINK TO THIS FORKED GIST GOES HERE>)
If you are cutting a patch release: First you need to sync commit 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.
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
A PR will be automatically created. Follow the checklist in the PR, review it, and merge the PR.
./_tools/release/01_bump_version.ts --minor
version.ts
is updated correctly.Releases.md
is updated correctly.Wait for the CI run to complete which will automatically tag the repo and create a draft release.
x.x.x
Releases.md
deno
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
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.
./tools/release/01_bump_crate_versions.ts
cli/deno_std.rs
Releases.md
was updated correctlyGo to the "cargo_publish" workflow in the CLI repo's actions: https://github.com/denoland/deno/actions/workflows/cargo_publish.yml
cargo publish
hasn't completed then run
./tools/release/03_publish_crates.ts
cargo publish
succeeded and a release tag wasn't created, then
manually create and push one for the release branch with a leading v
.
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). Update the draft with the
contents of Releases.md
that you previously added.
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
cargo build --release
cd target/release
zip -r deno-aarch64-apple-darwin.zip deno
⛔ Verify that:
deno -V
(ask someone with an M1 Mac to verify this if you don't have
one).Publish the release on Github
Run the https://github.com/denoland/dotland/actions/workflows/update_versions.yml workflow.
Push a new tag to 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.
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.
If you are cutting a patch release: a PR should have been automatically opened that forwards the release commit back to main. If so, merge it. If not and it failed, please manually create one.
deno.land/api
& deno.land/std
symbolsThis should occur after the Deno CLI & std are fully published, as the build script generates the symbols based on the latest tags.
deno/apliland_scripts
.deno task release
.deno_docker
deno_docker
repo that bumps the Deno version in all
Dockerfiles, the README and the example Dockerfile. Get it reviewed and
merge it.v
prefix).🔓 deno and deno_std are now unlocked
.Version Info