diff mbox series

[bitbake-devel] toaster: confirm bitbake versions

Message ID IA1PR11MB7677339C22226DD69F513388EAE32@IA1PR11MB7677.namprd11.prod.outlook.com
State New
Headers show
Series [bitbake-devel] toaster: confirm bitbake versions | expand

Commit Message

Reyna, David June 18, 2026, 3:22 a.m. UTC
From 7c5ec0b95f9dba932f74983f34d245646a371b7f Mon Sep 17 00:00:00 2001
From: David Reyna <David.Reyna@windriver.com>
Date: Wed, 17 Jun 2026 20:13:11 -0700
Subject: [PATCH] toaster: confirm bitbake version in 'gen_fixtures.py'

Also test that the version of bitbake in the release table in
'gen_fixtures.py' matches the registered version in the YP
releases URL.

Example output with induced error:
  $ ./check_fixtures.py
  Note: Active releases that are not yet in the Layer Index: ['blacksail']
  ERROR: Bitbake version mismatch for 'wrynose': 2.18 versus 2.16
  $

[YOCTO #16280]

Signed-off-by: David Reyna <David.Reyna@windriver.com>
---
 lib/toaster/orm/fixtures/check_fixtures.py | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/lib/toaster/orm/fixtures/check_fixtures.py b/lib/toaster/orm/fixtures/check_fixtures.py
index 386c2da40..b33c093da 100755
--- a/lib/toaster/orm/fixtures/check_fixtures.py
+++ b/lib/toaster/orm/fixtures/check_fixtures.py
@@ -31,6 +31,7 @@  index_branches = [
 # Grab the recent release branches and add master, so we can ignore old branches
 releases = fetch_json(RELEASE_URL)
 active_releases = []
+active_releases_bitbake = {}
 active_but_not_index = []
 for e in releases:
     if e["series"] != "current":
@@ -40,6 +41,7 @@  for e in releases:
         active_but_not_index.append(release)
     else:
         active_releases.append(release)
+    active_releases_bitbake[release] = e["bitbake_version"]
 active_releases.append("master")
 active_releases.append("head")
 active_releases.sort()
@@ -48,14 +50,27 @@  if active_but_not_index:
     print(f"Note: Active releases that are not yet in the Layer Index: {active_but_not_index}" )
 
 # Get the list of releases instantiated in the Toaster fixtures
-fixtures_releases = [x[0].lower() for x in fixtures.current_releases]
+fixtures_releases = []
+fixtures_releases_bitbake = {}
+for fixture in fixtures.current_releases:
+    release = fixture[0].lower()
+    fixtures_releases.append(release)
+    fixtures_releases_bitbake[release] = fixture[6]
 fixtures_releases.sort()
 
 # Report the resulting status
+ok = True
+for release in active_releases:
+    if release in ("master","head"):
+        continue
+    if active_releases_bitbake[release] != fixtures_releases_bitbake[release]:
+        print(f"ERROR: Bitbake version mismatch for '{release}': {active_releases_bitbake[release]} versus {fixtures_releases_bitbake[release]}")
+        ok = False
 if set(active_releases) != set(fixtures_releases):
     print(f"WARNING: Active releases don't match toaster configured releases, the difference is: {set(active_releases).difference(set(fixtures_releases))}")
     print(f"Active releases: {sorted(active_releases)}")
     print(f"Toaster configured releases: {sorted(fixtures_releases)}")
-else:
+    ok = False
+if ok:
     print("Success, configuration matches")