-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Release process
Adi Dahiya edited this page Jan 19, 2021
·
47 revisions
- Ensure all relevant PRs have merged to
develop. - Create release branch based off latest
develop. Use SemVer to come up with the next version number:[major].[minor].[patch](all three numbers are required).git checkout develop git pull git checkout -b release/[version number]
- Update the root
package.jsonversion (match core's next version, or bump a patch version if core wasn't changed). -
Commit the changes.
git commit -a -m "Prepare release v[version number]" - Create a PR. This PR will be very small, maybe only one line.
A useful way to determine exactly what happened in a release is to diff the commits with a recent release tag or use the relevant milestone.
- After creating the PR, write release notes in the PR description.
- Perform a regression pass on the release preview artifacts.
- Push small fixes to the release PR. Larger fixes may warrant their own PRs.
- Merge the release PR.
- Ensure you're on the latest
developbranch (with merged release PR). - Commit & tag version bumps with Lerna:
$ yarn lerna version
- Interactively pick version numbers.
- Look at the histories of the different packages (for example, this GitHub URL shows what changed in the datetime package recently) to help with this.
- Review the commit which Lerna just produced.
- If there are blocking issues, you should delete the commit (
reset HEAD^) and delete any tags that were created.
- If there are blocking issues, you should delete the commit (
- Push to
developwith tags:git push origin develop --follow-tags. - Attach release notes to the new tags which were produced in the Github UI.
- After a successful publish to NPM, run the following on
developto produce a clean build:yarn clean && yarn compile && yarn dist
- Run
yarn siteto copy assets and launch a server for thesite/directory. - Do a spot check on the server to confirm the site is in order.
- Run
yarn deployto push changes to the live site hosted on thegh-pagesbranch.
- Simply run the
lerna publishcommand on thenextbranch instead of ondevelop. The Circle publish script will publish from this branch to the@nextnpm dist-tag. - After successfully publishing to NPM, create a PR to merge
nextback intodevelopto update thepackage.jsonfiles. Then deletenextuntil next time.
The main branch of this repository contains latest code. Making a 1.x or 2.x release is similar to the process above (target release/1.x instead of develop), but the docs deployment part is different:
- Checkout
release/#.xandyarnto re-install depenendencies - Build fresh #.x docs with
yarn clean && yarn compile && yarn dist - Replace
site/docs/versions/#ondevelopwith the contents ofpackages/docs-app/dist- Copy
packages/docs-app/dist/outside of the repo. - Switch to
develop, start a new branch. - Paste the contents of the folder you just copied into
site/docs/versions/#. Replace all existing contents of the folder (there may be old files with md5-hashed names that are now dead code). - 🌟 If you maintain multiple clones of Blueprint (say at 1.x and 3.x) then this is very easy:
rsync --recursive --delete packages/docs-app/dist/ ../blueprint/site/docs/versions/#
- Copy
- Make a PR against
developwith the changes to the static assets you just made.
See other releases for example format. We typically describe changes using the following groups:
- 🔥 BREAKING
- NEW
- Fixed
- Changed
- Deprecated
A 🌟 is used to indicate release highlights: features or fixes of particular note.
- FAQ
- 6.x Changelog
- 5.x Changelog
- 5.0 pre-release changelog
- 4.x Changelog
- v4.0 & v5.0 major version semantic swap
- v6.0 changes
- Spacing System Migration: 10px to 4px
- react-day-picker v8 migration
- HotkeysTarget & useHotkeys migration
- PanelStack2 migration
- Table 6.0 changes