Publish 1.18.0.1 release catalogs and bootloader picker choices
This commit is contained in:
1 parent
03214a16df
commit
ec478c30ed
17 files changed
+37893
-8184
No files matched your search
@@ -18,6 +18,12 @@ ROOT = Path(__file__).resolve().parents[1]
|
||||
SUFFIXES = {".bin", ".zip", ".uf2", ".hex"}
|
||||
PLATFORMS = {"ESP32_PLATFORM": "esp32", "NRF52_PLATFORM": "nrf52",
|
||||
"RP2040_PLATFORM": "noflash", "STM32_PLATFORM": "noflash"}
|
||||
ADDITIONAL_HARDWARE_CARDS = {
|
||||
("esp32", "Waveshare_S3_LR1121"): {
|
||||
"maker": "waveshare", "name": "Waveshare ESP32-S3 LR1121", "type": "esp32"},
|
||||
("esp32", "Wio_Tracker_L2"): {
|
||||
"maker": "seeed", "name": "Seeed Wio Tracker L2", "type": "esp32"},
|
||||
}
|
||||
|
||||
|
||||
def identity(name):
|
||||
@@ -149,9 +155,17 @@ def generate(catalog, plan, family, records, profiles, repo):
|
||||
# A download-only card is an installer restriction, not a chip.
|
||||
# Retain that restriction for new profiles of the same hardware.
|
||||
indexes.update(by_hardware.get(("noflash", parsed["hardware"]), set()))
|
||||
card_key = (platform, parsed["hardware"])
|
||||
if not indexes and card_key in ADDITIONAL_HARDWARE_CARDS:
|
||||
card = ADDITIONAL_HARDWARE_CARDS[card_key]
|
||||
if card["maker"] not in catalog["maker"]:
|
||||
raise ValueError("new hardware card has no curated maker")
|
||||
indexes = {len(result["device"])}
|
||||
result["device"].append({**card, "firmware": []})
|
||||
by_hardware[card_key] = indexes
|
||||
if len(indexes) != 1:
|
||||
raise ValueError(f"new profile needs an exact hardware card mapping: {target}")
|
||||
if any(catalog["device"][i]["type"] not in (platform, "noflash") for i in indexes):
|
||||
if any(result["device"][i]["type"] not in (platform, "noflash") for i in indexes):
|
||||
raise ValueError("firmware platform differs from its hardware card")
|
||||
role, title = {"repeater": ("repeater", "Repeater"),
|
||||
"room": ("roomServer", "Room Server"),
|
||||
@@ -204,7 +218,7 @@ def generate(catalog, plan, family, records, profiles, repo):
|
||||
f"SOURCE - https://github.com/{repo}/tree/{row.get('source_commit', plan['source'])}",
|
||||
f"RELEASE - https://github.com/{repo}/releases/tag/{tag}"]
|
||||
for index in sorted(indexes):
|
||||
install_platform = catalog["device"][index]["type"]
|
||||
install_platform = result["device"][index]["type"]
|
||||
card_notes = list(notes)
|
||||
if install_platform == "noflash":
|
||||
card_notes.append("MESH AMERICA - Downloads only. In-app flashing is not qualified for this hardware card.")
|
||||
|
||||
@@ -10,7 +10,7 @@ import re
|
||||
from pathlib import Path
|
||||
|
||||
from package_esp32_partition_migration import BOARDS
|
||||
from package_cascade_release import nrf52_sensor_profile
|
||||
from package_cascade_release import embedded_bootloader_variant, nrf52_sensor_profile
|
||||
from station_g3_profiles import runtime_metadata as station_g3_metadata
|
||||
from optional_display_profiles import runtime_metadata as display_metadata
|
||||
from consolidated_profiles import runtime_metadata as consolidation_metadata
|
||||
@@ -91,6 +91,15 @@ def runtime_metadata(manifest, mqtt, release_source=None):
|
||||
if not isinstance(source, str) or not re.fullmatch(r'[0-9a-f]{40}', source):
|
||||
raise ValueError('Sensor profiles require an exact source commit: ' + manifest['target'])
|
||||
result.update(sensorProfile=sensor_profile, sensorProfileSource=source)
|
||||
if (manifest.get('embedded_bootloader') is not None
|
||||
or 'bootloader.embedded' in capabilities
|
||||
or '-with-bootloader-' in manifest.get('artifact_target', '')):
|
||||
embedded_bootloader_variant(manifest)
|
||||
source = manifest.get('source_commit', release_source)
|
||||
if not isinstance(source, str) or not re.fullmatch(r'[0-9a-f]{40}', source):
|
||||
raise ValueError('Embedded bootloader requires an exact source commit: ' + manifest['target'])
|
||||
result.update(embeddedBootloader=dict(manifest['embedded_bootloader']),
|
||||
embeddedBootloaderSource=source)
|
||||
if {'logging.usb.packets', 'logging.usb.control'} <= packaged:
|
||||
result['loggingModes'] = ['none', 'usb', 'wifi', 'both'] if mqtt else ['none', 'usb']
|
||||
result['loggingControl'] = 'logging.output' if mqtt else 'usb.logging'
|
||||
|
||||
Reference in new issue
Block a user