Package Exports
- cngpac
- cngpac/package.json
- cngpac/publishers/npm
- cngpac/releasers/github
Readme
cngpac
A highly configurable package release manager
Automate changelogs, semantic versioning, npm publishing, and GitHub releases — all driven by a single config file and a pluggable pipeline.
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.