Skip to content

Commit cccb57f

Browse files
committed
fix: add edge branch support to generate_stable_yaml()
The generate_stable_yaml() function was missing edge branch handling, which caused boards with only edge branch (like radxa-nio-12l) to be excluded from the stable release YAML files. Changes: - Add edge branch filtering (with exclusion of boards that have current) - Add edge branch YAML anchor generation for all performance categories - Include edge branches in all stable target definitions - Update desktop targets to include edge branches where appropriate The edge branch handling follows the same pattern as current/vendor/legacy branches, with the important addition that edge boards are excluded when a board also has a current branch (to avoid duplication). Fixes the issue where radxa-nio-12l (which only has edge branch) was not appearing in targets-release-standard-support.yaml.
1 parent e7308c5 commit cccb57f

1 file changed

Lines changed: 84 additions & 6 deletions

File tree

scripts/generate_targets.py

Lines changed: 84 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,16 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
620620
legacy_loongarch = [b for b in conf_wip_boards if b['branch'] == 'legacy' and b['is_fast'] == 'loongarch']
621621
legacy_headless = [b for b in conf_wip_boards if b['branch'] == 'legacy' and b['is_fast'] is None]
622622

623+
# Build set of boards that have current branch (to exclude from edge)
624+
current_boards = {b['board'] for b in conf_wip_boards if b['branch'] == 'current'}
625+
626+
# Only include edge boards for boards that don't have current branch
627+
edge_fast = [b for b in conf_wip_boards if b['branch'] == 'edge' and b['is_fast'] is True and b['board'] not in current_boards]
628+
edge_slow = [b for b in conf_wip_boards if b['branch'] == 'edge' and b['is_fast'] is False and b['board'] not in current_boards]
629+
edge_riscv64 = [b for b in conf_wip_boards if b['branch'] == 'edge' and b['is_fast'] == 'riscv64' and b['board'] not in current_boards]
630+
edge_loongarch = [b for b in conf_wip_boards if b['branch'] == 'edge' and b['is_fast'] == 'loongarch' and b['board'] not in current_boards]
631+
edge_headless = [b for b in conf_wip_boards if b['branch'] == 'edge' and b['is_fast'] is None and b['board'] not in current_boards]
632+
623633
# Current branch lists
624634
yaml += """# Stable builds - fast HDMI (quad-core+ or modern SoCs)
625635
stable-current-fast-hdmi: &stable-current-fast-hdmi
@@ -729,6 +739,42 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
729739
yaml += format_board_item(board_data, include_extensions=True) + '\n'
730740
yaml += ' # end of auto generated section\n\n'
731741

742+
# Edge branch lists
743+
if edge_fast:
744+
yaml += ' stable-edge-fast-hdmi: &stable-edge-fast-hdmi\n'
745+
yaml += ' # auto generated section\n'
746+
for board_data in sorted(edge_fast, key=lambda x: x['board']):
747+
yaml += format_board_item(board_data, include_extensions=True) + '\n'
748+
yaml += ' # end of auto generated section\n\n'
749+
750+
if edge_slow:
751+
yaml += ' stable-edge-slow-hdmi: &stable-edge-slow-hdmi\n'
752+
yaml += ' # auto generated section\n'
753+
for board_data in sorted(edge_slow, key=lambda x: x['board']):
754+
yaml += format_board_item(board_data, include_extensions=True) + '\n'
755+
yaml += ' # end of auto generated section\n\n'
756+
757+
if edge_riscv64:
758+
yaml += ' stable-edge-riscv64: &stable-edge-riscv64\n'
759+
yaml += ' # auto generated section\n'
760+
for board_data in sorted(edge_riscv64, key=lambda x: x['board']):
761+
yaml += format_board_item(board_data, include_extensions=True) + '\n'
762+
yaml += ' # end of auto generated section\n\n'
763+
764+
if edge_loongarch:
765+
yaml += ' stable-edge-loongarch: &stable-edge-loongarch\n'
766+
yaml += ' # auto generated section\n'
767+
for board_data in sorted(edge_loongarch, key=lambda x: x['board']):
768+
yaml += format_board_item(board_data, include_extensions=True) + '\n'
769+
yaml += ' # end of auto generated section\n\n'
770+
771+
if edge_headless:
772+
yaml += ' stable-edge-headless: &stable-edge-headless\n'
773+
yaml += ' # auto generated section\n'
774+
for board_data in sorted(edge_headless, key=lambda x: x['board']):
775+
yaml += format_board_item(board_data, include_extensions=True) + '\n'
776+
yaml += ' # end of auto generated section\n\n'
777+
732778
yaml += """# automated lists stop
733779
734780
targets:
@@ -774,6 +820,16 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
774820
yaml += ' - *stable-legacy-loongarch\n'
775821
if legacy_headless:
776822
yaml += ' - *stable-legacy-headless\n'
823+
if edge_fast:
824+
yaml += ' - *stable-edge-fast-hdmi\n'
825+
if edge_slow:
826+
yaml += ' - *stable-edge-slow-hdmi\n'
827+
if edge_riscv64:
828+
yaml += ' - *stable-edge-riscv64\n'
829+
if edge_loongarch:
830+
yaml += ' - *stable-edge-loongarch\n'
831+
if edge_headless:
832+
yaml += ' - *stable-edge-headless\n'
777833

778834
yaml += """
779835
# Ubuntu stable minimal
@@ -818,9 +874,19 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
818874
yaml += ' - *stable-legacy-loongarch\n'
819875
if legacy_headless:
820876
yaml += ' - *stable-legacy-headless\n'
877+
if edge_fast:
878+
yaml += ' - *stable-edge-fast-hdmi\n'
879+
if edge_slow:
880+
yaml += ' - *stable-edge-slow-hdmi\n'
881+
if edge_riscv64:
882+
yaml += ' - *stable-edge-riscv64\n'
883+
if edge_loongarch:
884+
yaml += ' - *stable-edge-loongarch\n'
885+
if edge_headless:
886+
yaml += ' - *stable-edge-headless\n'
821887

822888
# Ubuntu stable XFCE desktop (slow HDMI only)
823-
if current_slow:
889+
if current_slow or edge_slow:
824890
yaml += """
825891
# Ubuntu stable XFCE desktop (slow HDMI only)
826892
desktop-stable-ubuntu-xfce:
@@ -841,9 +907,11 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
841907
"""
842908
if vendor_slow:
843909
yaml += ' - *stable-vendor-slow-hdmi\n'
910+
if edge_slow:
911+
yaml += ' - *stable-edge-slow-hdmi\n'
844912

845913
# Ubuntu stable GNOME desktop (fast HDMI only)
846-
if current_fast or legacy_fast:
914+
if current_fast or legacy_fast or edge_fast:
847915
yaml += """
848916
# Ubuntu stable GNOME desktop (fast HDMI only)
849917
desktop-stable-ubuntu-gnome:
@@ -867,9 +935,11 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
867935
yaml += ' - *stable-vendor-fast-hdmi\n'
868936
if legacy_fast:
869937
yaml += ' - *stable-legacy-fast-hdmi\n'
938+
if edge_fast:
939+
yaml += ' - *stable-edge-fast-hdmi\n'
870940

871941
# Ubuntu stable KDE Neon desktop (fast HDMI only)
872-
if current_fast:
942+
if current_fast or edge_fast:
873943
yaml += """
874944
# Ubuntu stable KDE Neon desktop (fast HDMI only)
875945
desktop-stable-ubuntu-kde-neon:
@@ -890,6 +960,8 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
890960
"""
891961
if vendor_fast:
892962
yaml += ' - *stable-vendor-fast-hdmi\n'
963+
if edge_fast:
964+
yaml += ' - *stable-edge-fast-hdmi\n'
893965

894966
# Ubuntu stable XFCE desktop for legacy fast HDMI boards
895967
if legacy_fast:
@@ -913,7 +985,7 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
913985
"""
914986

915987
# Ubuntu stable XFCE desktop for RISC-V boards
916-
if current_riscv64 or vendor_riscv64:
988+
if current_riscv64 or vendor_riscv64 or edge_riscv64:
917989
yaml += """
918990
# Ubuntu stable XFCE desktop for RISC-V boards
919991
desktop-stable-ubuntu-riscv64-xfce:
@@ -935,14 +1007,16 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
9351007
yaml += ' - *stable-current-riscv64\n'
9361008
if vendor_riscv64:
9371009
yaml += ' - *stable-vendor-riscv64\n'
1010+
if edge_riscv64:
1011+
yaml += ' - *stable-edge-riscv64\n'
9381012

9391013
if manual_content:
9401014
# Indent manual content by 2 spaces to be under targets:
9411015
indented_manual = '\n'.join(' ' + line if line.strip() else line for line in manual_content.split('\n'))
9421016
yaml += '\n' + indented_manual
9431017

9441018
# Add riscv64 minimal target if any riscv64 boards exist
945-
if current_riscv64 or vendor_riscv64:
1019+
if current_riscv64 or vendor_riscv64 or edge_riscv64:
9461020
yaml += """
9471021
# Ubuntu stable minimal - RISC-V
9481022
minimal-stable-ubuntu-riscv:
@@ -961,10 +1035,12 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
9611035
yaml += ' - *stable-current-riscv64\n'
9621036
if vendor_riscv64:
9631037
yaml += ' - *stable-vendor-riscv64\n'
1038+
if edge_riscv64:
1039+
yaml += ' - *stable-edge-riscv64\n'
9641040
yaml += '\n'
9651041

9661042
# Add loongarch target if any loongarch boards exist
967-
if current_loongarch or vendor_loongarch:
1043+
if current_loongarch or vendor_loongarch or edge_loongarch:
9681044
yaml += """
9691045
# Ubuntu stable minimal - LoongArch
9701046
minimal-stable-ubuntu-loongarch:
@@ -983,6 +1059,8 @@ def generate_stable_yaml(conf_wip_boards, manual_content=""):
9831059
yaml += ' - *stable-current-loongarch\n'
9841060
if vendor_loongarch:
9851061
yaml += ' - *stable-vendor-loongarch\n'
1062+
if edge_loongarch:
1063+
yaml += ' - *stable-edge-loongarch\n'
9861064
yaml += '\n'
9871065

9881066
return yaml

0 commit comments

Comments
 (0)