Include all project files (whatever is present there)
Metadata
Current evaluation
Resolved by packaging all project files except Juju-style ignores. PR #99 (b9c265a3) added extensible .jujuignore support; PR #118 (ea36c9bd) prepared the all-files build behavior.
Resolution: closed resolved
Reason: Merged PR #99 at b9c265a3 added .jujuignore support, while merged PR #118 at ea36c9bd prepared Charmcraft to include everything except Juju-ignored paths. The current implementation confirms this packaging policy.
Evaluated by: mr-cal-bot
No scores available.
Issue body
We're considering going the extra mile after including several well known files from the charm's project (`metadata.yaml`, `config.yaml`, etc).
We have several options:
- include **everything** present in the project's directory
- include everything except some specifics, like Juju does:
- don't include `.git`, `.bzr`, etc... (or directly avoid including all hidden files/dirs)
- don't include symlinks that are pointing to outside the project's directory
- include only very well known files (`metadata.yaml`, etc), and have a configuration for the developer to specify other files to be included.
Last option involves having some kind of "manifest", but note that first two options also would grow some kind of "block list" for the developer to specify something to *not* be included.
There's a compromise between both choices: if the developer needs to specify which files to be included, they may get caught by surprise, having built and published a charm lacking a file (broken!); if the developer needs to blocklist which files to be avoided in the package, they may got caught by surprise and have published a controversial file (security!).
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Resolved by packaging all project files except Juju-style ignores. PR #99 (b9c265a3) added extensible .jujuignore support; PR #118 (ea36c9bd) prepared the all-files build behavior. | |
| stealth/space-bunny-alpha | — | closed resolved | Implemented Juju-compatible filtering: Charmcraft packages all project files except Juju’s default ignores. | |
| stealth/space-bunny-alpha | — | closed resolved | Charmcraft adopted Juju-compatible packaging: include all project files except ignored paths. Ignore handling landed in #99, and all-files build groundwork was merged in #118. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed. Maintainers resolved the issue by implementing a blocklist approach: including all project files except those Juju ignores. This aligns tool behavior with developer expectations. | |
| qwen/qwen3.6-35b-a3b | — | — | Resolved by including all project files except those Juju ignores, like hidden directories, version control folders, and external symlinks. This aligns charmcraft with Juju's deployment behavior to minimize developer surprises. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed. Resolved by implementing a blocklist approach that includes all project files except those Juju ignores, aligning charmcraft with Juju to minimize deployment surprises. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Resolved by including all project files except those Juju ignores. This blocklist approach was adopted to align build behavior with deployment expectations and minimize unexpected omissions or security risks. |
Update history
No update history recorded yet.
Related work
-
Likely Fixed By:
canonical/charmcraft#99
(confidence 98%)
Merged commit b9c265a3 added support for extending Juju's default ignore patterns through .jujuignore.
-
Likely Fixed By:
canonical/charmcraft#118
(confidence 95%)
Merged commit ea36c9bd prepared the build path for including all files except Juju-ignored content.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #112 Include everything but what is explicity ignored to Juju. | charmcraft | merged | Merged PR #112 as 9f241a8a, changing Charmcraft to include all project files for Juju except those excluded by default or .jujuignore rules. |