diff mbox series

[v2,3/3] set_versions.py: make it possible to use a different releases.json file

Message ID 20260226-releases-json-v2-3-6ba4a3b37b24@bootlin.com
State New
Headers show
Series set_versions.py: build with versions from releases.json | expand

Commit Message

Antonin Godard Feb. 26, 2026, 2 p.m. UTC
Make it possible to use an external releases.json file through the
EXTERNAL_RELEASES_JSON environment variable. This will be used on the
Autobuilder to fetch the latest releases from
https://dashboard.yoctoproject.org/releases.json. Print a warning in
case the external ones has a different list of active releases, and show
how to update this file in the yocto-docs repository.

Having this done through an environment variable makes it much easier to
make this apply to all builds of the documentation (even older tags).

Signed-off-by: Antonin Godard <antonin.godard@bootlin.com>
---
 documentation/set_versions.py | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)
diff mbox series

Patch

diff --git a/documentation/set_versions.py b/documentation/set_versions.py
index aa7c57062..6fc318695 100755
--- a/documentation/set_versions.py
+++ b/documentation/set_versions.py
@@ -57,6 +57,25 @@  with open(os.path.join(os.path.dirname(os.path.realpath(__file__)), "releases.js
 
 activereleases, devbranch, ltsseries, release_series = get_releases(releases)
 
+external_releases_json = os.getenv("EXTERNAL_RELEASES_JSON", None)
+if external_releases_json is not None:
+    print(f"Using external {external_releases_json}")
+    with open(external_releases_json, "r") as f:
+        releases = json.load(f)
+
+    activereleases_e, devbranch, ltsseries, release_series = get_releases(releases)
+
+    if activereleases != activereleases_e:
+        print("WARNING: The external releases.json file has different active releases: "
+              f"local {activereleases} != external {activereleases_e}")
+        print("WARNING: Update of this file at"
+              " https://git.yoctoproject.org/yocto-docs/tree/documentation/releases.json"
+              " may be needed")
+        print("WARNING: Update using './documentation/tools/fetch-releases-json"
+              " documentation/releases.json' in yocto-docs")
+
+    activereleases = activereleases_e
+
 # used by run-docs-builds to get the default page
 if len(sys.argv) > 1 and sys.argv[1] == "getlatest":
     print(activereleases[0])