feat: add platforms and drop architectures for core24
Metadata
Current evaluation
Merged as canonical/snapcraft#4630 (f771a4ab8), adding optional core24 platform selection and removing legacy architectures, with host build defaults.
Resolution: closed resolved
Reason: Pull request #4630 merged as f771a4ab8 after approval by three reviewers. It implemented core24 platforms and build-for handling; a known destructive-clean edge case was explicitly deferred to craft-application#261.
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] Have you successfully run `tox run -m lint`?
- [x] Have you successfully run `tox run -e test-py310`? (supported versions: `py39`, `py310`, `py311`, `py312`)
-----
This PR is a draft.
- Add `platforms` in core24
- Drop `architectures` in core24
Similar to `architectures`, the `platforms` keyword is optional and defaults to building-on and building-for the host architecture.
As much as possible, I tried to follow charmcraft's and rockcraft's implementation of platform support.
(CRAFT-2535)
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as canonical/snapcraft#4630 (f771a4ab8), adding optional core24 platform selection and removing legacy architectures, with host build defaults. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged as f771a4ab8: core24 gained optional platforms support with host defaults, while legacy architectures support was removed. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged (commit f771a4ab8): adds the `platforms` keyword and drops `architectures` for core24, following craft-application/rockcraft. Remaining clean --destructive-mode gap deferred to craft-application#261. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged as snapcraft#4630 (f771a4ab8), adding core24 platform selection and removing legacy architectures. Known clean-command edge cases were deferred to craft-application#261. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #4630 as f771a4ab8, adding platforms and dropping the legacy architectures keyword for core24, with build-for propagation fixes. A destructive-clean edge case was deferred to craft-application#261. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged platforms keyword addition and architectures removal for core24. Build-for propagation and validation test failures were resolved. Remaining clean command edge cases were deferred to an upstream craft-application issue. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to add platforms support and drop architectures for core24. Build-for and validation test failures were resolved, with remaining upstream dependencies tracked in craft-application and issue #4867. |
Update history
No update history recorded yet.
Related work
-
Related To:
canonical/craft-application#261
(confidence 99%)
The known clean --destructive-mode build-for edge case was tracked upstream and excluded from #4630.
-
Related To:
canonical/snapcraft#4867
(confidence 98%)
Follow-up regression reported remote builds ignoring core24 platform restrictions introduced with this feature.
-
Related To:
canonical/snapcraft#4994
(confidence 98%)
Merged as 5cd480725 to pass the correct remote-build platform arguments for #4867.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #3821 meta: architectures | snapcraft | merged | Merged core22 architecture support, including build-on/build-for handling, host and build-instance selection, and SNAPCRAFT_BUILD_FOR filtering, via commit 4876b53. | |
| #4693 feat: core24 using Craft Application and core22 components | snapcraft | merged | Merged as commit ab1c86df3: snaps with base core24 are now built using Craft Application and core22 components, a large change (284 files, +10487/-1939) in snapcraft. | |
| #4867 Migrated my app to core24. Platforms is declared only as amd64 and arm64 but remote build is trying to build for all platforms. | snapcraft | closed | Fixed by Launchpad parsing `platforms` for core24 via LP bug #2072622; Snapcraft PR #4994 (commit 5cd480725) was merged to handle remote-build platform arguments. | |
| #4873 feat: support "build-for: [all]" in core24 | snapcraft | merged | Merged PR #4873 as commit 319056d7a, adding core24 support for build-for: [all] and fixing #4854. The feature shipped in Snapcraft 8.4.0. | |
| #5606 schema: add build-for in architectures for core22 | snapcraft | merged | Merged as c9822a38c via snapcraft#5606, adding build-for to the core22 architectures schema in snapcraft.json. | |
| #5399 Use the platform in snap names to prevent overwrites | snapcraft | closed | Fixed by merged PR canonical/snapcraft#5588 (commit 57080e5c7), using platform names in Core24 snap filenames to prevent same-architecture artifacts from overwriting each other. | |
| #5767 feat: add support for core26 (#5677) | snapcraft | merged | Merged core26 support into Snapcraft, adding base recognition and unit-test coverage; core26 initially required build-base: devel. | |
| #2009520 core18/20: inconsistent architecture parsing | snapcraft (launchpad) | closed | Superseded by snapcore/snapcraft#4340 and #4341. Core22+ overlapping build-on handling merged in #3821 (4876b53); core20 support was declined. | |
| #4186 snap: migrate to core22 | snapcraft | merged | PR #4186 merged, moving the Snapcraft snap's own build environment to base core22 (8 files, +71/-70), landing as commit 60033305b and closing the core22 migration issue #4166. | |
| #1819 build(snap): update snap to core24 | charmcraft | closed | Closed unmerged; the core24 migration was later completed by charmcraft#2412 in commit 5d8ea0e4. |