triage tromso release and pipeline
Overview
This document gives the technical status and decisions for four areas: release management, upstream junction migration, multi-runner CI optimization, and namespace cleanup.
1. Stable Release Promotion and Nightly Pipeline (Issues #83, #139)
Status and release gate
The release pipeline for Tromso needs these gates before the first stable release and publication of its OCI and R2 ISO artifacts:
- Multi-runner nightly build (
build-tromso-multirunner.yml): The build must complete throughbuild_final. It must produceghcr.io/tuna-os/tromso:latestand publish the chunk cache packages (cache-tromso-*). - Live ISO generation (
build-iso.yml): The commandjust iso-sd-boot tromsomust complete with the payload container. - Automated installation verification:
- Run the plain QEMU install test (
Plain Install End-to-End Test). - Run the encrypted LUKS install and unlock test
(
LUKS Install End-to-End Test).
- Run the plain QEMU install test (
Historical root cause and remediation
- Mismatches in the Shiboken type system blocked generation of the Qt6 and
PySide6 framework bindings. The affected element is
kde/qt6/qt6-pyside6.bst. The project turned off the Python bindings onkcoreaddonsandkwidgetsaddonsto unblock the core build graph. - The team confirmed that the intermittent weekly failures in OpenSSF Scorecard came from the upstream action. Consecutive runs completed without changes to the code.
- The
promote-stable.ymlworkflow runs on a schedule or manual dispatch. It validates the latest nightly artifacts before it moves the release bookmark.
2. Evaluation of the Upstream KDE BuildStream Junction (Issue #85)
Findings
- The team evaluated
invent.kde.org/packaging/kde-buildstreamas a possible replacement for downstream element maintenance. - Evaluation decision: ADR 0003 records the decision to keep it as a watch item. The upstream project is at an early stage and does not have the full dependency set for Plasma. It also continues to use mkosi to assemble the ISO.
- Gates for another evaluation:
- A complete native graph of dependencies in BuildStream for the Plasma desktop.
- Native generation of the ISO in BuildStream without an external mkosi step.
- Support for the Tromso boot image, including Plymouth, dracut, and the installer.
3. Multi-Runner Chunk Autotune and Coverage (Issues #95, #167)
Implementation
scripts/autotune-chunk-grouping.pyuses the GitHub CLI API to analyze the durations in historical build logs.- It gets wall-clock durations for the
build_depsmatrix jobs. It calculates the minimum, maximum, average, and imbalance ratio, then writes JSON with structured time weights. tests/pytest/test_autotune_chunk_grouping.pygives test coverage for:- ISO-8601 timestamps in UTC, with offsets, or with invalid input.
- The subprocess wrapper for
gh api, including errors and invalid JSON. - Selection of chunk jobs and wall-clock calculations with mock run data.
- CLI execution and JSON output.
4. Organizational Namespace Migration (Issue #164)
Updates
- The templates in
files/os-release/os-release.oci.inusehttps://github.com/tuna-os/tromsoforHOME_URLandBUG_REPORT_URL. - Build recipes and vendor references in
Justfileand the.bstelements refer to repositories in thetuna-osorganization.