← Back to issue list

No way to express different build dependencies on different architectures without repetition of the list of dependencies

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#2086482
Type
issue
State
open
Author
~fnordahl
Labels
Created
Updated
Closed

Current evaluation

Feature request: snapcraft YAML grammar lacks support for architecture-specific build dependencies without repetition. No maintainer response after 671 days.

Suggested action: needs triage

Reason: This issue has no labels, no assignee, and zero maintainer comments after 671 days. It describes a grammar limitation in snapcraft's YAML parsing for architecture-specific build dependencies, which is a feature request rather than a support question. Per guidelines, issues without maintainer assessment should be triaged first before any closure decision.

Impact: 50 Quick Win: 20.0 Staleness: 85 Complexity: 60 Confidence: 70 Support Request: 20

Issue body

The snapcraft advanced grammar [0] does unfortunately not allow us to express different build dependencies on different architectures without repetition of the list of dependencies. Making use of composition at the YAML level is also not possible because merging sequences is just not supported [1]. While our current use case fortunately [2] do not contain a lot of dependencies this may quickly become an issue for us. Previously I'm sure it was possible to list dependencies relevant for all architectures and at the same time have a few blocks for architecture specific dependencies, but this appears to no longer work. The interesting thing is that if I use `to` or `on` with a single selector, combining lists appear to work, but if I add a list of selectors it appear to not work, e.g: build-snaps: - go/1.22/stable - on amd64: - golangci-lint vs: build-snaps: - go/1.22/stable - on amd64,arm64,ppc64el,s390x: - golangci-lint The latter matches the documented behavior [0], but only the former appear to (insufficiently) work. What does work is [2], but it's not great. 0: https://snapcraft.io/docs/snapcraft-advanced-grammar 1: https://github.com/yaml/yaml/issues/35#issuecomment-496184265 2: https://github.com/canonical/microovn/commit/837a2617770c8b6400d624d1eba34e4cb97472ff

Evaluation history

Date Model Scores Action Summary
qwen3.6-35b-a3b-mtp-q6
Impact: 50
Quick Win: 20.0
Staleness: 85
Complexity: 60
Confidence: 70
Support Request: 20
needs triage Feature request: snapcraft YAML grammar lacks support for architecture-specific build dependencies without repetition. No maintainer response after 671 days.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 50
Confidence: 85
Support Request: 10
needs triage Snapcraft YAML grammar lacks support for architecture-specific build dependencies without repetition. Unlabelled, no maintainer response, inactive for ~1.7 years.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 60
Confidence: 85
Support Request: 10
needs triage Snapcraft YAML grammar lacks support for architecture-specific build dependencies without repetition. Currently unlabelled, zero maintainer comments, and inactive for over 1.7 years.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 65
Confidence: 85
Support Request: 20
needs triage Unlabelled feature request reporting Snapcraft's YAML grammar lacks support for architecture-specific build dependencies without repetition. No maintainer response in 615 days.
qwen3.6-35b-a3b-mtp-q6
Staleness: 95
Complexity: 65
Confidence: 85
Support Request: 15
close stale Snapcraft YAML grammar lacks native support for merging architecture-specific build dependencies. The feature request has received zero maintainer engagement and remains unaddressed after 1.5 years.

Update history

No update history recorded yet.

Related issues

Issue Project State Summary Similarity
#2020138 Exclude architectures snapcraft (launchpad) open Feature request to add 'build-not-on' or architecture exclusion support in snapcraft YAML. Currently only whitelist (build-on/build-for) is available. Issue is 3+ years old with no maintainer response or activity.
78%
#1885150 Cannot use --build-on, architecture list is already set in snapcraft.yaml. snapcraft (launchpad) closed Closed without fix due to inactivity. The --build-on CLI flag remains ignored when architectures is defined in snapcraft.yaml, requiring manual YAML edits for architecture-specific builds.
72%
#1677974 snap build dependencies snapcraft (launchpad) closed Closed without resolution. The request to specify snap packages as build dependencies in snapcraft.yaml appears abandoned or superseded by upstream Snapcraft updates that later added native build dependency support.
71%
#1685 Implement support for architecture in snapcraft.yaml snapcraft closed Implemented architecture support in snapcraft.yaml after initial redesign delays. The feature landed in the core tool, though integration with build.snapcraft.io and a Python 2-compatible parser require follow-up work.
70%