Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b163ac4

Browse files
committed
Override today for testing with reproducible output
1 parent ceb4034 commit b163ac4

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

.github/workflows/release-cycle.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,10 +26,7 @@ jobs:
2626
run: python -m pip install jinja2
2727

2828
- name: Generate release cycle output
29-
run: python -I -bb -X dev -X warn_default_encoding -W error _tools/generate_release_cycle.py
30-
31-
- name: Ignore release-cycle.svg, which encodes the current date
32-
run: git restore include/release-cycle.svg
29+
run: python -I -bb -X dev -X warn_default_encoding -W error _tools/generate_release_cycle.py --today 2023-01-21
3330

3431
- name: Check for differences
3532
run: |

_tools/generate_release_cycle.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Read in a JSON and generate two CSVs and an SVG file."""
22
from __future__ import annotations
33

4+
import argparse
45
import csv
56
import datetime as dt
67
import json
@@ -66,7 +67,7 @@ def write_csv(self) -> None:
6667
csv_file.writeheader()
6768
csv_file.writerows(versions.values())
6869

69-
def write_svg(self) -> None:
70+
def write_svg(self, today: str) -> None:
7071
"""Output SVG file."""
7172
env = jinja2.Environment(
7273
loader=jinja2.FileSystemLoader("_tools/"),
@@ -123,17 +124,28 @@ def format_year(year: int) -> str:
123124
years=range(first_date.year, last_date.year),
124125
LINE_HEIGHT=LINE_HEIGHT,
125126
versions=list(reversed(self.sorted_versions)),
126-
today=dt.date.today(),
127+
today=dt.datetime.strptime(today, "%Y-%m-%d").date(),
127128
year_to_x=year_to_x,
128129
date_to_x=date_to_x,
129130
format_year=format_year,
130131
).dump(f)
131132

132133

133134
def main() -> None:
135+
parser = argparse.ArgumentParser(
136+
description=__doc__, formatter_class=argparse.ArgumentDefaultsHelpFormatter
137+
)
138+
parser.add_argument(
139+
"--today",
140+
default=str(dt.date.today()),
141+
metavar=" YYYY-MM-DD",
142+
help="Override today for testing",
143+
)
144+
args = parser.parse_args()
145+
134146
versions = Versions()
135147
versions.write_csv()
136-
versions.write_svg()
148+
versions.write_svg(args.today)
137149

138150

139151
if __name__ == "__main__":

0 commit comments

Comments
 (0)