Bump versions based on changelog entries.
This package only works together with scriv and works best if used with hatch.
In the scriv configuration the following is assumed:
[tool.scriv]
format = "md"
categories = [
"Major: Feature",
"Minor: Feature",
"Minor: Fix",
"Patch: Fix",
"Major: Business impact",
"Minor: Business impact"
]You can adjust the categories as you like the BUMB: part is what is checked for, and the bumps must be Major, Minor, Patch
For a nice integration in hatch use these two additional env definition blocks:
[tool.hatch.envs.changelog]
dependencies = [
"scriv",
"changelog-version"
]
[tool.hatch.envs.changelog.scripts]
init = "mkdir changelog.d"
new = "scriv create --edit --add"
collate = "scriv print > temp.md && hatch version $(changelog-version-bump) && scriv collect"-
Initial setup needed once is the
initpart (feel free to not bother with a seperate command). -
In each branch you'll need to run
scriv createorhatch run changelog:newto create and edit the changelog fragment for scriv. -
The actual magic is the
collatecomand that should run inci/cdwhen you create tags / releases.
This was originally created by TypicalArray.
Some places (like Azure DevOps) do not render .md files automatically. So in order to clean them up, this repo also contains a pre-commit hook which automatically removes all commented out lines, removes superfluous empty lines and enforces that all lines have to start with a # or a -, which helps with formatting. It can be used as follows:
repos:
- repo: https://github.com/banking-circle-advanced-analytics/changelog-version-bump
rev: <insert-latest-release>
hooks:
- id: remove-commentsCan you change the options and headings? No. It would be easy to add configurability via the toml and a tool.changelog-version-bump section but for now I see no need, the defaults should suffice.
Could this not just be some bash? Yes. This code was actually bash, but for distribution and later configuration, see above, python scripts are easier.