-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Release process
-
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 master git pull git checkout -b release/[version number] -
Compile the monorepo with
yarn compile. -
Compile the publishable distributions and copy over artifacts to the (git-ignored)
docs/folder withyarn dist. -
Update the root
package.jsonversion (match core's version, or bump a patch version if core wasn't changed). -
Review and commit the changes.
git commit -a -m "Prepare release v[version number]"
- Create a PR on GitHub. Write the release notes in the description.
- Perform regression pass on the release preview artifacts.
- Merge the release PR.
- With the latest docs built locally (
yarn dist), runyarn deployto push changes to the live site hosted on themasterbranch.
The main branch of this repository contains 2.x code. Making a 1.x release is similar to the process above (target release/1.x instead of develop), but the docs deployment part is different:
- Build the 1.x docs with
yarn distonrelease/1.x.- Make sure you have the right
node_modulesand have runyarn cleanat the root to avoid picking up any 2.x built assets).
- Make sure you have the right
- Copy the git-ignored
docs/docs/(note the nested folder path!) folder outside the repo. - Switch to
develop, start a new branch. - Paste the contents of the folder you just copied into
docs-static/docs/v1/. Replace all existing contents of the folder (there will be old files with md5-hashed names that are now dead code). - 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.
A useful way to determine exactly what happened in a release is to diff the commits with the previous version or use the relevant milestone.
- Run
lerna publish --skip-npm --scope '@blueprintjs/{core,datetime,labs,table}'(or some appropriate subset of the packages). - Interactively pick version numbers.
- Review the commit which Lerna just produced.
- Manually audit the dependencies between packages. This is an important step as not all packages need to depend on the latest version of the core package.
⚠️ Lerna updates transitive package dependencies, so you'll need to revert those changes (unlessdatetimedoes actually require the latest version ofcore, for instance).
- Push to master with tags:
git push origin master --follow-tags. - Attach release notes to the new tags which were produced in the Github UI.
- 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