bin/gen_release_notes.py: read Closes/Fixes tags case-insensitively
authorKonstantin Kharlamov <Hi-Angel@yandex.ru>
Mon, 12 Dec 2022 22:50:02 +0000 (01:50 +0300)
committerEric Engestrom <eric@engestrom.ch>
Wed, 11 Jan 2023 17:44:20 +0000 (17:44 +0000)
Cc: mesa-stable
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20241>
(cherry picked from commit 05ca7d114eabfb3e2a2b82ba06ccb7b152e0e2a5)

.pick_status.json
bin/gen_release_notes.py
bin/gen_release_notes_test.py

index 69b6984..f56a5e4 100644 (file)
         "description": "bin/gen_release_notes.py: read Closes/Fixes tags case-insensitively",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
index 54af497..07cd381 100755 (executable)
@@ -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')
index 8ab76e4..bccbaf9 100644 (file)
@@ -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(), ''))