cngpac
v1.0.0
Published
A highly configurable package release manager
Maintainers
Readme
Why cngpac?
Releasing packages involves many error-prone steps: deciding the next version, writing a changelog, bumping package.json, tagging, publishing, creating a GitHub release… Each step is a chance for mistakes.
Tools like Changesets popularized changenote-based workflows but offer limited configurability. Cngpac builds on the same philosophy with deep configuration from the ground up — every stage of the pipeline is pluggable and composable.
What it does
- Calculate the correct semantic version bump from changenotes
- Generate a rich changelog with commit links, PR references, and contributor attribution
- Update
package.jsonwith the new version - Commit, tag, and push the release
- Publish to npm (with provenance support)
- Create a GitHub Release
Quick Start
Install
npm install -D cngpacInitialize
npx cngpac initThis scaffolds two files:
| File | Purpose |
| ------------------------------- | ------------------------------ |
| cngpac.config.ts | Release pipeline configuration |
| .github/workflows/version.yml | CI workflow for releases |
Documentation
Full documentation is available at cngpac.dev:
- Introduction — Overview and design philosophy
- Core Concepts — Changenotes, pipeline, and plugins
- Quick Start — Get running in under a minute
- Configuration — Full config reference
- CLI Reference — Every command documented
License
This project is licensed under the Apache-2.0 license.
