Multiple files for packing a bundle is confusing
Metadata
Current evaluation
Request to merge bundle.yaml into charmcraft.yaml was rejected. bundle.yaml is legacy and being replaced by stacks. charmcraft.yaml remains strictly for build-time definitions. Users should construct bundles using the parts syntax with the bundle plugin instead.
Suggested action: —
No scores available.
Issue body
Right now, if I want to upload a bundle to charmhub.io, I have to take a `bundle.yaml` file, add a `name` field (that's currently undocumented, see https://bugs.launchpad.net/juju/+bug/1931140), and then also create a separate `charmcraft.yaml` file that contains only the string `type: bundle`. It's kind of awkward and confusing to have those be two separate files.
I understand that we'll want `charmcraft.yaml` going forward as an analogue to `snapcraft.yaml`, and it will contain arbitrary build steps. So we don't want to get rid of `charmcraft.yaml`. However, would it be possible to have the contents of `bundle.yaml` contained in `charmcraft.yaml`? That would eliminate the extra file.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| qwen3.6-35b-a3b-mtp-q6 | — | — | Request to merge bundle.yaml into charmcraft.yaml was rejected. bundle.yaml is legacy and being replaced by stacks. charmcraft.yaml remains strictly for build-time definitions. Users should construct bundles using the parts syntax with the bundle plugin instead. | |
| qwen/qwen3.6-35b-a3b | — | — | Rejected. bundle.yaml is legacy and being replaced by stacks. charmcraft.yaml handles build definitions, not metadata. Users should construct bundles using the parts syntax with the bundle plugin instead of merging files. | |
| qwen/qwen3.6-35b-a3b | — | — | Rejected. bundle.yaml is legacy and being replaced by stacks. charmcraft.yaml handles build definitions. Bundles are now constructed using the parts syntax within charmcraft.yaml, eliminating the need for a separate metadata file. | |
| qwen/qwen3.6-35b-a3b | — | — | Merging bundle.yaml into charmcraft.yaml was rejected. bundle.yaml is a legacy format being replaced by stacks. charmcraft.yaml handles build definitions separately, and bundles are now constructed using parts syntax with the bundle plugin. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Rejected. bundle.yaml is legacy and will be replaced by stacks. charmcraft.yaml remains separate for build definitions. Bundles can instead be constructed using the parts syntax. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merging bundle.yaml into charmcraft.yaml was rejected. bundle.yaml is legacy and will be replaced by stacks. charmcraft.yaml remains separate for build definitions. Users can construct bundles using the parts syntax with the bundle plugin instead. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2341 Packing a bundle produces a zip that is rejected by charmhub | charmcraft | open | charmcraft 3.x pack produces a bundle zip with metadata.yaml instead of bundle.yaml, so charmcraft upload is rejected by charmhub. A maintainer asked for the charmcraft.yaml on 2025-06-27; no further activity since. | |
| #374 Handling multiple bundles in one repo | charmcraft | closed | Closed without a code fix. Maintainers recommended using separate subdirectories with individual charmcraft.yaml files for each bundle as a workaround to support multiple bundles in a single repository. |