fix(platform): automatically vectorise architectures
Metadata
Current evaluation
Merged fix allowing the Platform model to accept string or list values for build-on and build-for architectures, resolving issue #1874. Approved by two reviewers, passed CI, and modified two files.
Suggested action: —
No scores available.
Issue body
This is a fix for https://github.com/canonical/charmcraft/issues/1874
The spec (ST105) allows `<list-of-arch> | <arch>` in both build-on and build-for on all craft apps. This change makes the Platform model accept a string value, but doesn't specify that in the schema. This means text editors using the schema will still suggest converting the build-on and build-for values to lists.
- [ ] Have you followed the guidelines for contributing?
- [ ] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [ ] Have you successfully run `tox`?
-----
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen/qwen3.6-35b-a3b | — | — | Merged fix allowing the Platform model to accept string or list values for build-on and build-for architectures, resolving issue #1874. Approved by two reviewers, passed CI, and modified two files. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged fix resolving #1874. Automatically vectorizes single architecture strings into lists for build-on and build-for. Updates the Platform model to accept strings without schema changes, preserving editor suggestions. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1877 fix(platform): vectorise platform architectures | charmcraft | closed | Closed as superseded because the platform architecture vectorization fix was already merged in pull request #1879. This PR contained no code changes and only updated the craft-application dependency. | |
| #94 fix: generate stricter default platforms | debcraft | merged | Merged fix for issue #52 that generates stricter default platforms equivalent to Debian's any architecture value. Approved by two reviewers, passed all CI checks, and modified 10 files. | |
| #687 fix(commands/lifecycle): Pass the correct platform and build-for | craft-application | merged | Merged fix correcting platform and build-for parameter passing in lifecycle commands, resolving a "Multiple builds match the current platform" error. Approved by two reviewers and passed CI. | |
| #601 feat: use platform name in build instance name | craft-application | merged | Merged. Changes build instance naming to use platform names instead of architectures, preventing shared environments. Approved by two reviewers, the +40/-10 line update across four files fixes #600 and unblocks dependent work. | |
| #5028 fix(remotebuild): parse comma-separated architectures | snapcraft | merged | Merged fix for issue #4990 enabling comma-separated architecture parsing for --build-for and --platform remote build arguments. Approved by two reviewers and verified via passing CI and spread tests. | |
| #52 feat: add support for the "platforms" primitive | rockcraft | merged | Implemented multi-arch support via the platforms primitive, resolving issue #49. Merged after reviewer approval, passing CI checks, and conflict resolution. | |
| #2080 project_loader: support architectures for CI | snapcraft | merged | Implemented CI-friendly architectures keyword syntax with build-on and run-on fields. Merged after reviewer approval and passing CI checks. Resolves #1685. Minor discussions on validation error messages and test timeouts did not block the merge. | |
| #272 feat(platforms): support --build-for to select platform | craft-application | merged | Merged to add --build-for flag for platform selection and update _filter_plan API with host_arch parameter for remote builds. Approved by two reviewers, passed CI, and resolves issue #254. |