- Add internal/node package: reads/writes package.json version (single or
multi-path via node.package_json / node.package_jsons)
- Add maven.pom_paths support: update multiple pom.xml files in one release
commit; pom_paths overrides pom_path; --pom flag clears pom_paths
- Add git.bump_rules config: per-type control of which version component bumps
(breaking/feat/fix accept "patch" or "minor"); wired through version.Next()
as a new sixth parameter
- Extract injectable function vars (absPath, gitAllCommits, gitCommitsSince,
gitCommitFiles) to enable error-path testing without interfaces
- Achieve 100% per-package statement coverage across all 12 packages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- GitHub release support: internal/ghclient (no SDK, minimal HTTP client);
GITHUB_TOKEN env var; github.token/github.repo config; GitHub takes
precedence over GitLab when both are configured; publisher interface
(releasePublisher) in cmd/main.go makes providers interchangeable
- SSH agent push: gitutil.Push() now tries gitssh.NewSSHAgentAuth for
git@/ssh:// remotes before falling back to the system git binary
- --release-env-file flag: override dotenv artifact path; pass "" to disable
- git.releasable_types config: filter which commit types trigger a bump
(defaults to fix, feat, breaking); useful for maintenance branches
- commits.Group(), ExtractSubject(), ReleasableSet() exported helpers:
notes.go and changelog.go now delegate to these instead of duplicating
- CHANGELOG deduplication guard: changelog.Update() is idempotent — skips
write if ## [version] section already exists
- Always load config sources: LoadWithSources() called unconditionally;
removes the dual config path that previously only tracked sources in
--verbose mode
- .releaser.gitlab-ci.yml: adds artifacts: reports: dotenv: release.env
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Automatically write/update CHANGELOG.md on every release, grouped by
Breaking Changes / Added / Fixed; file is created if missing and the
new section is committed alongside pom.xml in the release commit
- Add --init flag: scaffolds a default .releaser.yml in the repo root
- Add --changelog-file flag: override the default CHANGELOG.md path
- Add CommitFiles() to gitutil so pom.xml and CHANGELOG.md are staged
in a single commit
- Fix HTTPS push when no token is set: delegate to the git CLI so that
system credential helpers, SSH agents, and netrc are honoured
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>