Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Packaging era split: 25.12 SDK cannot emit ipk — two pinned SDKs (format-selected), or drop ipk

Open
#708 2 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@Amperstrand is already working on this.

Since Oct 7, 2026.

  • #710 by @Amperstrand — open

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
go

Research direction

Start by reading packaging/build-inputs.json, build-sdk-package.sh, and the CI matrix, then compare the existing per-release Go handling in go_per_release and sdk-go-version.sh. The maintainer decision is whether ipk remains supported; if yes, done means format-selected, digest-pinned SDKs and matching arch × format CI rows, with each lane producing its expected package. If no, remove the ipk matrix rows and document the 25.12/apk-only choice.

Written by the indexing model from the issue text.

Description

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:

  1. 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 #687 established).
  2. build-sdk-package.sh: PACKAGE_FORMAT selects its SDK; the driver's PACKAGE_EXTENSION check then matches what its era actually emits.
  3. 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.)

Dominant language
Go
Stars
12
Forks
14
Avg merge
1d 6h
Merged PRs (30d)
211

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenTollGate/tollgate-module-basic-go

All issues in OpenTollGate/tollgate-module-basic-go

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.