Page MenuHomeSoftware Heritage

No OneTemporary

diff --git a/bchauvet/generate_roadmap_doc.py b/bchauvet/generate_roadmap_doc.py
new file mode 100644
index 0000000..a0ba45f
--- /dev/null
+++ b/bchauvet/generate_roadmap_doc.py
@@ -0,0 +1,89 @@
+import gitlab
+from datetime import datetime
+
+YEAR = 2023
+BOARD_URL = "https://gitlab-staging.swh.network/groups/swh/-/milestones?sort=name_asc"
+ROADMAP_PREFIX = "[Roadmap - $GOAL] "
+SWH_GROUP = 25
+
+
+def write_header(output):
+
+ output.write(".. _roadmap-current:\n")
+ output.write(f".. _roadmap-{YEAR}:\n")
+ output.write("\n")
+ output.write(f"Roadmap {YEAR}\n")
+ output.write("============\n")
+ output.write("\n")
+ output.write(
+ f"(Version 1.0, last modified {datetime.now().strftime('%Y-%m-%d')})\n"
+ )
+ output.write("\n")
+ output.write(
+ "This document provides an overview of the technical roadmap of the Software\n"
+ )
+ output.write(f"Heritage initiative for the year {YEAR}.\n")
+ output.write("\n")
+ output.write(
+ "Live tracking of the roadmap implementation progress during the year is\n"
+ )
+ output.write("available from a dedicated `GitLab board\n")
+ output.write(f"<{BOARD_URL}>`_.\n")
+ output.write("\n")
+ output.write(".. contents::\n")
+ output.write(":depth: 3\n")
+ output.write("..\n")
+
+
+def write_milestones(output):
+ gl = gitlab.Gitlab.from_config("staging", ["./python-gitlab.cfg"])
+ gl.auth()
+ swh_group = gl.groups.get(SWH_GROUP)
+
+ _milestones = swh_group.milestones.list(get_all=True)
+
+ goals = [
+ "Collect",
+ "Preserve",
+ "Share",
+ "Documentation",
+ "Technical Debt",
+ "Tooling and Infrastructure",
+ ]
+
+ milestones = [[]] * len(goals)
+
+ # group milestones by Goal
+ for i in range(len(goals)):
+ goal = goals[i]
+ prefix = ROADMAP_PREFIX.replace("$GOAL", goal).lower()
+ for milestone in _milestones:
+ if milestone.title.lower().startswith(prefix):
+ milestone.title = milestone.title[len(prefix) :]
+ milestones[i].append(milestone)
+
+ # display goals & milestones
+ for i in range(len(goals)):
+ goal = goals[i]
+ output.write("\n")
+ output.write(f"{goal}\n")
+ output.write("-" * len(goal) + "\n")
+ output.write("\n")
+ for milestone in milestones[i]:
+ output.write("\n")
+ output.write(f"{milestone.title}\n")
+ output.write("^" * len(milestone.title) + "\n")
+ output.write("\n")
+
+ output.write(f"- `Milestone: <{milestone.web_url}>`__\n")
+ output.write(f"{milestone.description}\n")
+ output.write("\n")
+
+
+output = open(f"docs/roadmap-{YEAR}.rst", "w")
+
+write_header(output)
+write_milestones(output)
+
+
+output.close()

File Metadata

Mime Type
text/x-diff
Expires
Mon, Aug 18, 9:04 PM (21 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3290717

Event Timeline