DEV Community

Charles Loder
Charles Loder

Posted on

How to create a 'canary' release on npm

This post will show how to create a canary release for an npm package.

tldr;



npm version --preid canary preminor
npm publish --tag canary


Enter fullscreen mode Exit fullscreen mode

canary testing

In short, canary testing is a way to publish packages without affecting all users. Users will have to opt-in to use a canary release.

versioning

The version command has a few built in options.

If our package is at 1.1.0 then running npm version minor will update the package.json to 1.2.0. Additionally, it will update package-lock.json and npm-shrinkwrap.json and add a git tag.

To update 1.1.0 to a canary version, run:



npm version --preid canary preminor


Enter fullscreen mode Exit fullscreen mode

This updates the version to 1.2.0-canary.0.

To make updates to this version, run:



npm version --preid canary prerelease


Enter fullscreen mode Exit fullscreen mode

This updates the version to 1.2.0-canary.1.

publishing

To ensure that the canary branch isn't published to @latest, it can be tagged.

To do so, run:



npm publish --tag canary


Enter fullscreen mode Exit fullscreen mode

This ensures that when a user runs:



npm i your-pkg


Enter fullscreen mode Exit fullscreen mode

That it installs the latest, stable, release.

To install the canary version, they must run:



npm i your-pkg@1.2.0-canary.1


Enter fullscreen mode Exit fullscreen mode

summary



npm version --preid canary preminor # go from 1.1.0 to 1.2.0-canary.0
npm version --preid canary prerelease # go from 1.2.0-canary.0 to 1.2.0-canary.1
npm publish --tag canary # publish your-pkg@1.2.0-canary.1


Enter fullscreen mode Exit fullscreen mode

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay