Remove core22 remote-builder in favour of craft-application remote-builder
Metadata
Current evaluation
Core22 remote builds now use craft-application’s remote builder via merged PR #4724 (9905f2831); legacy remote-builder code was later removed by PR #5994 (b08f1a66e).
Resolution: closed resolved
Reason: PR #4724 was merged as commit 9905f2831, switching core22 remote builds to craft-application and addressing #4710. PR #5994 subsequently merged b08f1a66e to remove the legacy remote builder, completing the requested cleanup.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### What needs to get done
1. Ensure the `Dispatcher` exectues new remote-build command regardless of the base (I think this can be done [here](https://github.com/canonical/snapcraft/blob/c3e328853adc5e42ee06110473b6e6e8cc9af66b/snapcraft/application.py#L169)))
2. Migrate `_run_new_or_fallback_remote_build()` from `snapcraft.commands.core22.remote` to `snapcraft.commands.remote`.
- This function contains [this business logic](https://private-user-images.githubusercontent.com/1146853/288046913-c0a1fb19-0561-4810-ba53-73aad8910056.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MTIwODk5NjgsIm5iZiI6MTcxMjA4OTY2OCwicGF0aCI6Ii8xMTQ2ODUzLzI4ODA0NjkxMy1jMGExZmIxOS0wNTYxLTQ4MTAtYmE1My03M2FhZDg5MTAwNTYucG5nP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI0MDQwMiUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNDA0MDJUMjAyNzQ4WiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9NjkyNDRkZDQzZDY0YzIzMGMzNGEwNjM2NmQ0NDBhMjVlMjE5YWIwMzhhZGQ5MTViNWUyZTE2OWRiMjViOGEyMSZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QmYWN0b3JfaWQ9MCZrZXlfaWQ9MCZyZXBvX2lkPTAifQ.T0zToicicdnrE6ST76tRqdS0_amg03Mug_TrU0q7q6w)
3. Remove `snapcraft/commands/core22/remote.py` and `snapcraft.remote/`
### Why it needs to get done
1. Deduplication of code
2. So the new craft-application remote-builder can be used for core20, core22, and core24 snaps.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Core22 remote builds now use craft-application’s remote builder via merged PR #4724 (9905f2831); legacy remote-builder code was later removed by PR #5994 (b08f1a66e). | |
| stealth/space-bunny-alpha | — | closed resolved | Core22 remote builds moved to craft-application in merged PR #4724 (9905f2831). PR #5994 (b08f1a66e) later removed the remaining legacy remote builder. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #4724 (9905f2831), moving core22 remote builds to craft-application; legacy remote-builder cleanup later landed in #5994 (b08f1a66e). | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #4724 (9905f2831), making core22 remote builds use craft-application and fixing #4710; legacy-builder removal later landed in #5994 (b08f1a66e). | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without a linked resolution or merge. The migration of the core22 remote-builder to craft-application appears abandoned or completed via an unlinked pull request, as no resolution details are documented. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed. The core22 remote-builder was removed and its logic migrated to craft-application, enabling unified remote builds across core20, core22, and core24 bases while eliminating code duplication. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed. The core22 remote-builder migration to craft-application was resolved internally via CRAFT-2659. No pull request was merged to implement the deduplication or file removal. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Closed and superseded by JIRA ticket CRAFT-2659. The core22 remote-builder migration to craft-application was deferred, with deduplication efforts tracked externally. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/snapcraft#4724
(confidence 100%)
Merged commit 9905f2831 made core22 remote builds use craft-application.
-
Related To:
canonical/snapcraft#5994
(confidence 100%)
Merged commit b08f1a66e removed the remaining legacy remote-builder implementation.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #300 Remote-build: use craft-application for core22 | craft-application | closed | Core22 remote builds moved to craft-application in merged Snapcraft PR #4724 (commit 9905f2831), removing the legacy core22 build path. | |
| #4724 feat(remote)!: use craft-application remote build for core22 | snapcraft | merged | Merged PR #4724 (9905f2831) switched core22 remote builds to craft-application, added a core20 disable-fallback opt-in, removed --build-on, and fixed #4710. | |
| #4895 fix(remotebuild): require core20 snaps to use the legacy remote builder | snapcraft | merged | Merged in #4895 (d9c8781a1), requiring core20 remote builds to use the legacy builder because the new builder could not parse core20 snapcraft.yaml files; fixes #4886. | |
| #4664 feat(craft-application): support remote build | snapcraft | merged | PR #4664 by syu-w merged (commit 57d184af7), adding remote build support to craft-application in Snapcraft, including --platform and --build-for handling. Shipped in the 8.0.0 release notes as the new core24 remote-builder. | |
| #5223 remote-build: refactor onto craft-application's command | snapcraft | closed | Remote-build was refactored onto craft-application's RemoteBuild in merged PR #5239 (commit f31d99498), bringing the requested upstream improvements. | |
| #5239 refactor: use craft-application's remote-build | snapcraft | merged | Merged PR #5239 as f31d99498, replacing Snapcraft’s legacy remote-build path with craft-application’s command for CRAFT-4044. | |
| #4653 feat(craft-application): support remote build | snapcraft | closed | Closed unmerged; superseded by canonical/snapcraft#4664 (commit 57d184af7), which landed the same craft-application remote build support for core24. | |
| #4886 Use legacy remote builder for core20 snaps | snapcraft | closed | Fixed by merged PR #4895 (commit d9c8781a1), routing core20 snaps to the legacy remote builder because the new builder could not parse architectures with run-on. | |
| #4144 remote build: legacy builder cannot parse core22 snapcraft.yaml syntax | snapcraft | closed | Marked won't fix: legacy-builder schema support was descoped in favor of the new remote builder, which accepts build-for; legacy support was removed by PR #5994 in Snapcraft 9. | |
| #5676 remote build: remove legacy remote builder | snapcraft | closed | Fixed in merged PR #5994 (commit b08f1a66e) for Snapcraft 9.0 by removing the legacy remote builder, selection logic, strategy env var, and legacy credential support. |