You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Packaging era split: 25.12 SDK cannot emit ipk — two pinned SDKs (format-selected), or drop ipk #708
The 24.x/25.x packaging split — analysis and proposal (from the rc1 build driver failures)
Observed: the ipk-lane driver failed on the 25.12.0 SDK with "no .ipk found" — because OpenWrt 25.12 is the apk-native era: its SDK emits .apk regardless of the CONFIG_USE_APK dance (scripts/build-sdk-package.sh appends CONFIG_USE_APK=y only for the apk branch; 25.12's default is already apk, so the ipk lane searches for an extension that era never produces). The rc1 build's apk lane succeeded (tollgate-wrt-0.6.0_rc1-r0.apk staged); the ipk lane cannot succeed on this SDK by construction.
Why ipk can't just be dropped: fork #93/#110's evidence — the installed base installs via opkg on feed-less 24.10-era systems (and orphan-removal semantics that #707 fail-louds). The ipk output is the format those devices consume.
Proposal — two pinned SDKs, format-selected:
packaging/build-inputs.json: extend openwrt_sdk from a single release: 25.12.0 to per-format pins — apk: {release: 25.12.0, …} and ipk: {release: 24.10.x, …} — each with its own digest-pinned targets. The scaffolding already exists: go_per_release maps 24.10's toolchain today, and sdk-go-version.sh audits per release; the .go.version pin follows the apk (release) line as the shipped-binary truth, with the ipk SDK's older Go checked as ≥ directive floor (and if 24.10's feed Go < 1.26: the ipk lane pins GOTOOLCHAIN from the manifest tarball — the same single-source-of-truth rule ci(toolchain): two paths, one truth — manifest-driven parity gates for the SDK and shortcut build paths #687 established).
build-sdk-package.sh: PACKAGE_FORMAT selects its SDK; the driver's PACKAGE_EXTENSION check then matches what its era actually emits.
CI matrix: arch × format → the right SDK per row.
Owner decision embedded: confirm ipk stays a supported output (recommend yes — the installed base needs it). If instead the answer is "25.12/apk only", the ipk matrix rows delete and this issue closes with the era note.
(From the orchestrator session; the release lane is fighting this exact mismatch in the rc1 driver right now — implementation can ride its current build work.)
Implemented — see the two-sdk-eras PR (linked). The owner decision embedded here (ipk stays supported) is recorded in the PR; 24.10.8 point-release digests pinned for all six targets. The rc1 driver mismatch the lane fought is fixed by the era-aware script path.
Decision record status (fleet verification, 2026-10-07): the embedded owner decision is settled — ipk stays a supported output (recorded here and in #710's opener; the installed base needs it, fork #93/#110 evidence). Implementation is #710 (branch packaging/two-sdk-eras, PR open, review-queued); doctrine #711; enforcement #713; CI unification post-rc1 #712.
Verified against main just now: scripts/build-sdk-package.sh on origin/main carries no era selection (TG_PACKAGE_FORMAT/sdk_release_for: zero hits) — the ipk-on-25.12 failure mode this issue documents is still live on main. Per the closure criterion, this issue stays open until #710 merges; it closes then with the era note.
Status: implemented by #710 (the two-era pins + era-aware script path; battery-verified). This closes when #710 merges — linking so the auto-close or manual close lands with the right reference. The rc1 artifact matrix already validated the design in production (6 arches × both formats, ipk on 24.10.8).
Activity
Amperstrand commentedon Oct 7, 2026
Implemented — see the two-sdk-eras PR (linked). The owner decision embedded here (ipk stays supported) is recorded in the PR; 24.10.8 point-release digests pinned for all six targets. The rc1 driver mismatch the lane fought is fixed by the era-aware script path.
Amperstrand commentedon Oct 7, 2026
Decision record status (fleet verification, 2026-10-07): the embedded owner decision is settled — ipk stays a supported output (recorded here and in #710's opener; the installed base needs it, fork #93/#110 evidence). Implementation is #710 (branch
packaging/two-sdk-eras, PR open, review-queued); doctrine #711; enforcement #713; CI unification post-rc1 #712.Verified against main just now:
scripts/build-sdk-package.shon origin/main carries no era selection (TG_PACKAGE_FORMAT/sdk_release_for: zero hits) — the ipk-on-25.12 failure mode this issue documents is still live on main. Per the closure criterion, this issue stays open until #710 merges; it closes then with the era note.packaging: two pinned SDK eras — 25.12/apk (primary) + 24.10.8/ipk (i…
packaging: two pinned SDK eras — 25.12/apk (primary) + 24.10.8/ipk (i…
Amperstrand commentedon Oct 8, 2026
Status: implemented by #710 (the two-era pins + era-aware script path; battery-verified). This closes when #710 merges — linking so the auto-close or manual close lands with the right reference. The rc1 artifact matrix already validated the design in production (6 arches × both formats, ipk on 24.10.8).
docs(changelog): repair main's numberless admin-credential fragment —…