From 30f7b55e475965d31585bbfb0bd03f234cda16b0 Mon Sep 17 00:00:00 2001 From: Dylan Baker Date: Wed, 4 Aug 2021 11:32:19 -0700 Subject: [PATCH] bin/gen_release_notes: Don't consider issues for other projects We have enough commits in mesa that have external dependencies that we need to be sure that a Closes: https://... is actually for mesa and not for another project. Reviewed-by: Eric Engestrom Part-of: --- bin/gen_release_notes.py | 5 +++-- bin/gen_release_notes_test.py | 22 ++++++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/bin/gen_release_notes.py b/bin/gen_release_notes.py index 7f62228d59a..bfc65ca92b7 100755 --- a/bin/gen_release_notes.py +++ b/bin/gen_release_notes.py @@ -198,10 +198,11 @@ async def parse_issues(commits: str) -> typing.List[str]: break else: raise Exception('No closes found?') - if bug.startswith('h'): + + if bug.startswith('https://gitlab.freedesktop.org/mesa/mesa'): # This means we have a bug in the form "Closes: https://..." issues.append(os.path.basename(urllib.parse.urlparse(bug).path)) - else: + elif bug.startswith('#'): issues.append(bug.lstrip('#')) return issues diff --git a/bin/gen_release_notes_test.py b/bin/gen_release_notes_test.py index eca0c4b8af4..194fbc745ac 100644 --- a/bin/gen_release_notes_test.py +++ b/bin/gen_release_notes_test.py @@ -77,6 +77,8 @@ async def test_gather_commits(): [ # It is important to have the title on a new line, as # textwrap.dedent wont work otherwise. + + # Test the `Closes: #N` syntax ( '''\ A commit @@ -87,6 +89,8 @@ async def test_gather_commits(): ''', ['1'], ), + + # Test the Full url ( '''\ A commit with no body @@ -95,6 +99,24 @@ async def test_gather_commits(): ''', ['3456'], ), + + # Test projects that are not mesa + ( + '''\ + A commit for libdrm + + Closes: https://gitlab.freedesktop.org/mesa/drm/-/3456 + ''', + [], + ), + ( + '''\ + A commit for for something else completely + + Closes: https://github.com/Organiztion/project/1234 + ''', + [], + ), ]) async def test_parse_issues(content: str, bugs: typing.List[str]) -> None: mock_com = mock.AsyncMock(return_value=(textwrap.dedent(content).encode(), ''))