← Back to issue list

remote-build: set snapcraft's channel in the build recipe

View original Github issue

Metadata

Project
snapcraft
Number
#6384
Type
issue
State
open
Author
mr-cal
Labels
Status: Triaged Type: Enhancement
Created
Updated
Closed

Current evaluation

Enhancement to set Snapcraft's channel in remote build recipes and expose an environment variable for channel selection. Triaged, from maintainer, 23 days old.

Suggested action: keep open

Reason: The issue is already triaged (Status: Triaged label), authored by a maintainer (mr-cal), and addresses a real problem with version pinning for remote builds — specifically ensuring core20 snap builds remain functional after Snapcraft 9 release. The related issues (snapcraft#3600, snapcraft#2938) suggest similar channel-handling work is being considered, but this issue's specific request for an environment variable and explicit channel setting in the build recipe warrants keeping it open for tracking.

Impact: 70 Quick Win: 28.0 Staleness: 20 Complexity: 60 Confidence: 70 Support Request: 10

Issue body

### Check existing issues - [x] I've verified that this request isn't described by any existing issues. ### Request Snapcraft's remote-builder should set the channel of Snapcraft itself in the snap build recipe to the current version (like `8.x/stable`, `9.x/stable`). It should also expose an environment variable for users to set the channel. ### The problem it solves Currently, `latest/stable` is used by default, so users don't have a way to use other channels, like testing the `edge` branch of Snapcraft. Second and more importantly, when a new major version of Snapcraft is released, the prior version isn't getting pinned. For example, Snapcraft 8 is the last version to support remote builds of core20 snaps. When Snapcraft 9 was released to `latest/stable`, users could no longer remotely building core20 snaps (even when using Snapcraft 8 to dispatch the build), since Launchpad would default to Snapcraft 9.

Evaluation history

Date Model Scores Action Summary
qwen3.6-35b-a3b-mtp-q6
Impact: 70
Quick Win: 28.0
Staleness: 20
Complexity: 60
Confidence: 70
Support Request: 10
keep open Enhancement to set Snapcraft's channel in remote build recipes and expose an environment variable for channel selection. Triaged, from maintainer, 23 days old.
qwen/qwen3.6-35b-a3b
Staleness: 5
Complexity: 40
Confidence: 90
Support Request: 10
keep open Enhancement to allow specifying the Snapcraft channel in remote build recipes via an environment variable, preventing compatibility breaks when new major versions release. Currently triaged and awaiting implementation.

Update history

Date Change
created

Related work

  • Related To: snapcraft#3600 (confidence 80%)

    Title 'remote build: use channel defaults' suggests overlapping scope on channel handling for remote builds

  • Related To: snapcraft#2938 (confidence 80%)

    Title 'remote build: default to snapcraft's stable channel' addresses similar version pinning concerns

  • Related To: charmcraft#1706 (confidence 70%)

    Similar feature request for charmcraft remote builds to allow user-specified channel

  • Related To: craft-application#344 (confidence 70%)

    Related feature in craft-application to provide application snap channel configuration

Related issues

Issue Project State Summary Similarity
#344 remote build: provide a way to set application snap channel craft-application open Enhancement to add an environment variable or option so remote builds can specify which snap channel (e.g. edge) to use for the application snap in Launchpad build recipes. Triaged by maintainer; not yet implemented.
80%
#3600 remote build: use channel defaults (CRAFT-568) snapcraft merged Merged changes remove hardcoded channel forcing for snapcraft and core18 in remote builds, aligning with snapcraft's core20 transition. Approved and merged with a minimal diff. Launchpad now auto-selects the correct build-base.
80%
#2061517 `remote-build` lacks support for selecting Snapcraft channel snapcraft (launchpad) open Feature request to expose Launchpad's snapcraft channel selection API in remote-build, defaulting to the local channel. Untriaged, no maintainer engagement in 871 days.
78%
#1706 Remote build: allow the user to specify a charmcraft channel and default to the charmcraft snap channel charmcraft open Feature request to let users select the charmcraft snap channel for remote builds (CLI option) and default to the installed snap's tracking channel. Open since 2023, last activity July 2024; no channel option exists in remote-build yet.
77%
#2938 remote build: default to snapcraft's stable channel snapcraft merged Merged following reviewer approval and passing CI. Adds a test confirming snap.requestBuilds() defaults to snapcraft's stable channel. Resolved with minimal changes.
75%
#2933 remote-build: introduce --launchpad-snapcraft-channel option snapcraft closed Closed without merging. Reviewers requested changing the default channel to stable and replacing the CLI flag with an environment variable for developer use. The author agreed to implement the environment variable approach in a new PR.
73%
#2265 build providers: allow snapcraft channel selection snapcraft merged Merged: Enables snapcraft channel selection for build providers when snapcraft is not injected from the host. Adds a user warning, passes CI, and received approval. Resolves LP #1792185.
73%
#946 Install snapd from a user-defined channel craft-providers open Enhancement to allow installing snapd from a user-defined channel via CRAFT_SNAPD_CHANNEL env var. Triaged, under maintainer discussion.
71%
#3648 cli: reintroduce remote-build and promote to snapcraft help snapcraft merged Merged the reintroduction of the remote-build CLI command and promoted it to snapcraft help. Approved by one reviewer, passed CI checks, and resolved Launchpad bug #1943244 via a single-file, four-line deletion.
71%
#2104274 Snapcraft has unclear behavior when providing same build-snap from different channels snapcraft (launchpad) open Bug report: snapcraft resolves build-snap from wrong channel (stable vs candidate). Untriaged, no maintainer response in 527 days.
70%