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 which are tested with the bazel-in-bazel bazel_integration_test rule. The integration tests must be run in series as they use up too many resources when run in parallel.
bazel test ...
includes all these integration tests so if you want to run all tests except the integration tests you can use bazel test ... --test_tag_filters=-e2e,-examples
. A shortcut for this is yarn test
.
When running the e2e tests, it is recommended to tune the memory usage of Bazel locally. This can be done with bazel --host_jvm_args=-Xms256m --host_jvm_args=-Xmx1280m test ... --test_tag_filters=e2e --local_resources=792,1.0,1.0 --test_arg=--local_resources=13288,1.0,1.0
. A shortcut for this is yarn test_e2e
.
Similarly, for test examples run bazel --host_jvm_args=-Xms256m --host_jvm_args=-Xmx1280m test ... --test_tag_filters=examples --local_resources=792,1.0,1.0 --test_arg=--local_resources=13288,1.0,1.0
. A shortcut for this is yarn test_examples
.
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
See Debugging
section under /docs/index.md
.
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
Googlers: you should npm login using the go/npm-publish service: $ npm login --registry https://wombat-dressing-room.appspot.com
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 'docs: update docs for release'
npm version minor
(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