We strongly encourage you to review the project's scope described in the README.md
file before working on new features. For large changes, consider writing a design document using this template.
This repository contains nested workspaces. To test all targets locally in the main workspace and in all nested workspaces run:
yarn test_all
To do a full clean run:
yarn clean_all
Other scripts allow you to test all or individual packages, e2e tests and examples. For example,
yarn test_packages_all
yarn test_packages typescript karma
yarn test_e2e_all
yarn test_e2e karma
yarn test_examples_all
yarn test_examples webapp
Start from a clean checkout at master/HEAD.
Note: if you are using a new clone, you'll need to configure git-clang-format
to be able to commit the release:
git config clangFormat.binary node_modules/.bin/clang-format
git config clangFormat.style file
Check if there are any breaking changes since the last tag - if so, this will be a minor, if not it's a patch. (This may not sound like semver, but since our major version is a zero, the rule is that minors are breaking changes and patches are new features.)
yarn install
- Re-generate the API docs:
yarn skydoc
git add docs/
(in case new files were created)git commit -a -m 'Update docs for release'
npm config set tag-version-prefix ''
(we don't put a "v" prefix on our tags)npm version minor -m 'rel: %s'
(replaceminor
withpatch
if no breaking changes)- Build npm packages and publish them:
./scripts/publish_release.sh
git push upstream && git push upstream --tags
- (Manual for now): go to the releases page, edit the release with rough changelog (especially note any breaking changes!) and upload the release artifact from
rules_nodejs-[version].tar.gz
- Announce the release on Angular slack in
#tools-abc-discuss