Closed
Description
Ensure all commits in master were tested at Facebook.
- Check that they were a part of the latest internal sync.
- For stable releases, prefer that they’ve been landed for a week or so.
- Only skip this step if you really know what you’re doing!
Verify that you have npm permissions.
- You’re in
npm owner ls react
- You’re in
npm owner ls react-art
- You’re in
npm owner ls react-dom
- You’re in
npm owner ls react-test-renderer
- If not, ping someone on the team!
Ensure your React is fresh.
- Ensure you’re on
master
- Do a
git pull
- Is master green on CI? Check the most recent commits.
- Check that your local
git log
output matches the commit list. - Run
yarn
in the repo root.
Ensure runtime dependencies match what users would get.
-
For
fbjs
:- Look at the version range of
fbjs
in rootpackage.json
. - Ensure all
packages/*/package.json
depending onfbjs
specify the same range. - Run
yarn upgrade fbjs@^THAT_VERSION
in the repo root. (Don’t miss the caret!)
- Look at the version range of
-
For
object-assign
:- Look at the version range of
object-assign
in rootpackage.json
. - Ensure all
packages/*/package.json
depending onobject-assign
specify the same range. - Run
yarn upgrade object-assign@^THAT_VERSION
in the repo root. (Don’t miss the caret!)
- Look at the version range of
-
For
prop-types
:- Look at the version range of
prop-types
in rootpackage.json
. - Ensure all
packages/*/package.json
depending onprop-types
specify the same range. - Run
yarn upgrade prop-types@^THAT_VERSION
in the repo root. (Don’t miss the caret!)
- Look at the version range of
-
This might change the lockfile. This should not change any
package.json
. -
Commit the changes, if any. (see Update to latest allowed versions of
fbjs
andprop-types
#10626) -
Edit:
react-art
is broken in the 16 branch but this shouldn't block RC, and will be fixed asap by @sophiebits and @flarnie in Pull in react-art/lib/{Circle,Rectangle,Wedge}.art #10629
Do the local sanity checks in the repo root.
- Run
yarn test
in the repo root. - Run
yarn lint
in the repo root. - Run
yarn flow
in the repo root.
STABLE RELEASE ONLY: Update error codes.
- Run
yarn build -- --extract-errors
in the repo root. - If
scripts/error-codes/codes.json
changes,git commit -am 'Update error codes'
- Maybe: If we still have a separate
*-stable
branch for docs when you’re reading this, we need to cherry-pick that commit to that branch. This makes sure the website decoder knows about the updated error codes. But ideally we should just change docs to serve from master.
(See #10619 #10621 and #10622)
Update the version.
- Update export in
src/ReactVersion.js
- Update
version
in allpackages/*/package.json
:-
packages/react-art/package.json
-
packages/react-dom/package.json
-
packages/react-noop-renderer/package.json
-
packages/react-test-renderer/package.json
- If you see any other packages, update this list :-)
-
- Run
yarn version-check
to verify your changes. -
git commit -am "<version number>"
Build it!
- Run
yarn build
in the repo root.
Run fast packaging smoke test.
- Open
fixtures/packaging/babel-standalone/dev.html
in the browser for a smoke test. - It should say “Hello world!”
Run slow packaging smoke test.
- Go to
cd fixtures/packaging
and runnode build-all.js
-
npm install -g serve
- Go to the repo root and run
serve -s .
- Open http://localhost:5000/fixtures/packaging/ and verify every iframe shows “Hello World!”
Release!
- Run
git push
- Run
git push --tags
- Go to
build/packages
- For every subfolder:
- For non-stable versions: Run
npm publish --tag next
in the subfolder. - For stable versions: Run
npm publish
in the subfolder.
- For non-stable versions: Run
- For every subfolder:
Bonus: Try it out!
-
create-react-app myapp
-
cd myapp
-
npm start