Updated TypeScript's Release Process (markdown)

Daniel Rosenwasser 2021-08-06 14:55:31 -07:00
parent 62104cc2f8
commit 6ba0545f8a

@ -117,7 +117,7 @@ If you're simply consuming TypeScript, it is probably not relevant.
# Release Mechanics
The TypeScript team develops around one central branch: `master`.
The TypeScript team develops around one central branch: `main`.
This branch is used for [nightly builds](https://www.typescriptlang.org/docs/handbook/nightly-builds.html), and is the source of truth.
This central branch is always meant to build cleanly.
@ -139,11 +139,11 @@ The typical release schedule for a version `X.Y` looks like
What does the team have to do to achieve that typical release schedule?
1. Development always just occurs on the `master` branch. This is the default assumption.
1. Development always just occurs on the `main` branch. This is the default assumption.
1. When we need to create the beta build for TypeScript X.Y, we create a branch called `release-X.Y` and bump the version to `X.Y.0-beta`. On npm, this is published with `--tag beta`.
1. Development for TypeScript X.Y **continues on the `master` branch**.
1. When we need to create an RC build for TypeScript X.Y, we merge the `master` branch into `release-X.Y` and bump the version to `X.Y.1-rc`. On npm, this is published with `--tag rc`.
1. After the RC goes out, the assumption is that all work in `master` will go into TypeScript X.(Y + 1). **Any critical changes will need to be cherry-picked to `release-X.Y`**.
1. Development for TypeScript X.Y **continues on the `main` branch**.
1. When we need to create an RC build for TypeScript X.Y, we merge the `main` branch into `release-X.Y` and bump the version to `X.Y.1-rc`. On npm, this is published with `--tag rc`.
1. After the RC goes out, the assumption is that all work in `main` will go into TypeScript X.(Y + 1). **Any critical changes will need to be cherry-picked to `release-X.Y`**.
1. When we need to create a build for the stable release version of TypeScript X.Y, we bump the version to `X.Y.2` (with no pre-release version string or tag). On npm, this is published with `--tag latest`.
## The Comment Command Sequence
@ -158,7 +158,7 @@ The commands roughly occur in the following order:
1. `@typescript-bot sync release-X.Y`
1. Run [Update LKG](https://github.com/microsoft/TypeScript/actions/workflows/update-lkg.yml) on `release-X.Y`.
1. Readying the RC
1. `@typescript-bot sync release-X.Y` (sync `master` to `release-X.Y`)
1. `@typescript-bot sync release-X.Y` (sync `main` to `release-X.Y`)
1. `@typescript-bot bump release-X.Y` (update the version number)
1. In the event that changes need to come in after:
1. `@typescript-bot sync release-X.Y`