mirror of
https://github.com/TECHNOFAB11/bumpver.git
synced 2025-12-12 14:30:09 +01:00
implement -c/--commit-message
This commit is contained in:
parent
9b9748a816
commit
bf030d4fa0
2 changed files with 68 additions and 16 deletions
|
|
@ -6,6 +6,7 @@
|
||||||
# SPDX-License-Identifier: MIT
|
# SPDX-License-Identifier: MIT
|
||||||
"""cli module for BumpVer."""
|
"""cli module for BumpVer."""
|
||||||
import io
|
import io
|
||||||
|
import re
|
||||||
import sys
|
import sys
|
||||||
import typing as typ
|
import typing as typ
|
||||||
import logging
|
import logging
|
||||||
|
|
@ -687,6 +688,13 @@ def _update_cfg_from_vcs(cfg: config.Config, fetch: bool) -> config.Config:
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
@version_options
|
@version_options
|
||||||
|
@click.option(
|
||||||
|
"-c",
|
||||||
|
"--commit-message",
|
||||||
|
default=None,
|
||||||
|
metavar="<MESSAGE>",
|
||||||
|
help="Set commit message.",
|
||||||
|
)
|
||||||
def update(
|
def update(
|
||||||
dry : bool = False,
|
dry : bool = False,
|
||||||
allow_dirty : bool = False,
|
allow_dirty : bool = False,
|
||||||
|
|
@ -700,6 +708,7 @@ def update(
|
||||||
pin_date : bool = False,
|
pin_date : bool = False,
|
||||||
date : typ.Optional[str] = None,
|
date : typ.Optional[str] = None,
|
||||||
set_version : typ.Optional[str] = None,
|
set_version : typ.Optional[str] = None,
|
||||||
|
commit_message: typ.Optional[str] = None,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Update project files with the incremented version string."""
|
"""Update project files with the incremented version string."""
|
||||||
verbose = max(_VERBOSE, verbose)
|
verbose = max(_VERBOSE, verbose)
|
||||||
|
|
@ -747,18 +756,25 @@ def update(
|
||||||
if dry or verbose >= 2:
|
if dry or verbose >= 2:
|
||||||
_print_diff(cfg, new_version)
|
_print_diff(cfg, new_version)
|
||||||
|
|
||||||
if dry:
|
if commit_message is None:
|
||||||
return
|
commit_msg_template = cfg.commit_message
|
||||||
|
else:
|
||||||
|
commit_msg_template, _ = re.subn(r"\b(OLD|NEW)\b", r"{\1_VERSION}", commit_message)
|
||||||
|
|
||||||
commit_message_kwargs = {
|
commit_message_kwargs = {
|
||||||
'new_version' : new_version,
|
'new_version' : new_version,
|
||||||
'old_version' : old_version,
|
'old_version' : old_version,
|
||||||
|
'NEW_VERSION' : new_version,
|
||||||
|
'OLD_VERSION' : old_version,
|
||||||
'new_version_pep440': version.to_pep440(new_version),
|
'new_version_pep440': version.to_pep440(new_version),
|
||||||
'old_version_pep440': version.to_pep440(old_version),
|
'old_version_pep440': version.to_pep440(old_version),
|
||||||
}
|
}
|
||||||
commit_message = cfg.commit_message.format(**commit_message_kwargs)
|
try_commit_message = commit_msg_template.format(**commit_message_kwargs)
|
||||||
|
|
||||||
_try_update(cfg, new_version, commit_message, allow_dirty)
|
if dry:
|
||||||
|
return
|
||||||
|
|
||||||
|
_try_update(cfg, new_version, try_commit_message, allow_dirty)
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
|
|
||||||
|
|
@ -890,6 +890,42 @@ def test_git_commit_message(runner, caplog):
|
||||||
assert expected in commits[1]
|
assert expected in commits[1]
|
||||||
|
|
||||||
|
|
||||||
|
def test_cli_commit_message(runner, caplog):
|
||||||
|
_add_project_files("README.md", "setup.cfg")
|
||||||
|
result = runner.invoke(cli.cli, ['init', "-vv"])
|
||||||
|
assert result.exit_code == 0
|
||||||
|
|
||||||
|
_update_config_val(
|
||||||
|
"setup.cfg",
|
||||||
|
current_version='"v2019.1001-alpha"',
|
||||||
|
version_pattern="vYYYY.BUILD[-TAG]",
|
||||||
|
)
|
||||||
|
|
||||||
|
_vcs_init("git", ["README.md", "setup.cfg"])
|
||||||
|
assert len(caplog.records) > 0
|
||||||
|
|
||||||
|
cmd = [
|
||||||
|
'update',
|
||||||
|
"-vv",
|
||||||
|
"--pin-date",
|
||||||
|
"--tag",
|
||||||
|
"beta",
|
||||||
|
"--commit-message",
|
||||||
|
"my custom message (OLD -> NEW)",
|
||||||
|
]
|
||||||
|
|
||||||
|
result = runner.invoke(cli.cli, cmd)
|
||||||
|
assert result.exit_code == 0
|
||||||
|
|
||||||
|
tags = shell("git", "tag", "--list").decode("utf-8")
|
||||||
|
assert "v2019.1002-beta" in tags
|
||||||
|
|
||||||
|
commits = shell(*shlex.split("git log -l 2")).decode("utf-8").split("\n\n")
|
||||||
|
|
||||||
|
expected = "my custom message (v2019.1001-alpha -> v2019.1002-beta)"
|
||||||
|
assert expected in commits[1]
|
||||||
|
|
||||||
|
|
||||||
def test_grep(runner):
|
def test_grep(runner):
|
||||||
_add_project_files("README.md")
|
_add_project_files("README.md")
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue