Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .npmignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,4 @@ test.sh
limitation.js
eslint*
*.sw?
*.md
5 changes: 5 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ const diagnostics_channel = require('dc-polyfill');
When a Pull Request is created the test suite runs against dozens of versions of Node.js. Notably, versions right before a change and versions right after a change, the first version of a release line, and the last version of a release line. To test locally it's recommended to use a node version management tool, such as `nvm`, to test changes with.


## Releasing

See [RELEASING.md](RELEASING.md) for the steps to publish a new version of `dc-polyfill` to npm.


## License / Copyright

See [LICENSE.txt](LICENSE.txt) for full details.
Expand Down
45 changes: 45 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# 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")"
```
Loading