lacspace-changelog

Conventional Commits → CHANGELOG + semver bump.

● Live · v0.2.0npm ↗Source ↗
terminal
npx lacspace-changelog
What it does

Everything, in one command

lacspace-changelog reads the commits since your last version tag, parses them as Conventional Commits, and decides the next semver bump (breaking→major, feat→minor, fix/perf→patch, with sensible 0.x handling). It renders a Keep-a-Changelog-style section with commit, PR and compare links derived from your repository field, and prepends it to CHANGELOG.md. Separate version and notes commands make it a clean building block for CI pipelines and GitHub releases, and opt-in --bump/--commit/--tag flags can cut a release locally (it never pushes). Zero runtime dependencies.

Features

What's inside

Next-version from commits

breaking→major, feat→minor, fix/perf→patch, 0.x-aware.

Grouped, linked changelog

Features/Fixes/Perf/BREAKING with commit, PR and compare URLs.

CI-native

version and notes subcommands plus --json on everything, non-zero exit on failure.

Prereleases & overrides

--preid beta and --release-as major|minor|patch|<version>.

Safe release actions

Opt-in --bump/--commit/--tag, printed as a plan, never pushes.

Zero dependencies

Hand-written commit parser, semver engine and markdown renderer.

Injection-safe git

Every git call uses execFile with an arg array, never a shell string.

Contributors section

Aggregate unique authors + co-authors, de-duped and sorted, with --contributors.

Custom type config

A .changelogrc.json remaps types to sections and controls which bump the version / stay hidden.

Breaking-change highlighting

A dedicated BREAKING CHANGES block from both type!: and BREAKING CHANGE:, forcing a major.

Compare & issue links

GitHub/GitLab/Bitbucket compare URLs plus #123 and commit-SHA linkifying.

Duplicate-safe merge

Re-runs won't double-prepend a version already in CHANGELOG.md.

Git-range generate

generate --from v1.0.0 --to HEAD reads the log directly, no piping.

How to use

Copy, paste, done

Real commands and snippets — from a one-liner to the typed library.

Preview the release
terminal
npx lacspace-changelog preview

Range, commit counts and the computed bump — writes nothing.

Next version for CI
terminal
VER=$(npx lacspace-changelog version)

Prints only the version, e.g. 1.3.0.

GitHub release body
terminal
npx lacspace-changelog notes > NOTES.md

Just the new section, grouped and linked.

Write CHANGELOG.md
terminal
npx lacspace-changelog

Prepends the new section below the header.

Beta prerelease
terminal
npx lacspace-changelog version --preid beta

→ 1.3.0-beta.0, then beta.1…

Cut a release
terminal
npx lacspace-changelog --bump --commit --tag

Bumps package.json, commits, tags — never pushes.

Notes with contributors
terminal
npx lacspace-changelog notes --from v1.0.0 --contributors

Release body with a Contributors list.

Generate for a range
terminal
npx lacspace-changelog generate --from v1.2.0 --to HEAD

Reads git log directly.

Custom type config
terminal
npx lacspace-changelog --config .changelogrc.json

type→section/bump/hidden mapping honoured by grouping and bump.

Good for

What people build with it

✓ Automate release notes in CI

✓ Decide the next semver number before publishing to npm

✓ Generate a GitHub release body

✓ Maintain a Keep-a-Changelog file without a heavy toolchain

Start now

Run lacspace-changelog today

Free, open-source, no API keys. It's a CLI and a typed library.

terminal
npx lacspace-changelog