feat: skip repacking if project is not changed
Metadata
Current evaluation
Merged PR implementing metadata mediation for config.yaml and actions.yaml so charmcraft skips repacking unchanged projects; fixes #2858 and canonical/craft-application#821.
Resolution: closed resolved
Reason: PR #2890 was merged after approval by two reviewers. Its body states it fixes #2858 and canonical/craft-application#821 by adding metadata mediation for config.yaml and actions.yaml.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Implement metadata mediation for config.yaml and actions.yaml so that
the charm is not repacked if no changes are made to the project.
Fixes: #2858, canonical/craft-application#821
---
- [ ] I've followed the [contribution guidelines](https://github.com/canonical/charmcraft/blob/main/CONTRIBUTING.md).
- [ ] I've signed the [CLA](http://www.ubuntu.com/legal/contributors/).
- [ ] I've successfully run `make lint && make test`.
- [ ] I've added or updated any relevant documentation.
- [ ] In documents I changed, I [added a meta description](https://canonical-starflow.readthedocs-hosted.com/how-to/add-a-page-meta-description/) if one was missing.
- [ ] I've updated the relevant release notes.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| ~deepseek/deepseek-pro-latest | — | closed resolved | Merged PR implementing metadata mediation for config.yaml and actions.yaml so charmcraft skips repacking unchanged projects; fixes #2858 and canonical/craft-application#821. | |
| ~deepseek/deepseek-pro-latest |
Impact:
60
Quick Win:
16
Complexity:
55
Confidence:
70
Actionability:
60
|
needs review | Adds metadata mediation for config.yaml and actions.yaml so unchanged projects skip repacking; fixes stale .charm artifacts. Approved by 2 reviewers, but 2 review comments unresolved and OSV-scanner CI failing. | |
| ~deepseek/deepseek-pro-latest |
Impact:
62
Quick Win:
14
Complexity:
58
Confidence:
78
Actionability:
55
|
needs review | Adds metadata mediation for config.yaml and actions.yaml so unchanged projects skip repacking. Approved by 2 reviewers but has 2 unresolved comments and failing lint/OSV/snap-store CI. | |
| ~deepseek/deepseek-pro-latest |
Impact:
62
Quick Win:
12
Complexity:
58
Confidence:
70
Actionability:
45
|
keep open | Adds metadata mediation for config.yaml and actions.yaml to skip repacking unchanged charms; approved with 2 unresolved comments, lint/files and OSV-scanner failing, slow tests pending. | |
| ~deepseek/deepseek-pro-latest |
Impact:
65
Quick Win:
14
Complexity:
60
Confidence:
75
Actionability:
55
|
needs review | Adds metadata mediation for config.yaml and actions.yaml so unchanged charms skip repacking; approved with 2 unresolved comments, OSV-scanner failing, slow tests pending. | |
| stealth/space-bunny-alpha |
Impact:
52
Quick Win:
11
Complexity:
58
Confidence:
63
Actionability:
52
|
needs review | Maintainer PR adds craft-application metadata mediation for config.yaml/actions.yaml so unchanged charms skip repacking. Fixes #2858 and craft-application#821; approved with 2 unresolved comments, OSV-scanner failing, most test jobs pending. | |
| stealth/space-bunny-alpha |
Impact:
55
Quick Win:
17
Complexity:
50
Confidence:
68
Actionability:
63
|
needs review | Maintainer PR adds craft-application metadata mediation for config.yaml and actions.yaml so charms aren't repacked when project files are unchanged; approved by 1 reviewer with 2 unresolved comments and most CI checks still pending. | |
| stealth/space-bunny-alpha |
Impact:
60
Quick Win:
19
Complexity:
50
Confidence:
62
Actionability:
62
|
needs review | Adds craft-application metadata mediation for config.yaml and actions.yaml so charmcraft only repacks when the project actually changed. Approved by a reviewer; CI mostly pending. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
13
Complexity:
60
Confidence:
70
Actionability:
60
|
needs review | Adds metadata mediation for config.yaml and actions.yaml so charmcraft skips repacking unchanged projects. Approved by one reviewer, but 2 review comments unresolved and most CI checks (tests, lint, snap-build, policy) still pending. | |
| stealth/space-bunny-alpha |
Impact:
52
Quick Win:
11
Complexity:
62
Confidence:
72
Actionability:
58
|
needs review | Maintainer PR adds craft-application package_file mediation for config.yaml/actions.yaml so unchanged projects skip repacking (fixes #2858, craft-application#821). +646/-335 across 9 files; approved by 1 reviewer, 2 unresolved comments, most CI checks still pending. | |
| stealth/space-bunny-alpha |
Impact:
52
Quick Win:
17
Complexity:
45
Confidence:
66
Actionability:
58
|
needs review | Maintainer PR adding craft-application metadata mediation for config.yaml/actions.yaml so unchanged projects skip repacking. Fixes #2858 and craft-application#821. New (1 day), 0 reviews, 1 unresolved comment; most CI green but lint/files and OSV-scanner fail, snap tests pending. | |
| stealth/space-bunny-alpha |
Impact:
48
Quick Win:
13
Complexity:
52
Confidence:
68
Actionability:
55
|
needs review | Maintainer PR adding craft-application metadata mediation for charmcraft.yaml/actions.yaml so unchanged projects skip repacking. Fixes #2858. 0 reviews, 1 unresolved comment; lint/files and OSV-scanner failing, snap-tests still pending. | |
| stealth/space-bunny-alpha |
Impact:
52
Quick Win:
12
Complexity:
59
Confidence:
86
Actionability:
55
|
needs review | Adds config.yaml and actions.yaml metadata mediation to avoid repacking unchanged charms. A new maintainer PR awaiting review; fast tests pass, but build and slow-test checks are pending and OSV-scanner fails. | |
| qwen/qwen3.6-35b-a3b |
Impact:
55
Quick Win:
18
Complexity:
45
Confidence:
70
Actionability:
60
|
needs review | Implements metadata mediation for config.yaml and actions.yaml to skip repacking when project files are unchanged. New PR, pending review with CI checks still running. |
Update history
| Date | Change |
|---|---|
| merged | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| created |
Related work
-
Related To:
charmcraft#2858
(confidence 100%)
Issue fixed by this PR; body lists 'Fixes: #2858'.
-
Related To:
canonical/craft-application#821
(confidence 100%)
Issue fixed by this PR; body lists 'Fixes: canonical/craft-application#821'.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #444 feat: skip repack if project files are unchanged | imagecraft | merged | PR #444 merged: adopts craft-application's metadata mediation API so imagecraft skips repacking when project files are unchanged (+788/-57, 9 files). Implements issue #442; an AI reviewer's managed-mode blocker was retracted. | |
| #1357 feat: skip repacking if project is unchanged | rockcraft | closed | PR #1357 by cmatsuoka merged as commit 0b6ba8bd, adopting the craft-application mediation API so Rockcraft skips repacking output artifacts when the project is unchanged. All checks passed. | |
| #442 Skip repacking when project files are not changed | imagecraft | open | Maintainer request to adopt craft-application's package mediation API so imagecraft skips repacking unchanged projects; implementation merged in PR #444, but issue stays open/triaged pending the wider testing-workflow requirement. | |
| #821 5.5.0 changes pack semantics if the project file has different metadata | craft-application | open | Metadata-only charmcraft.yaml edits were skipped as "Already packed," leaving stale .charm artifacts; Charmcraft PR #2890 is reported to fix repacking after the edit. | |
| #1111 feat: add conditional repacking support | craft-application | merged | Merged PR #1111 (commit 1dfae607) added metadata mediators for conditional repacking under ST160 and released it in craft-application 7.1.0. | |
| #2874 feat: mediate creation of metadata.yaml | charmcraft | merged | PR #2874 merged to charmcraft main (2 approvals): implements craft-application's package service API so metadata.yaml creation is mediated in Charm/rock layers, tracking CHARMCRAFT-723. | |
| #2857 Implement metadata mediation for manifest.yaml | charmcraft | open | Maintainer-triaged feature request to add metadata mediation for manifest.yaml (craft-application packaging API) so unchanged projects are not repacked; impl PR #2877 was closed unmerged, only an autogenerated Jira sync (CHARMCRAFT-724) since. | |
| #2498 fix: `charmcraft pack --project-dir` with metadata.yaml | charmcraft | closed | Closed unmerged; superseded by #2644, which fixed metadata lookup for --project-dir and shipped in Charmcraft 4.2.1. | |
| #2493 Packing fails when using a separate metadata.yaml file and `--project-dir` argument | charmcraft | closed | Fixed by PR #2644 (c87eca0d), which loads separate metadata.yaml from the correct project directory. The fix was slated for Charmcraft 4.2.1. | |
| #1666 fix: only keep metadata.yaml for reactive charms | charmcraft | merged | Merged #1666 (b2b127e6), retaining metadata.yaml only for reactive charms so non-reactive repacks no longer carry stale integration metadata; fixes #1654. |