-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Release process
Gilad Gray edited this page May 9, 2018
·
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). - Run
$(npm bin)/lerna publish --skip-npm --scope '@blueprintjs/{pkgs,to,publish}', fill out the glob as necessary. - Interactively pick version numbers.
- 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 publishing to NPM, run
yarn compileandyarn distondevelop. - Run a local web server from the root of the
docs/folder and do a quick spot check to make sure the static assets got built correctly with the updated release versions. - Run
yarn deployto push changes to the live site hosted on themasterbranch.
Simply run the lerna publish command on the next branch instead of on develop. The Circle publish script will detect the next branch publish to the @next npm dist-tag.
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:
- In the following steps, replace
1.xwith the appropriate major version - Checkout
release/1.xandyarnto re-install depenendencies - Build fresh 1.x docs with
yarn clean && yarn compile && yarn dist - 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.
- 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