# Releasing `dc-polyfill` is published to npm as [`dc-polyfill`](https://www.npmjs.com/package/dc-polyfill). Releases are currently cut manually by a maintainer with publish access to the package on npm. ## Prerequisites - Push access to `main` on this repository. - The [`gh`](https://cli.github.com/) CLI, authenticated against `DataDog/dc-polyfill`. - Log in to the npm account with publish access to `dc-polyfill`. Check with `npm whoami`; run `npm login` if needed. If you don't have publish access, ask an existing maintainer. ## Cutting a release ```sh # Make sure main is green and up to date. git checkout main git pull origin main # Bump the version. Pick patch, minor, or major per semver. # This updates package.json, creates a commit (e.g. "0.1.11"), # and creates a matching v0.1.11 tag locally. npm version patch # Sanity-check what will be packed before publishing anything public. npm publish --dry-run # Publish to npm. Do this before pushing the tag so a failed publish # doesn't leave a release tag in the repo that points at no npm version. npm publish # Push the version-bump commit and the tag. git push origin main --follow-tags # Create the GitHub release with autogenerated notes. gh release create "v$(node -p "require('./package.json').version")" --generate-notes ``` ## Verifying the release ```sh # Confirm the new version is live on npm. npm view dc-polyfill version # Confirm the GitHub release exists. gh release view "v$(node -p "require('./package.json').version")" ```