npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

calver-bump

v1.0.0

Published

Release CLI for internal applications using readable CalVer versions.

Readme

calver-bump

Release CLI for applications and internal tools that use readable CalVer versions.

Default version and tag format:

YY.MMDD

Example:

26.0529

What it does

  1. Bumps package.json to the next CalVer version.
  2. Updates package-lock.json or npm-shrinkwrap.json when present.
  3. Warns when pnpm-lock.yaml or yarn.lock is present, because those lockfiles do not store the root package version consistently.
  4. Creates or prepends a CHANGELOG.md entry from conventional commits since the nearest reachable tag.
  5. Prints the git commands needed to commit, tag, and push the reviewed release.

Usage

npx calver-bump

By default, calver-bump updates files only. Review CHANGELOG.md, then run the printed git commands when the release notes are correct.

Preview the planned release without writing files:

npx calver-bump --dry-run

Print help:

npx calver-bump --help

Print the installed calver-bump package version:

npx calver-bump --version

Use compact CalVer instead:

npx calver-bump --format compact

Use long CalVer instead:

npx calver-bump --format long

Create a v-prefixed git tag while keeping package.json unprefixed:

npx calver-bump --tag-prefix v

Push the release commit and annotated tag:

npx calver-bump --push

Push to a different remote:

npx calver-bump --push --remote upstream

Only include selected conventional commit types:

npx calver-bump --types feat,fix,perf

Use an explicit changelog base tag:

npx calver-bump --from v1.35.0

Use local tags only without fetching from the configured remote:

npx calver-bump --no-fetch

Update only package.json and supported npm lockfiles:

npx calver-bump --version-only

Update only CHANGELOG.md:

npx calver-bump --changelog-only

Create a release commit after updating files:

npx calver-bump --commit

Create a release commit and annotated tag after updating files:

npx calver-bump --tag

Explicitly update files without creating a release commit or tag:

npx calver-bump --skip-commit

Configuration

Project defaults can be stored in .calverbumprc.json:

{
  "format": "short",
  "tagPrefix": "v",
  "remote": "origin",
  "types": ["feat", "fix", "perf"],
  "changelogSections": {
    "perf": "Performance",
    "security": "Security"
  }
}

Runtime support

calver-bump supports Node.js LTS lines only. The current supported runtime range is Node.js 22 and Node.js 24.

Publishing

The package includes a manual GitHub Actions publish workflow. Run the Publish workflow from GitHub after the package version has been bumped, tests pass, and the npm automation token is available as NPM_TOKEN.

Notes

  • The default short format is YY.MMDD for the first release of the day, then YY.MMDD.1, YY.MMDD.2, etc.
  • The optional compact format is YYMMDD for the first release of the day, then YYMMDD.1, YYMMDD.2, etc.
  • The optional long format is YYYY.MM.DD for the first release of the day, then YYYY.MM.DD.1, YYYY.MM.DD.2, etc.
  • Changelog release headings use the CalVer version only and do not append a separate YYYY-MM-DD date.
  • Existing v-prefixed tags are considered when calculating the next sequence number.
  • Changelog ranges start from the nearest reachable tag, even when it is not a CalVer tag.
  • Changelog entries include conventional commit subjects only, such as feat:, fix(scope):, or chore!:.
  • Changelog entries are grouped into Features, Fixes, and Other Changes by default. Use changelogSections to assign additional conventional commit types to named sections.
  • Changelog entries link to GitHub pull requests or GitLab merge requests when the local git message includes references such as #123, Merge pull request #123, !123, or See merge request group/project!123.
  • Changelog entries fall back to commit hash links for GitHub and GitLab-style remotes when no pull/merge request reference is found.
  • Release entries include a Full Changelog section with a deduped list of pull/merge requests found in the release range, including the local commit title when available.
  • Later releases prepend only commits since the previous nearest reachable tag.
  • Plain calver-bump does not commit or tag by default; it prints the follow-up git add, git commit, git tag, and git push --follow-tags commands.
  • Use --commit to create only the release commit.
  • Use --tag to create the release commit and annotated tag.
  • Use --push to create the release commit, create the annotated tag, and push both.
  • Release tags are annotated so git push --follow-tags <remote> <branch> pushes them.
  • The working tree must be clean before creating a real release.
  • Existing release tags are rejected before files are written.
  • If tag creation fails after the release commit, the CLI undoes its own commit and leaves the file changes in the working tree for inspection or recovery.