Align spec discovery for multi-digit versions

This commit is contained in:
zvecr
2026-10-15 01:06:10 +01:00
parent 6881b1fc69
commit ea8bfd168f
2 changed files with 16 additions and 4 deletions
+6 -3
View File
@@ -8,10 +8,13 @@ def list_lighting_versions(feature):
"""Return available versions - sorted newest first
"""
ret = []
for file in Path('data/constants/lighting/').glob(f'{feature}_[0-9].[0-9].[0-9].hjson'):
ret.append(file.stem.split('_')[-1])
for file in Path('data/constants/lighting/').glob(f'{feature}_*.hjson'):
version = file.stem[len(feature) + 1:]
parts = version.split('.')
if len(parts) == 3 and all(part.isascii() and part.isdigit() for part in parts):
ret.append(version)
ret.sort(reverse=True)
ret.sort(key=lambda version: tuple(map(int, version.split('.'))), reverse=True)
return ret
+10 -1
View File
@@ -78,7 +78,16 @@ def get_xap_definition_files():
"""Get the sorted list of XAP definition files, from <QMK>/data/xap.
"""
xap_defs = qmk.constants.QMK_FIRMWARE / "data" / "xap"
return list(sorted(xap_defs.glob('**/xap_*.hjson')))
versions = []
for file in xap_defs.glob('**/xap_*.hjson'):
version = file.stem[len('xap_'):]
parts = version.split('.')
if len(parts) == 3 and all(part.isascii() and part.isdigit() for part in parts):
versions.append(version)
versions.sort(key=lambda version: tuple(map(int, version.split('.'))))
return list(map(lambda version: xap_defs / f'xap_{version}.hjson', versions))
def update_xap_definitions(original, new):