← Back to issue list

Introduce a platform format that can have both `build-for: all` and architecture-specific builds

View original Github issue

Metadata

Project
craft-platforms
Number
#192
Type
issue
State
closed
Author
lengau
Labels
Type: Enhancement Status: Triaged
Created
Updated
Closed

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.
74%
#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).
73%
#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.
72%
#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.
71%
#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.
71%
#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.
70%