- Gate PyPI authentication setup to the explicit Python ecosystem so non-Python release workflows that use OIDC for their own registry do not attempt PyPI trusted publishing. (by @EmmaJamieson-Hoare, #119)
- Add support for PyPI Trusted Publishing
- (OIDC). When
pypi-tokenis empty and the workflow hasid-token: write, - the action mints a short-lived PyPI API token by exchanging the GitHub
- OIDC ID token at PyPI's
_/oidc/mint-tokenendpoint, removing the need - for a long-lived static API token. Existing static-token usage is
- unchanged. (by @BrendanRyan, #116)
- Added support for a
.changelog/instructions.mdfile to override the default AI prompt, with priority order:--instructionsflag >.changelog/instructions.md> built-in default. Updated README with documentation for this feature. (by @DerekCofausper, #67)
- Two release-mode fixes:
- Go ecosystem.
is_publishednow treatsv0.0.0as already published, so a Go module with no priorvX.Y.Ztag and no staged changelog entries does not get bootstrap-tagged on every push to the release branch. The previous behavior unconditionally created and pushed av0.0.0tag the first time the release workflow ran on an integrated repo. - GitHub Action. The "Create GitHub releases" step's previous-tag lookup uses
git tag --list … | grep -Fxv -- "$tag" | head -1.grep -Fxvexits 1 when every input line matches the excluded pattern (i.e. when the only tag is$tagitself), and underset -e -o pipefailthat aborted the whole step before any release was created. Both occurrences are now guarded with{ grep -Fxv … || true; }, so the lookup degrades to "no previous tag" instead of failing the step. (by @BrendanRyan, #111) - Added Go module ecosystem support. Discovers single-module Go projects via
go.mod, persists the bumped version inline as a// changelogs:version X.Y.Zcomment between the version and publish CI runs, editsrequireblocks for dependency updates, queriesproxy.golang.orgfor published-version checks, and emitsvX.Y.Zgit tags. Auto-detection (go.modat the repository root) and thego/golangecosystem aliases are wired through. (by @BrendanRyan, #109)
- Update rustls-webpki 0.103.11 → 0.103.13 to fix RUSTSEC-2026-0098, RUSTSEC-2026-0099, RUSTSEC-2026-0104. (by @grandizzy, #107)
- Fixed changelog directory lookup to support hyphenated package names by stripping the first prefix segment as a fallback (e.g.,
tempo-alloy->alloy). Also improved release notes extraction to match both backtick-wrapped tag headings and plain version headings. (by @DerekCofausper, #87)
- Added support for unified versioning in root changelog format by implicitly treating all workspace packages as a fixed group, merging duplicate version headings and deduplicating changelog entries. Added Rust workspace version inheritance support for reading and writing versions via
version.workspace = true. (by @Kartik, #79)
- Fixed config template placing
ignoreafter[changelog]header causing it to be silently dropped. Respectpublish = falsein Cargo.toml by skipping unpublishable crates. Filter ignored packages duringpublishcommand. AddedSkipReasonenum to distinguish skip reasons in output. (by @Kartik, #72)
- Truncated AI diff to 32KB to prevent "Prompt is too long" errors with AI commands that have smaller context windows. (by @jxom, c3a9576)
- Replaced auto-generate workflow with check action that comments on PRs with changelog status and optional AI-generated previews. (by @jxom, #37)
- Fixed PR number detection to find the first merge commit that brought a changelog file into the branch, rather than the most recent one. This prevents incorrect PR attribution on release branches where later merges could incorrectly claim authorship. (by @jxom, #40)
- Fixed per-crate changelog format to include package and version header in individual CHANGELOG.md files. Updated GitHub Action to look for changelogs in per-crate directories before falling back to root CHANGELOG.md. (by @jxom, #33)
- Fixed token validation to check for empty strings instead of just missing environment variables. (by @jxom, #31)
- Added support for creating git tags without registry tokens, allowing the tool to be used for version management even when package publishing is not configured. (by @jxom, #29)
- Fixed release mode to run without requiring registry tokens, allowing tag creation and GitHub releases for all projects. (by @BrendanRyan, #27)
- Fixed release notes formatting by adding blank line before GitHub extras section. (by @jxom, #24)
- Fixed error message when ecosystem is not detected to provide clear instructions with the --ecosystem flag, and added -e shorthand for the ecosystem argument. (by @jxom, #24)
- Added
changelogs upcommand for self-update functionality and improved install script with automatic PATH configuration for multiple shells. (by @jxom, #20)
- Added Python ecosystem support with both PEP 621 and Poetry formats. (by @BrendanRyan, #17)
- Fixed action. (by @jxom, 411d91e)
- Added automatic installation of changelogs binary in GitHub Actions with caching support, and simplified action inputs by removing customizable version/publish commands in favor of hardcoded changelogs commands. (by @jxom, #10)
- Fixed GitHub releases to use changelog content from CHANGELOG.md instead of auto-generated notes. (by @jxom, #7)
- Added AI-assisted changelog generation. Users can now generate changelog entries from git diffs using the
--aiflag with commands likechangelogs add --ai "claude -p". Includes a GitHub Action for automated PR changelog generation and configuration options for custom AI commands and instructions. (by @jxom, e8740e8)
- Updated README with improved workflow documentation, added mermaid diagram showing development and release process, documented AI changelog generation with GitHub Actions setup, and clarified the Release Candidate workflow. (by @jxom, e8740e8)
- Initial release (by @jxom, 59a7a96)