⚠️ Archived / no longer maintained. This project has been superseded by Changesets, which solves the same problem (conflict-free changelogs) and has become the de-facto standard. Please use Changesets instead. See Why this is archived.
A small CLI experiment for managing a JS/TS CHANGELOG.md without merge
conflicts. Each change was written to its own file in a changes/ directory and
merged into the changelog at release time, so contributors never edited the same
file at the same time.
The idea here — one file per change, merged at release — is sound, but it is now implemented far more completely by Changesets:
- One markdown file per change in a
.changeset/folder (no merge conflicts). - Automatic SemVer bump detection (patch/minor/major).
- First-class monorepo support with linked/dependent package bumps.
- Automated publishing via the Changesets GitHub Action.
- A large, active community and ecosystem.
Rather than maintain an overlapping tool, this repository is kept read-only for reference only. It is not published to npm and receives no updates.
npm install --save-dev @changesets/cli
npx changeset initThen, for each change:
npx changeset # describe the change + pick a version bumpAnd at release time:
npx changeset version # consume changesets, update versions + CHANGELOG.md
npx changeset publish # publish to npmFull docs: https://github.com/changesets/changesets.
changesets— recommended; per-change files, great for monorepos.release-please— automated releases driven by Conventional Commits.semantic-release— fully automated, commit-driven versioning and publishing.conventional-changelog— generate a changelog from your commit history.
The CLI offered four commands, built on commander + inquirer:
| Command | Alias | Description |
|---|---|---|
initiate |
i |
Create a new CHANGELOG.md scaffold. |
add |
a |
Add a change as a new file in changes/ via a prompt. |
list |
ls |
Print the current CHANGELOG.md. |
merge |
m |
Fold changes/ entries into CHANGELOG.md under a version. |
The changelog format followed Keep a Changelog.
Note: this was a pre-release prototype and was never fully working — see the commit history and the original review notes. Treat the code as a reference, not a working tool.
MIT © CroCode BV