Allow multi-base builds
Metadata
Current evaluation
Multi-base build plans were enabled by merged PR #598 (d81c39a7), explicitly fixing #569; PR #812 (c4bf6b4c) later added ProjectService compatibility for 5.5.0.
Resolution: closed resolved
Reason: PR #598 merged as d81c39a7 and explicitly identifies #569 as fixed by allowing bases in platform entries, enabling applications to implement multi-base build plans. The remaining ProjectService compatibility work was merged in PR #812 as c4bf6b4c and shipped in 5.5.0.
Evaluated by: mr-cal-bot
No scores available.
Issue body
### What needs to get done
> :warning: Craft-application needs to allow applications to implement multi-base builds but doesn't change the default build planner.
Polish the prototype in [work/CRAFT-3668/multibase-prototype](https://github.com/canonical/craft-application/tree/work/CRAFT-3668/multibase-prototype) to support multi-base builds as defined in [ST124](https://docs.google.com/document/d/1QVHxZumruKVZ3yJ2C74qWhvs-ye5I9S6avMBDHs2YcQ/edit?tab=t.0).
### Missing work
1. Add `get_base()`, `get_build_on_architecture()` and `get_build_for_architecture()` to the `ProjectService`.
- Application-defined services should use these instead of `self._project.base` and `self._build_plan[0]`.
2. Unit tests
3. Changelog, tag and release
### Why it needs to get done
To support multi-base builds in charmcraft.
### Upstream work
- https://github.com/canonical/craft-platforms/issues/73
### Downstream work
- https://github.com/canonical/charmcraft/issues/2008
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Multi-base build plans were enabled by merged PR #598 (d81c39a7), explicitly fixing #569; PR #812 (c4bf6b4c) later added ProjectService compatibility for 5.5.0. | |
| stealth/space-bunny-alpha | — | closed resolved | Multi-base build-plan support was merged in canonical/craft-application#598 (d81c39a7) and released in 4.7.0; #812 (c4bf6b4c) later completed ProjectService compatibility. | |
| stealth/space-bunny-alpha | — | closed resolved | Multi-base build plans were enabled by merged PR #598 (d81c39a7); merged PR #812 (c4bf6b4c) later made ProjectService multi-base compatible. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without implementation. Work moved to Jira (CRAFT-3719). Prototype unpolished; required ProjectService methods, tests, and release steps abandoned. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed as abandoned. Required ProjectService methods, unit tests, and release steps were never completed. No merge or fix occurred. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed and abandoned without implementation. No pull requests were merged or fixes applied, leaving the multi-base build support unaddressed after over a year of inactivity. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/craft-application#598
(confidence 99%)
Merged commit d81c39a7 explicitly states that it fixes #569.
-
Likely Fixed By:
canonical/craft-application#812
(confidence 96%)
Merged commit c4bf6b4c completed multi-base compatibility for ProjectService in version 5.5.0.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2009 Document multi-base support and build-plans | charmcraft | closed | Multi-base and build-plan documentation was added in PR #2080 (commit 142fa827), then refined by PR #2104 (47f94098). | |
| #453 Spec a multi-base strategy | craft-application | closed | Multi-base support was specified in ST124; PR #598 (d81c39a7) added multi-base build plans and shipped in craft-application 4.7.0. | |
| #598 feat: allow for multi-base builds | craft-application | merged | Merged as d81c39a7; allowed bases in platform entries so applications can implement multi-base build plans, fixing #569 (CRAFT-3719). | |
| #812 feat(ProjectService): make the ProjectService compatible with multi-base | craft-application | merged | Merged in canonical/craft-application#812 as commit c4bf6b4c, adding opt-in multi-base support and errors for unsupported apps; shipped in 5.5.0. | |
| #73 Add multi-bases support for charm build plans | craft-platforms | closed | Multi-base charm build-plan support was merged in PR #81 (commit 519b705), with validation tightening and error-handling updates; it resolved #73. | |
| #81 feat: multi-base support for charm build plans | craft-platforms | merged | Merged PR #81 as commit 519b705, adding multi-base charm build-plan support and fixing #73, with stricter shorthand validation and CraftPlatformsError. |