forked from aio-libs/aiohttp
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcleanup_changes.py
More file actions
executable file
·45 lines (38 loc) · 1.14 KB
/
cleanup_changes.py
File metadata and controls
executable file
·45 lines (38 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/env python
# Run me after the backport branch release to cleanup CHANGES records
# that was backported and published.
import re
import subprocess
from pathlib import Path
ALLOWED_SUFFIXES = (
"bugfix",
"feature",
"deprecation",
"breaking",
"doc",
"packaging",
"contrib",
"misc",
)
PATTERN = re.compile(
r"(\d+|[0-9a-f]{8}|[0-9a-f]{7}|[0-9a-f]{40})\.("
+ "|".join(ALLOWED_SUFFIXES)
+ r")(\.\d+)?(\.rst)?",
)
def main():
root = Path(__file__).parent.parent
delete = []
changes = (root / "CHANGES.rst").read_text()
for fname in (root / "CHANGES").iterdir():
match = PATTERN.match(fname.name)
if match is not None:
commit_issue_or_pr = match.group(1)
tst_issue_or_pr = f":issue:`{commit_issue_or_pr}`"
tst_commit = f":commit:`{commit_issue_or_pr}`"
if tst_issue_or_pr in changes or tst_commit in changes:
subprocess.run(["git", "rm", fname])
delete.append(fname.name)
print("Deleted CHANGES records:", " ".join(delete))
print("Please verify and commit")
if __name__ == "__main__":
main()