From 05ca7d114eabfb3e2a2b82ba06ccb7b152e0e2a5 Mon Sep 17 00:00:00 2001 From: Konstantin Kharlamov Date: Tue, 13 Dec 2022 01:50:02 +0300 Subject: [PATCH] bin/gen_release_notes.py: read Closes/Fixes tags case-insensitively Cc: mesa-stable Signed-off-by: Konstantin Kharlamov Reviewed-by: Eric Engestrom Part-of: --- bin/gen_release_notes.py | 4 ++-- bin/gen_release_notes_test.py | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/bin/gen_release_notes.py b/bin/gen_release_notes.py index 54af4970157..07cd3817157 100755 --- a/bin/gen_release_notes.py +++ b/bin/gen_release_notes.py @@ -175,7 +175,7 @@ inliner = Inliner(); async def gather_commits(version: str) -> str: p = await asyncio.create_subprocess_exec( - 'git', 'log', '--oneline', f'mesa-{version}..', '--grep', r'\(Closes\|Fixes\): \(https\|#\).*', + 'git', 'log', '--oneline', f'mesa-{version}..', '-i', '--grep', r'\(Closes\|Fixes\): \(https\|#\).*', stdout=asyncio.subprocess.PIPE) out, _ = await p.communicate() assert p.returncode == 0, f"git log didn't work: {version}" @@ -193,7 +193,7 @@ async def parse_issues(commits: str) -> typing.List[str]: out = _out.decode().split('\n') for line in reversed(out): - if not line.startswith(('Closes:', 'Fixes:')): + if not line.lower().startswith(('closes:', 'fixes:')): continue bug = line.split(':', 1)[1].strip() if (bug.startswith('https://gitlab.freedesktop.org/mesa/mesa') diff --git a/bin/gen_release_notes_test.py b/bin/gen_release_notes_test.py index 8ab76e451e6..bccbaf9fb92 100644 --- a/bin/gen_release_notes_test.py +++ b/bin/gen_release_notes_test.py @@ -176,6 +176,17 @@ async def test_gather_commits(): ''', ['36', '37'], ), + ( + '''\ + Parse Fixes/Closes in weird cases + + fixes: https://gitlab.freedesktop.org/mesa/mesa/issues/36 + fiXES: https://gitlab.freedesktop.org/mesa/mesa/issues/37 + closes: https://gitlab.freedesktop.org/mesa/mesa/issues/38 + cloSES: https://gitlab.freedesktop.org/mesa/mesa/issues/39 + ''', + ['36', '37', '38', '39'], + ), ]) async def test_parse_issues(content: str, bugs: typing.List[str]) -> None: mock_com = mock.AsyncMock(return_value=(textwrap.dedent(content).encode(), ''))