To push a new build to NPM, follow these steps. If the process changes, please update this doc. 😃
- Ensure that all local changes have been uploaded to GitHub.
- Verify that continuous integration is passing.
- Check that there are no conflicting dependencies between packages.
- The easiest way to do this is to run
yarn list
, scroll to thematerial-motion
section, and verify that there are no bold dependencies in any of thematerial-motion
packages.
- The easiest way to do this is to run
- Build each package. (
yarn run build
in the repo root.)- Verify there are no build/lint warnings. If there are, fix them, and go back to step 1.
- Smoke test
demos-react
.yarn run serve
it, and ensure the interactions all work as expected.
- Smoke test them in a separate project that uses Material Motion.
- Generate a tarball preview of the package with
yarn pack
. - Replace the project's copy of the
material-motion
packages with the contents of the tarball(s). - Serve the project, and ensure the interactions still work as expected.
- Generate a tarball preview of the package with
- Verify that
material-motion.bundle.js
doesn't contain anyimport
statements.
- Read each README, and ensure its information is current.
- Verify that each package's
.npmignore
is correct. - Update the version number:
lerna version --no-push
will updatelerna.json
and thepackage.json
s- In each package's README, update the version in:
- the NPM badge, and
- the
<script>
tag example, if there is one.
- Update the CHANGELOG.
- Amend the commit created by
lerna version
to include the README and CHANGELOG changes. - Point the tag at the amended commit with
git tag vX.X.X --force
lerna publish
doesn't support 2FA yet, socd
into eachpackage
and runyarn publish
- Upload the commit.
yarn run deploy
indemos-react
. Check that http://material-motion-demos.firebaseapp.com still works correctly.- Delete the
material-motion
packages in the test project, and runyarn
again to pull the published version from NPM. Smoke test it again to validate that the deployed version works correctly. - Look at the published packages on npmjs.com, and verify the versions and READMEs look correct.
- Update the
stable
branch:git checkout stable git merge develop --ff-only git push origin stable