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 @@ -41,6 +41,13 @@ repos:
4141 entry : uv run ./scripts/generate_select.py
4242 files : ^scripts/generate_select\.py|sqlmodel/sql/_expression_select_gen\.py\.jinja2$
4343
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 : ^docs/release-notes\.md$
49+ pass_filenames : false
50+
4451 - id : generate-readme
4552 language : unsupported
4653 name : generate README.md from index.md
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 = "docs/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