fix: Set imagecraft snap grade dynamically from version metadata
Metadata
Current evaluation
Merged in #440, dynamically setting the snap grade to devel for post/dev versions and stable for tagged releases, fixing #439.
Resolution: closed resolved
Reason: PR #440 was merged after two approvals and no unresolved comments. A maintainer verified with a fake tagged build that Imagecraft 0.6.9 produced grade: stable.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Imagecraft’s snap was pinned to `grade: devel`, which blocked release-channel promotion behavior expected for stable-tagged builds. This aligns imagecraft with the same dynamic grade model used in sibling craft tools.
- **Build metadata behavior**
- Updated `/snap/snapcraft.yaml` to derive snap grade during `override-build` from the resolved package version.
- `post` versions (non-tagged/dev builds) map to `devel`; tagged release versions map to `stable`.
- **Packaging change scope**
- No structural packaging refactor.
- Single-path change in the `imagecraft` part where version is already computed and set.
```yaml
version="$(... print(imagecraft.__version__))"
${SNAP}/libexec/snapcraft/craftctl set version="$version"
[ -n "$(echo $version | grep "post")" ] && grade=devel || grade=stable
${SNAP}/libexec/snapcraft/craftctl set grade="${grade}"
```
<!-- START COPILOT CODING AGENT SUFFIX -->
- Fixes #439
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged in #440, dynamically setting the snap grade to devel for post/dev versions and stable for tagged releases, fixing #439. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in #440: imagecraft now derives snap grade from the resolved version, using stable for tagged releases and devel for post/dev builds, fixing #439. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged a fix dynamically setting the imagecraft snap grade from version metadata. Tagged releases now use grade stable, while dev builds use grade devel, resolving #439 and enabling proper release-channel promotion. | |
| qwen/qwen3.6-35b-a3b |
Impact:
50
Quick Win:
42
Staleness:
5
Complexity:
15
Confidence:
90
|
needs review | Dynamic snap grade from version metadata; approved by 2 reviewers, 0 unresolved comments, ready to land | |
| qwen/qwen3.6-35b-a3b |
Impact:
40
Quick Win:
34
Staleness:
0
Complexity:
15
Confidence:
75
|
needs review | Dynamically sets snap grade from version metadata instead of hardcoded 'devel', addressing issue #439. Brand new PR with no maintainer review yet. |
Update history
| Date | Change |
|---|---|
| closed | |
| updated | |
| updated | |
| created |
Related work
-
Likely Fixed By:
canonical/imagecraft#439
(confidence 100%)
PR #440 explicitly fixes the dynamically-set snap grade issue.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #439 Dynamically set snap grade | imagecraft | closed | Fixed by PR #440, which dynamically sets imagecraft's snap grade from version metadata (devel for dev/post versions, stable for tagged releases). | |
| #1402 build: set grade based on version number | charmcraft | merged | Merged PR #1402 as a968adfa, setting the snap grade to devel for post versions and stable otherwise, resolving #1401. | |
| #427 build: set snap grade based on version | rockcraft | merged | Merged in #427 via commit 91214e03, setting snap grade from the build version: post versions are devel and other versions are stable. | |
| #1401 snapcraft.yaml: set grade dynamically | charmcraft | closed | Dynamic snap grade was implemented by merged PR #1402 (commit a968adfa), assigning devel grade to post-releases and stable otherwise. | |
| #114 snap: set grade to stable | fetch-service | merged | Merged in #114 via commit c7b9a39, setting the Snap grade to stable so releases can target the candidate channel. | |
| #2064 Support for set-grade | snapcraft | closed | Added snapcraftctl set-grade support in merged PR #2067 (commit 4713f4ae3), including final snap metadata and schema validation, resolving #2064. | |
| #2230 snap: use set-version and set-grade | snapcraft | merged | Merged PR #2230 as commit e1b59b75, updating snap handling to use set-version and set-grade and resolving Launchpad bug #1789695. |