3.1 KiB
To run tests
Note: some of these tests no longer run. Be sure to check that CI is green.
Make sure your environment is set up with:
pnpm
In a separate process, run the WebSockets server:
pnpm ws-server
Run the browser tests using Karma:
pnpm test
Run the node.js tests:
pnpm test-node
Run tslint:
pnpm lint
Run format with prettier:
pnpm format
Run all checks (lint/format/browser test/test-node):
pnpm ci
Before Commit
Please make sure you pass all following checks before commit
- pnpm gulp lint (tslint)
- pnpm gulp format (prettier)
- pnpm promisetest (promise a+ test)
- pnpm bazel test //packages/zone.js/... (all tests)
Webdriver Test
zone.js also supports running webdriver e2e tests.
- run locally
pnpm webdriver-start
pnpm webdriver-http
pnpm webdriver-test
Releasing
Releasing zone.js is a two step process.
- Create a PR which updates the changelog, and get it merged using normal merge process.
- Once the PR is merged check out the merge SHA of the PR and release
zone.jsfrom that SHA and tag it.
Automated Release
You can use the automated release script which handles both steps (run from the root of the repo):
pnpm zonejs:release
Follow the interactive prompts to either create a PR or cut a release.
Manual Release (Legacy)
1. Creating a PR for release
rm -rf node_modules && pnpm install
export PREVIOUS_ZONE_TAG=`git tag -l 'zone.js-0.15.*' | tail -n1`
export VERSION=`(cd packages/zone.js; npm version patch --no-git-tag-version)`
export VERSION=${VERSION#v}
export TAG="zone.js-${VERSION}"
echo "Releasing zone.js version ${TAG}. Last release was ${PREVIOUS_ZONE_TAG}."
pnpm gulp changelog:zonejs
Inspect the packages/zone.js/CHANGELOG.md for any issues and than commit it with this command.
Create a dry run build to make sure everything is ready.
pnpm bazel build //packages/zone.js:npm_package --workspace_status_command="echo STABLE_PROJECT_VERSION $VERSION"
If everything looks good, commit the changes and push them to your origin to create a PR.
git checkout -b "release_${TAG}"
git add packages/zone.js/CHANGELOG.md packages/zone.js/package.json
git commit -m "release: cut the ${TAG} release"
git push origin "release_${TAG}"
2. Cutting a release
Check out the SHA on main which has the changelog commit of the zone.js
git fetch upstream
git checkout upstream/main
rm -rf node_modules && pnpm install
export VERSION=`(node -e "console.log(require('./packages/zone.js/package.json').version)")`
export TAG="zone.js-${VERSION}"
export SHA=`git log upstream/main --oneline -n 1000 | grep "release: cut the ${TAG} release" | cut -f 1 -d " "`
echo "Releasing '$VERSION' which will be tagged as '$TAG' from SHA '$SHA'."
git checkout ${SHA}
npm login --registry https://wombat-dressing-room.appspot.com
pnpm bazel build //packages/zone.js:npm_package --config=release --workspace_status_command="echo STABLE_PROJECT_VERSION $VERSION"
npm publish dist/bin/packages/zone.js/npm_package --access public --tag latest
git tag ${TAG} ${SHA}
git push upstream ${TAG}