customize snapcraft environment based on architecture.
Metadata
Current evaluation
Architecture-conditional grammar remains unsupported for app and top-level environment variables; current models accept plain dictionaries, while grammar processing covers only selected part keys.
Suggested action: keep open
Reason: Maintainer @~kyrofa acknowledged the request and said conditional syntax was being added to more properties, but current code still models App.environment as a plain dictionary and processes grammar only for part-level keys. The valid use case remains unresolved, so the issue should stay open rather than be closed as stale.
Evaluated by: mr-cal-bot
Impact:
55
Quick Win:
17
Complexity:
55
Confidence:
91
Actionability:
68
Issue body
I'm doing raspberry pi development and use an environment variable to enable/disable a hardware simulator.
When the snap is being deployed into a test (non-arm64) environment I need to set a number of environment variables to enable the simulator and disable the loading of the .so file (the application is java but the hardware interface is in a .so).
I came across the 'on' 'else' keywords and they look perfect for this sort of problem.
I want to be able to write:
apps:
pi-gation:
command: tomcat-launch
daemon: simple
plugs: [network, network-bind]
environment:
on arm64:
PI4J_PLATFORM : RaspberryPi GPIO Provider
else:
PI4J_PLATFORM : Simulated
SimulatedPlatform : RaspberryPi GPIO Provider
Currently the on..else keywords are only supported for the 'stage-packages' key word.
on..else should be supported for setting environment variables.
Possibly the concept should be considered for a number of other properties.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha |
Impact:
55
Quick Win:
17
Complexity:
55
Confidence:
91
Actionability:
68
|
keep open | Architecture-conditional grammar remains unsupported for app and top-level environment variables; current models accept plain dictionaries, while grammar processing covers only selected part keys. | |
| stealth/space-bunny-alpha |
Impact:
32
Quick Win:
8
Complexity:
55
Confidence:
86
Actionability:
58
|
keep open | Requests architecture-conditional app environment variables. Maintainers acknowledged that snapcraft must process the passthrough field, but no implementation or resolution is evidenced after the 2018 discussion. | |
| qwen/qwen3.6-35b-a3b |
Impact:
40
Quick Win:
19
Complexity:
40
Confidence:
80
Actionability:
80
|
keep open | Feature request to support 'on'/'else' advanced grammar for 'apps.environment' key in snapcraft.yaml, currently only supported for stage-packages, build-packages, and build-environment. | |
| qwen/qwen3.8-27b |
Impact:
40
Quick Win:
18
Staleness:
85
Complexity:
55
Confidence:
70
Support Request:
10
|
needs triage | Feature request to support architecture-conditional (on/else) syntax in the apps environment key, currently limited to stage-packages. Open since 2019 with no comments or maintainer response; grammar support has since expanded to more part keywords but app environment remains unaddressed. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
95
Complexity:
60
Confidence:
85
Support Request:
10
|
close stale | Feature request to support conditional on/else syntax for environment variables in snapcraft. No maintainer response or activity in over 8 years. | |
| qwen/qwen3.6-35b-a3b |
Staleness:
98
Complexity:
65
Confidence:
85
Support Request:
10
|
close stale | Request to extend snapcraft's on/else conditional syntax to environment variables based on architecture. Unaddressed for over 8 years with no maintainer interaction or comments. | |
| qwen3.6-35b-a3b-mtp-q6 |
Staleness:
98
Complexity:
45
Confidence:
75
Support Request:
10
|
close stale | Feature request to support conditional on/else syntax for environment variables in snapcraft. Currently only works for stage-packages. Unaddressed for over 8 years with no maintainer interaction. |
Update history
| Date | Change |
|---|---|
| created |
Related issues
No related issues found above the similarity threshold.