File tree Expand file tree Collapse file tree 2 files changed +47
-0
lines changed
Expand file tree Collapse file tree 2 files changed +47
-0
lines changed Original file line number Diff line number Diff line change @@ -40,3 +40,10 @@ repos:
4040 require_serial : true
4141 language : unsupported
4242 pass_filenames : false
43+
44+ - id : add-release-date
45+ language : unsupported
46+ name : add date to latest release header
47+ entry : uv run python scripts/add_latest_release_date.py
48+ files : ^release-notes\.md$
49+ pass_filenames : false
Original file line number Diff line number Diff line change 1+ """Check release-notes.md and add today's date to the latest release header if missing."""
2+
3+ import re
4+ import sys
5+ from datetime import date
6+
7+ RELEASE_NOTES_FILE = "release-notes.md"
8+ RELEASE_HEADER_PATTERN = re .compile (r"^## (\d+\.\d+\.\d+)\s*(\(.*\))?\s*$" )
9+
10+
11+ def main () -> None :
12+ with open (RELEASE_NOTES_FILE ) as f :
13+ lines = f .readlines ()
14+
15+ for i , line in enumerate (lines ):
16+ match = RELEASE_HEADER_PATTERN .match (line )
17+ if not match :
18+ continue
19+
20+ version = match .group (1 )
21+ date_part = match .group (2 )
22+
23+ if date_part :
24+ print (f"Latest release { version } already has a date: { date_part } " )
25+ sys .exit (0 )
26+
27+ today = date .today ().isoformat ()
28+ lines [i ] = f"## { version } ({ today } )\n "
29+ print (f"Added date: { version } ({ today } )" )
30+
31+ with open (RELEASE_NOTES_FILE , "w" ) as f :
32+ f .writelines (lines )
33+ sys .exit (0 )
34+
35+ print ("No release header found" )
36+ sys .exit (1 )
37+
38+
39+ if __name__ == "__main__" :
40+ main ()
You can’t perform that action at this time.
0 commit comments