Skip to content

Commit 689c0f3

Browse files
authored
Merge pull request #65 from mosampaio/master
feat: expose current_version to changelog templates
2 parents 377de8c + a9b0002 commit 689c0f3

File tree

7 files changed

+58
-1
lines changed

7 files changed

+58
-1
lines changed
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"type": "minor",
3+
"description": "Expose current_version to changelog templates."
4+
}

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,9 @@ Then, you can show the attributes in the changelog template. For example:
9696
```
9797
# Changelog
9898
Note: version releases in the 0.x.y range may introduce breaking changes.
99+
100+
# Current version: {{ current_version }}
101+
99102
{% for release in releases %}
100103
101104
## {{ release.version }} (<DATE>)

semversioner/core.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,11 @@ def generate_changelog(self, version: Optional[str] = None, template: str = DEFA
7171
if version is not None:
7272
releases = [x for x in releases if x.version == version]
7373

74-
return Template(template, trim_blocks=True).render(releases=releases)
74+
current_version = self.get_last_version()
75+
return Template(template, trim_blocks=True).render(
76+
releases=releases,
77+
current_version=current_version,
78+
)
7579

7680
def release(self) -> Release:
7781
"""

tests/cli_test.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -257,6 +257,18 @@ def test_generate_changelog_with_custom_template(self) -> None:
257257

258258
self.assertEqual(result.output, read_file("template_03_readme.md"))
259259

260+
result = command_processor([
261+
["changelog", "--template", str(get_file("template_04.j2"))]
262+
], self.directory_name)
263+
264+
self.assertEqual(result.output, read_file("template_04_readme.md"))
265+
266+
result = command_processor([
267+
["changelog", "--version", "1.0.0", "--template", str(get_file("template_04.j2"))]
268+
], self.directory_name)
269+
270+
self.assertEqual(result.output, fixtures.CHANGELOG_4_TEMPLATE_CURRENT_VERSION_PARTIAL)
271+
260272
result = command_processor([
261273
["changelog"]
262274
], self.directory_name)

tests/fixtures.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,16 @@
6161
- patch: This is my patch description
6262
"""
6363

64+
CHANGELOG_4_TEMPLATE_CURRENT_VERSION_PARTIAL = """# Changelog
65+
Current version: 2.0.0
66+
67+
## 1.0.0
68+
69+
- major: This is my major description
70+
- minor: This is my minor description
71+
- patch: This is my patch description
72+
"""
73+
6474
# Existing Data Fixtures
6575

6676
VERSION_0_1_0 = """[

tests/resources/template_04.j2

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Changelog
2+
Current version: {{ current_version }}
3+
{% for release in releases %}
4+
5+
## {{ release.version }}
6+
7+
{% for change in release.changes %}
8+
- {{ change.type }}: {{ change.description }}
9+
{% endfor %}
10+
{% endfor %}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Changelog
2+
Current version: 2.0.0
3+
4+
## 2.0.0
5+
6+
- major: This is my major description
7+
- minor: This is my minor description
8+
- patch: This is my patch description
9+
10+
## 1.0.0
11+
12+
- major: This is my major description
13+
- minor: This is my minor description
14+
- patch: This is my patch description

0 commit comments

Comments
 (0)