mbarkhau / bumpver

BumpVer: Automatic Versioning
https://github.com/mbarkhau/bumpver
MIT License
181 stars 34 forks source link

Add support for defining multiple version patterns #237

Open 9ao9ai9ar opened 2 months ago

9ao9ai9ar commented 2 months ago

My use case is bumping the project version and the minimum-supported Python version (because each tool likes to define their own fields for this) strings inside pyproject.toml. Say we're allowed to write this in pyproject.toml:

[tool.bumpver.project]
current_version = "2024.07.11"
version_pattern = "YYYY.0M.0D[-PATCH]"
bumpver_flags = "--patch"
file_patterns = {
    "pyproject.toml" = [
        'version = "{version}"',
    ]
}

[tool.bumpver.python]
current_version = "3.10"
version_pattern = "MAJOR.MINOR"
bumpver_flags = "--minor"
file_patterns = {
    "pyproject.toml" = [
        '^pythonVersion = "{version}"',
        '^python-version = "{version}"',
        '^target-python-version = "{version}"',
    ]
}

and update the versions via specifying the subtable key:

> bumpver update project
> bumpver update python

It'll be a huge UX improvement.

mbarkhau commented 3 weeks ago

Hi @9ao9ai9ar

Do you think this request has overlap with #220 ?

From the CLI/UX side, I think you're on the right track. The idea in the other issue was to have multiple files, which I think might be worse than what you're suggesting here.

Are you interested in working on this?

9ao9ai9ar commented 3 weeks ago

@mbarkhau I think both approaches can work, but multiple configs might suit his case better.

I no longer have a need for this feature, opting instead to not define any Python version-related field other than requires_python and just let the tools pick the one in the virtual environment, so no, I won't be interested in working on this.