Clarify 1:1 platforms-to-charm mapping in charmcraft.yaml schema
Metadata
Current evaluation
Merged PR #2794 to clarify that each platforms entry produces a separate packed charm, regenerating the schema and adding regression coverage.
Resolution: closed resolved
Reason: The repository record identifies PR #2794 as merged. It updated PlatformCharm.platforms, regenerated schema/charmcraft.json, and added a unit assertion for the schema description.
Evaluated by: mr-cal-bot
No scores available.
Issue body
The `platforms` key in the charmcraft schema did not explicitly state artifact behavior, which caused confusion about pack outputs. This update makes the schema state that each `platforms` entry maps to its own packed charm file.
- **Schema semantics clarified**
- Added an explicit description on `PlatformCharm.platforms` in the model so the contract is clear at the source: one platform entry → one charm artifact on pack.
- **Generated schema updated**
- Regenerated `schema/charmcraft.json` so the published schema now carries the new `platforms` description.
- **Behavior contract pinned**
- Added a focused unit assertion in `tests/unit/models/test_project.py` to lock the `platforms` schema description text and prevent regressions.
```json
"platforms": {
"description": "Defines the target platforms for this charm. Each platforms entry produces a separate charm file when packing."
}
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2794 to clarify that each platforms entry produces a separate packed charm, regenerating the schema and adding regression coverage. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2794, clarifying that each platforms entry produces a separate packed charm and adding the generated schema update with regression coverage. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2794, clarifying that every platforms entry produces a separate packed charm and adding generated-schema regression coverage. | |
| qwen/qwen3.6-35b-a3b | — | — | 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. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged to clarify the charmcraft.yaml schema, explicitly stating each platforms entry produces a separate charm artifact. The update modifies the model description, regenerates the JSON schema, and adds a unit test to lock the text. |
Update history
| Date | Change |
|---|---|
| created |
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1963 Clarify that each `platform` entry is a 1:1 mapping to output `charm` files | charmcraft | closed | Clarified that each platforms entry produces a separate charm artifact; fixed by merged PR #2794 with regenerated schema JSON and regression coverage. | |
| #1535 Implement platforms for charmcraft | charmcraft | closed | Implemented ST105-style platforms for charm builds in merged PR #1554, commit e3de0a46, completing the requested platform support. | |
| #215 fix(charm): accept redundant multi-base charms | craft-platforms | merged | Merged PR #215 as commit 4879309, allowing redundant multi-base charms when they produce equivalent valid build plans and addressing canonical/charmcraft#2620. |