Skip to content

Commit 96cc5d3

Browse files
authored
Fix changelog generation during release. (#6394)
1 parent 342bb9e commit 96cc5d3

File tree

1 file changed

+20
-8
lines changed

1 file changed

+20
-8
lines changed

tasks/release.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,16 @@ def get_build_dir(ctx):
4545
return _get_git_root(ctx) / "build"
4646

4747

48-
def _render_log():
48+
def _render_log(ctx=None, version=None):
4949
"""Totally tap into Towncrier internals to get an in-memory result."""
50-
rendered = subprocess.check_output(["towncrier", "--draft"]).decode("utf-8")
50+
if ctx and not version:
51+
version = find_version(ctx)
52+
53+
cmd = ["towncrier", "--draft"]
54+
if version:
55+
cmd.extend(["--version", version])
56+
57+
rendered = subprocess.check_output(cmd).decode("utf-8")
5158
return rendered
5259

5360

@@ -69,20 +76,23 @@ def release(
6976
dry_run=dry_run,
7077
pre=pre,
7178
)
72-
tag_content = _render_log()
79+
tag_content = _render_log(ctx, version)
7380
if dry_run:
74-
ctx.run("towncrier --draft > CHANGELOG.draft.md")
81+
# Use the correct version when generating the draft
82+
ctx.run(f"towncrier --draft --version={version} > CHANGELOG.draft.md")
7583
log("would remove: news/*")
7684
log("would remove: CHANGELOG.draft.md")
7785
log("would update: pipenv/pipenv.1")
7886
log(f'Would commit with message: "Release v{version}"')
7987
else:
8088
if pre:
8189
log("generating towncrier draft...")
82-
ctx.run("towncrier --draft > CHANGELOG.draft.md")
90+
# Use the correct version when generating the draft
91+
ctx.run(f"towncrier --draft --version={version} > CHANGELOG.draft.md")
8392
ctx.run(f"git add {get_version_file(ctx).as_posix()}")
8493
else:
85-
ctx.run("towncrier")
94+
# Use the correct version when generating the changelog
95+
ctx.run(f"towncrier --version={version}")
8696
ctx.run(f"git add CHANGELOG.md news/ {get_version_file(ctx).as_posix()}")
8797
log("removing changelog draft if present")
8898
draft_changelog = pathlib.Path("CHANGELOG.draft.md")
@@ -185,12 +195,14 @@ def generate_contributing_md(ctx, commit=False):
185195
@invoke.task
186196
def generate_changelog(ctx, commit=False, draft=False):
187197
log("Generating changelog...")
198+
# Get the current version to ensure it's used in the changelog
199+
version = find_version(ctx)
188200
if draft:
189201
commit = False
190202
log("Writing draft to file...")
191-
ctx.run("towncrier --draft > CHANGELOG.draft.md")
203+
ctx.run(f"towncrier --draft --version={version} > CHANGELOG.draft.md")
192204
else:
193-
ctx.run("towncrier")
205+
ctx.run(f"towncrier --version={version}")
194206
if commit:
195207
log("Committing...")
196208
ctx.run("git add CHANGELOG.md")

0 commit comments

Comments
 (0)