Tag Release Npm
Bump the npm package version, tag the release, and push.
Bump the npm package version, tag the release, and push.
Note: For team repos or any repo with a CI/CD pipeline, automated versioning and publishing via a pipeline (e.g. GitHub Actions triggered on merge to main) is strongly preferred over running this command manually. Use this command for solo projects or when no pipeline is set up.
Steps:
- Run
ls package.json 2>/dev/nullto confirm this is an npm project. If not, tell the user and stop. - Run
git tag --sort=-version:refname | head -1to find the most recent tag. Rungit log <last-tag>..HEAD --onelineto see commits since the last tag. If no tags exist, use all commits. If there are no new commits, tell the user there is nothing to release and stop. - Determine the version bump:
majorif any commit containsBREAKING CHANGEminorif any commit is typefeatpatchfor all other changes
- Show the user the current version (from
package.json), the proposed new version, the bump reason, and the list of commits that will be included. - Ask the user to confirm before proceeding.
- On confirmation, run
npm version <major|minor|patch> --no-git-tag-versionto updatepackage.jsonandpackage-lock.jsonwithout creating a git tag yet. - Stage the version bump:
git add package.json package-lock.json. - If
CHANGELOG.mdexists, regenerate the## Unreleasedsection using the same rules as the/changelogcommand, rename it to## <new-version>, and stageCHANGELOG.mdwithgit add CHANGELOG.md. - Commit the version bump:
git commit -m "chore(release): <new-version>". - Create and push the tag:
git tag v<new-version> && git push && git push origin v<new-version>. - Confirm the tag was pushed and print the tag name.
$ARGUMENTS