summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan.c.baker@intel.com>2021-08-04 11:32:19 -0700
committerMarge Bot <eric+marge@anholt.net>2021-08-04 23:03:57 +0000
commit30f7b55e475965d31585bbfb0bd03f234cda16b0 (patch)
tree2f9bd26512f13be7902bec22bb0d03a1419beefd
parent9dc3672b00f4f04c57b46a6fa675ecd2c03bad07 (diff)
downloadmesa-30f7b55e475965d31585bbfb0bd03f234cda16b0.tar.gz
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 <eric@engestrom.ch> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12201>
-rwxr-xr-xbin/gen_release_notes.py5
-rw-r--r--bin/gen_release_notes_test.py22
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(), ''))