Introduce a platform format that can have both `build-for: all` and architecture-specific builds
Metadata
Current evaluation
Implemented Debcraft-specific mixed-architecture and build-for-all platform handling in merged PR #197 (commit 312896f).
Resolution: closed resolved
Reason: PR #197 was merged as commit 312896f, adding the Debcraft-specific planner rules needed to combine architecture-specific platforms with a build-for-all platform.
Evaluated by: mr-cal-bot
No scores available.
Issue body
This is needed for [Debcraft](https://github.com/canonical/debcraft/issues/52).
We need to accept platforms that look like this:
```yaml
platforms:
amd64: # Works the same way as currently.
all: # NOTE: We can have exactly one platform with build-for: all
build-on: any # `any` is a special string here that is equivalent to a list of all DebianArchitecture values.
build-for: [all]
```
Note that this is a different mechanism from the default, and we should not be introducing this for (for example) snapcraft.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Implemented Debcraft-specific mixed-architecture and build-for-all platform handling in merged PR #197 (commit 312896f). | |
| stealth/space-bunny-alpha | — | closed resolved | Added Debcraft-specific rules for an all-architecture build alongside architecture-specific builds; merged in #197 via commit 312896f. | |
| qwen/qwen3.6-35b-a3b | — | closed stale | Feature request for platform format supporting build-for: all with architecture-specific builds was closed. Related issue craft-parts#1019 remains open and unimplemented. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Likely Fixed By:
craft-platforms#197
(confidence 98%)
Its Debcraft-specific implementation directly addresses the platform format requested here.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #49 support architecture-specific builds | rockcraft | closed | Architecture-specific builds were implemented by merged PR canonical/rockcraft#52, adding the platforms primitive in commit 9f4269c4. | |
| #254 Implement --build-for in addition to --platform | craft-application | closed | Implemented --build-for platform selection in merged PR canonical/craft-application#272 (commit e99ee656). | |
| #197 feat: implement debcraft-specific rules | craft-platforms | merged | Merged PR #197 as commit 312896f, adding debcraft defaults and allowing build-for: all alongside architecture-specific builds; fixes #192. | |
| #532 environment: add build-on and build-for architectures | craft-parts | merged | Merged PR #532 in commit 9f8e969e, adding build-on/build-for architecture and triplet variables, deprecating CRAFT_TARGET_ARCH and CRAFT_ARCH_TRIPLET, and fixing #514. | |
| #360 Allow build-for "all" for platform-independent builds. | craft-application | closed | Merged PR #365 to support build-for [all] for platform-independent builds, including validation, an application-level opt-out, and tests; resolved #360 and CRAFT-3016. | |
| #1019 Allow platform-independent builds with the "all" architecture | craft-parts | open | Maintainer-scoped enhancement to let ProjectInfo accept arch "all", reject target-triplet expansion, and validate plugin output as platform-independent; still unimplemented. |