packages/zone.js/DEVELOPER.md
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
Please make sure you pass all following checks before commit
zone.js also supports running webdriver e2e tests.
pnpm webdriver-start
pnpm webdriver-http
pnpm webdriver-test
Releasing zone.js is a two step process.
zone.js from that SHA and tag it.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.
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}"
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}