Skip to content

Commit 05c8d8c

Browse files
refactor: Move bump.normalize_tag to tags.tag_from_version
1 parent 7a4cdf6 commit 05c8d8c

File tree

6 files changed

+43
-37
lines changed

6 files changed

+43
-37
lines changed

commitizen/bump.py

-27
Original file line numberDiff line numberDiff line change
@@ -207,33 +207,6 @@ def _version_to_regex(version: str) -> str:
207207
return version.replace(".", r"\.").replace("+", r"\+")
208208

209209

210-
def normalize_tag(version: Union[Version, str], tag_format: str) -> str:
211-
"""The tag and the software version might be different.
212-
213-
That's why this function exists.
214-
215-
Example:
216-
| tag | version (PEP 0440) |
217-
| --- | ------- |
218-
| v0.9.0 | 0.9.0 |
219-
| ver1.0.0 | 1.0.0 |
220-
| ver1.0.0.a0 | 1.0.0a0 |
221-
"""
222-
if isinstance(version, str):
223-
version = Version(version)
224-
225-
major, minor, patch = version.release
226-
prerelease = ""
227-
# version.pre is needed for mypy check
228-
if version.is_prerelease and version.pre:
229-
prerelease = f"{version.pre[0]}{version.pre[1]}"
230-
231-
t = Template(tag_format)
232-
return t.safe_substitute(
233-
version=version, major=major, minor=minor, patch=patch, prerelease=prerelease
234-
)
235-
236-
237210
def create_commit_message(
238211
current_version: Union[Version, str],
239212
new_version: Union[Version, str],

commitizen/changelog.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@
3434
from jinja2 import Environment, PackageLoader
3535

3636
from commitizen import defaults
37-
from commitizen.bump import normalize_tag
3837
from commitizen.exceptions import InvalidConfigurationError, NoCommitsFoundError
3938
from commitizen.git import GitCommit, GitTag
39+
from commitizen.tags import tag_from_version
4040

4141

4242
def get_commit_tag(commit: GitCommit, tags: List[GitTag]) -> Optional[GitTag]:
@@ -301,11 +301,11 @@ def get_oldest_and_newest_rev(
301301
except ValueError:
302302
newest = version
303303

304-
newest_tag = normalize_tag(newest, tag_format=tag_format)
304+
newest_tag = tag_from_version(newest, tag_format=tag_format)
305305

306306
oldest_tag = None
307307
if oldest:
308-
oldest_tag = normalize_tag(oldest, tag_format=tag_format)
308+
oldest_tag = tag_from_version(oldest, tag_format=tag_format)
309309

310310
tags_range = get_smart_tag_range(tags, newest=newest_tag, oldest=oldest_tag)
311311
if not tags_range:

commitizen/commands/bump.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
NotAllowed,
2222
NoVersionSpecifiedError,
2323
)
24+
from commitizen.tags import tag_from_version
2425

2526
logger = getLogger("commitizen")
2627

@@ -151,7 +152,7 @@ def __call__(self): # noqa: C901
151152
# Update the bump map to ensure major version doesn't increment.
152153
self.cz.bump_map = defaults.bump_map_major_version_zero
153154

154-
current_tag_version: str = bump.normalize_tag(
155+
current_tag_version: str = tag_from_version(
155156
current_version, tag_format=tag_format
156157
)
157158

@@ -210,7 +211,7 @@ def __call__(self): # noqa: C901
210211
is_local_version=is_local_version,
211212
)
212213

213-
new_tag_version = bump.normalize_tag(new_version, tag_format=tag_format)
214+
new_tag_version = tag_from_version(new_version, tag_format=tag_format)
214215
message = bump.create_commit_message(
215216
current_version, new_version, bump_commit_message
216217
)

commitizen/commands/changelog.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
from operator import itemgetter
44
from typing import Callable, Dict, List, Optional
55

6-
from commitizen import bump, changelog, defaults, factory, git, out
6+
from commitizen import changelog, defaults, factory, git, out
77
from commitizen.config import BaseConfig
88
from commitizen.defaults import DEFAULT_SETTINGS
99
from commitizen.exceptions import (
@@ -15,6 +15,7 @@
1515
NotAllowed,
1616
)
1717
from commitizen.git import GitTag, smart_open
18+
from commitizen.tags import tag_from_version
1819

1920

2021
class Changelog:
@@ -133,7 +134,7 @@ def __call__(self):
133134
changelog_meta = changelog.get_metadata(self.file_name)
134135
latest_version = changelog_meta.get("latest_version")
135136
if latest_version:
136-
latest_tag_version: str = bump.normalize_tag(
137+
latest_tag_version: str = tag_from_version(
137138
latest_version, tag_format=self.tag_format
138139
)
139140
start_rev = self._find_incremental_rev(latest_tag_version, tags)

commitizen/tags.py

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from string import Template
2+
from typing import Union
3+
4+
from packaging.version import Version
5+
6+
7+
def tag_from_version(version: Union[Version, str], tag_format: str) -> str:
8+
"""The tag and the software version might be different.
9+
10+
That's why this function exists.
11+
12+
Example:
13+
| tag | version (PEP 0440) |
14+
| --- | ------- |
15+
| v0.9.0 | 0.9.0 |
16+
| ver1.0.0 | 1.0.0 |
17+
| ver1.0.0.a0 | 1.0.0a0 |
18+
"""
19+
if isinstance(version, str):
20+
version = Version(version)
21+
22+
major, minor, patch = version.release
23+
prerelease = ""
24+
# version.pre is needed for mypy check
25+
if version.is_prerelease and version.pre:
26+
prerelease = f"{version.pre[0]}{version.pre[1]}"
27+
28+
t = Template(tag_format)
29+
return t.safe_substitute(
30+
version=version, major=major, minor=minor, patch=patch, prerelease=prerelease
31+
)

tests/test_bump_normalize_tag.py renamed to tests/test_tags.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22
from packaging.version import Version
33

4-
from commitizen import bump
4+
from commitizen.tags import tag_from_version
55

66
conversion = [
77
(("1.2.3", "v$version"), "v1.2.3"),
@@ -17,7 +17,7 @@
1717

1818

1919
@pytest.mark.parametrize("test_input,expected", conversion)
20-
def test_create_tag(test_input, expected):
20+
def test_tag_from_version(test_input, expected):
2121
version, format = test_input
22-
new_tag = bump.normalize_tag(Version(version), format)
22+
new_tag = tag_from_version(Version(version), format)
2323
assert new_tag == expected

0 commit comments

Comments
 (0)