feat: implement platforms for building charms
Metadata
Current evaluation
Merged implementation of platforms for building charms, replacing the deprecated bases field per ST105 spec. Resolves #1535 and depends on #1556 for testing. Approved by reviewers with passing CI checks.
Suggested action: —
No scores available.
Issue body
This implements the Charmcraft portion of ST105 with the extra constraint that all newly added bases (including Ubuntu 24.04) require `platforms` rather than `bases` (per Gustavo comment on the spec). A future Charmcraft will drop support for `bases` entirely.
This PR has a hard dependency on #1556 for spread tests.
Fixes #1535
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged implementation of platforms for building charms, replacing the deprecated bases field per ST105 spec. Resolves #1535 and depends on #1556 for testing. Approved by reviewers with passing CI checks. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation of platforms for building charms, replacing bases per ST105 spec. Resolves #1535 and depends on #1556 for spread tests. Bases support will be fully deprecated in future releases. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation of platforms for building charms, replacing the deprecated bases field per ST105. Resolves #1535 and depends on #1556 for spread tests. Future releases will fully deprecate bases. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2080 docs: add platforms reference and how-to | charmcraft | merged | Merged documentation updates for Charmcraft platforms, bases, and architectures, covering multi-base support. Approved by three reviewers, passed CI checks, and resolved issue #2009. | |
| #2657 test: Platform shorthand notation and charm plugin | charmcraft | merged | Merged addition of tests for platform shorthand notation combined with the charm plugin, addressing regressions in earlier craft-platforms versions. Approved by two reviewers. | |
| #383 commands/build: charm file name format support for bases (CRAFT-66) | charmcraft | merged | Merged following approval by three reviewers. Introduces charm file name format support for bases configuration, preserving the existing format as a legacy runtime path. Includes corresponding tests. (+98/-1 lines, 2 files changed) | |
| #2794 Clarify 1:1 platforms-to-charm mapping in charmcraft.yaml schema | charmcraft | closed | Merged to clarify the charmcraft.yaml schema, explicitly stating each platforms entry produces a separate charm artifact. Changes include updated schema descriptions, regenerated JSON, and a regression test. | |
| #411 build: pack charm in provided environment when using bases (CRAFT-313) | charmcraft | merged | Merged implementation for packing charms in provided environments per bases configuration (CRAFT-313). Approved by two reviewers, modifying two files (+175/-30). Future work will add verbose and quiet mode flag support. |