panrelease
v0.19.0
Published
Utility to release software
Readme
Panrelease (Node.js)
Panrelease is a versatile release automation tool that manages version bumping, changelog updates, and Git operations. This package provides the Node.js implementation of Panrelease, powered by WebAssembly, allowing it to run seamlessly in any Node.js environment without requiring a Rust installation.
Features
- Semantic Versioning - Automatic major, minor, patch, and post-release version bumping.
- Node.js Native Support - Direct support for
package.jsonand lockfiles (package-lock.json,yarn.lock,pnpm-lock.yaml). - Changelog Automation - Updates
CHANGELOG.mdfollowing Keep a Changelog format. - Git Integration - Commits version changes, creates tags, and supports GPG signing.
- Monorepo Friendly - Can manage multiple modules in a single project.
- WebAssembly Powered - Fast and consistent execution across different platforms.
Installation
Install as a development dependency in your project:
npm
npm install --save-dev panreleaseyarn
yarn add --dev panreleasepnpm
pnpm add --save-dev panreleaseQuick Start
1. Initialize Panrelease
Run panrelease init in your repository root to auto-detect the package manager and generate .panproject.toml:
npx panrelease init
# or interactively:
npx panrelease init --interactiveAlternatively, create .panproject.toml manually:
[vcs]
software = "Git"
[modules.root]
path = "."
packageManager = "Npm"
main = true2. Add a Script to package.json
{
"scripts": {
"release": "panrelease"
}
}3. Run a Release
# Release a new patch version (e.g., 1.0.0 -> 1.0.1)
npm run release -- release patch
# Or run directly via npx
npx panrelease release minorCommands
panrelease [--path <PATH>] <SUBCOMMAND>
Subcommands:
init [--interactive] Initialize .panproject.toml
release <LEVEL|VERSION> Bump and release a new version
show [--format <FORMAT>] Print the current project versionRelease Levels
| Level | Description | Example |
|-------|-------------|---------|
| patch | Increment patch version | 1.0.0 -> 1.0.1 |
| minor | Increment minor version | 1.0.0 -> 1.1.0 |
| major | Increment major version | 1.0.0 -> 2.0.0 |
| post | Create post-release (build metadata) | 1.0.0 -> 1.0.0+dev.r1 |
| X.Y.Z | Set explicit version | 1.0.0 -> 2.1.0 |
Note: The
postbump type uses semver build metadata in a non-standard way. See the main README for a full explanation of the implications and intended use cases.
Documentation
For full configuration options, advanced features like hooks, strict mode, and changelog from commits, please refer to the Main Repository Documentation.
License
This project is licensed under the MIT License - see the LICENSE file for details.
