project_loader: support grammar on architectures
Metadata
Current evaluation
Closed unmerged after review requested further discussion; equivalent architecture-grammar support later landed via merged PR #2080 (c60ac3891).
Resolution: closed superseded
Reason: Maintainer sergiusens closed the PR for further discussion over backward compatibility and a missing deprecation notice. The feature was subsequently delivered by PR #2080, merged as commit c60ac3891.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Currently Snapcraft supports a flat list of architecture overrides in the snapcraft.yaml that look something like this:
architectures: [amd64, i386]
If this property is specified, Snapcraft passes it on verbatim to the snap.yaml, which then assumes the same generated snap supports both of those architectures (called a "fat" snap).
This PR resolves #1681 by expanding Snapcraft's `architectures` property to support the advanced grammar, which allows the property to be dual-purposed into not only run-time architecture support, but build-time (i.e. specify the architecture on which it should be built, as well as the architectures on which the resulting snap can be run). That looks something like this:
architectures:
- on i386: [amd64, i386]
- on armhf: [arm64, armhf]
The final snap.yaml will still only contain a flat list of architectures.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed superseded | Closed unmerged after review requested further discussion; equivalent architecture-grammar support later landed via merged PR #2080 (c60ac3891). | |
| stealth/space-bunny-alpha | — | closed stale | Advanced on/build-architecture grammar was not merged; the maintainer closed the approved PR for further discussion over legacy-list compatibility and a missing deprecation notice. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed for further discussion after maintainers requested a deprecation notice for the legacy flat list architecture format. The changes were abandoned pending resolution of backwards compatibility concerns. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without merging. Maintainers discussed backwards compatibility and deprecation notices for the architecture grammar feature, but ultimately shelved the pull request for further discussion. |
Update history
No update history recorded yet.
Related work
-
Superseded By:
snapcraft#2080
(confidence 98%)
Merged follow-up adding CI-oriented build-on/run-on architecture lists.
-
Related To:
snapcraft#1681
(confidence 95%)
Original architecture-selection design issue ultimately implemented by PR #2080.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1511 project_loader: support grammar on build-packages | snapcraft | merged | Merged as commit 4674a5738, adding grammar support for build-packages globally and per part after prerequisite #1509. |