No description
Find a file
Julian Tölle d9c081d280
fix: invalid version for subsequent pre-releases (#174)
If two pre-releases were cut in a row, the second pre-release version
would only consider the semantic changes since the previous pre-release,
but base its new version of the latest tag.

Example:

- stable tag: `1.2.0`
- latest tag: `1.3.0-rc.1`
- 1 commit since with `fix:` tag

The resulting releaser-pleaser tag would be: `1.2.1-rc.2`. It should be
`1.3.0-rc.2` instead.

This is now fixed by considering different commit ranges for versioning
and changelog.

For a stable version we want the list of changes since the stable tag.

For a prerelease version we want the list of changes since the latest
tag. To avoid repeating the same features over and over in a series of
multiple pre-releases.

This behaviour already existed and worked.

For a stable version, we want to consider all changes since the stable
tag.

For a prerelease version, we also want to consider all changes since the
stable tag. This was broken and only used the changes since the latest
tag.
2025-05-22 15:27:49 +02:00
.github deps: update dependency rust-lang/mdbook to v0.4.49 (#171) 2025-05-05 23:23:44 +00:00
cmd/rp refactor: interface for versioning strategy (#109) 2024-11-15 17:43:40 +00:00
docs feat(gitlab): make job dependencies configurable and run immediately (#101) 2024-11-15 17:51:54 +01:00
internal feat(github): mark pre-releases correctly (#110) 2024-11-15 18:49:50 +01:00
templates chore(main): release v0.5.0 (#107) 2024-11-15 18:54:56 +01:00
.gitattributes docs: add all current features (#34) 2024-08-25 22:13:56 +02:00
.gitlab-ci.yml deps: update registry.gitlab.com/gitlab-org/release-cli docker tag to v0.23.0 (#161) 2025-03-20 16:33:00 +00:00
.golangci.yaml chore: enable some more linters (#16) 2024-08-23 22:35:06 +02:00
.ko.yaml feat: add shell to container image (#59) 2024-09-15 18:46:45 +02:00
action.yml chore(main): release v0.5.0 (#107) 2024-11-15 18:54:56 +01:00
CHANGELOG.md chore(main): release v0.5.0 (#107) 2024-11-15 18:54:56 +01:00
go.mod deps: update module github.com/yuin/goldmark to v1.7.12 (#173) 2025-05-17 14:40:46 +00:00
go.sum deps: update module github.com/yuin/goldmark to v1.7.12 (#173) 2025-05-17 14:40:46 +00:00
LICENSE chore: working releasable commits 2024-07-12 14:51:24 +02:00
prbody.go feat: edit commit message after merging through PR (#43) 2024-09-06 23:17:06 +02:00
prbody_test.go feat: edit commit message after merging through PR (#43) 2024-09-06 23:17:06 +02:00
README.md docs: GitLab tutorial and CI/CD component reference (#72) 2024-09-25 11:23:04 +02:00
releaserpleaser.go fix: invalid version for subsequent pre-releases (#174) 2025-05-22 15:27:49 +02:00

releaser-pleaser

releaser-pleaser is a tool designed to automate versioning and changelog management for your projects. Building on the concepts of release-please, it streamlines the release process through GitHub Actions or GitLab CI.

Badge: Documentation Badge: Stable Release Badge: License GPL-3.0

Features

  • Automated Pull Requests: Opens a PR when releasable changes are detected.
  • Smart Versioning: Suggests new versions based on conventional commits and semantic versioning.
  • Version Reference Updates: Automatically updates committed version references in the PR.
  • Changelog Generation: Creates new changelog entries based on commits.
  • Automated Releases: Upon PR merge, creates tags and GitHub/GitLab Releases with appropriate messages.
  • Version Overrides: Allows manual override of the suggested version.
  • Prerelease Support: Offers options to create alpha, beta, or release candidate versions.

releaser-pleaser simplifies release management, allowing maintainers to focus on development while ensuring consistent and well-documented releases.

Relation to release-please

After using release-please for 1.5 years, I've found it to be the best tool for low-effort releases currently available. While I appreciate many of its features, I identified several additional capabilities that would significantly enhance my workflow. Although it might be possible to incorporate these features into release-please, I decided to channel my efforts into creating a new tool that specifically addresses my needs.

Key differences in releaser-pleaser include:

  • Support for multiple forges (both GitHub and GitLab)
  • Better support for pre-releases

One notable limitation of release-please is its deep integration with the GitHub API, making the addition of support for other platforms (like GitLab) a substantial undertaking. releaser-pleaser aims to overcome this limitation by design, offering a more versatile solution for automated release management across different platforms and project requirements.

License

This project is licensed under the GNU General Public License v3.0 (GPL-3.0).