Standard tools like `semantic-release` are designed for trunk-based development. In a GitFlow setup with versioned release branches (`release/1.1`, `release/1.2`), they either fail to respect the branch's version range or require brittle configuration.
`releaser` is built for this exact workflow: it reads the branch name to pin the `major.minor`, parses Conventional Commits to determine the patch increment, and handles everything from `pom.xml` / `package.json` update to GitLab/GitHub tag and release creation.
## How it works
```
release/1.2 branch
└─ last tag: 1.2.3 (or none → start at 1.2.0)
└─ commits since tag → Conventional Commits analysis
└─ next version: 1.2.4
```
1.**Branch parsing** — extracts `major.minor` from branch name (`release/1.2` → `1.2`)
2.**Tag discovery** — finds the latest tag matching `major.minor.*` on the current branch
3.**Commit analysis** — parses Conventional Commits between last tag and HEAD
4.**Version bump** — increments patch (or minor, if configured via `bump_rules`)