architectures: allow same arch in multiple build-ons in core20
Metadata
Current evaluation
Abandoned and closed. Core20 support for duplicate build-on architectures was rejected because core22 and newer bases natively handle this via build-for. Implementing for core20 was deemed too risky and effort-intensive for an enhancement.
Suggested action: —
No scores available.
Issue body
### What needs to get done
`core20` snaps should allow the same architecture in multiple build-ons, when a target arch is supplied with `snapcraft --target-arch armhf --enable-experimental-target-arch --destructive-mode`.
Caevaets:
- all 3 cli options in `snapcraft --target-arch armhf --enable-experimental-target-arch --destructive-mode` must be used everytime
- the snap will not be able to be built with `snapcraft remote-build`
### Why it needs to get done
Currently, core20 snaps do not allow the same architecture to be present in multiple build-ons.
Consider the following `snapcraft.yaml`:
```yaml
base: core20
architectures:
- build-on: [amd64, arm64, armhf]
run-on: armhf
- build-on: [amd64, arm64]
run-on: arm64
```
Running snapcraft with or without a target arch produces the following error:
```Issues while validating snapcraft.yaml: The 'architectures' property does not match the required schema: 'amd64' and 'arm64' are present in the 'build-on' of multiple items, which means snapcraft doesn't know which 'run-on' to use when building on those architectures```
When a target arch is supplied, snapcraft has enough information to determine which `build-on/run-on` tuple to use.
source: https://bugs.launchpad.net/snapcraft/+bug/2009520
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Abandoned and closed. Core20 support for duplicate build-on architectures was rejected because core22 and newer bases natively handle this via build-for. Implementing for core20 was deemed too risky and effort-intensive for an enhancement. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as rejected. Multi-build-on architecture support is already natively available in core22 and newer bases. Implementing it for core20 was deemed too risky and effort-intensive for an enhancement, so the request was abandoned. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as rejected. Multi-arch build-on support is already implemented for core22 and newer bases. Backporting to core20 is deemed too high-risk and effort-intensive for an enhancement, so the request was abandoned. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed without implementation. Backporting multi-arch build-on support to core20 was rejected due to high regression risk and legacy remote build compatibility issues. The functionality is already available in core22 and newer bases. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Rejected. Duplicate architectures in build-on are already supported in core22 and newer bases. Backporting this enhancement to core20 was deemed too risky due to potential regressions and legacy remote build breakage. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3820 providers: specify build-on and build-for in instance name | snapcraft | merged | Merged changes to instance naming convention, incorporating build-on and build-for architecture specifications. Approved by reviewers, passed CI with 100% coverage, and enables core22 multi-architecture support. |