scriplets: run override-pull on update_pull
Metadata
Current evaluation
Merged in snapcraft#2653 (commit ae7ab338e), re-running override-pull scriptlets when pull repeats so snapcraftctl-generated metadata is preserved.
Resolution: closed resolved
Reason: PR #2653 was approved and merged as commit ae7ab338e. Its regression test verified that script-generated version and grade metadata survive rebuilds, resolving LP #1790651.
Evaluated by: mr-cal-bot
No scores available.
Issue body
```
Once a project is re-run, snapcraft loses metadata generated
from scripts (i.e. snapcraftctl set-version and set-grade).
Snapcraft itself will reproduce this issue when the sources change:
```
Skipping stage bash-completion (already ran)
Skipping stage snapcraft-libs (already ran)
Skipping stage legacy-snapcraft (already ran)
Skipping stage patchelf (already ran)
Cleaning later steps and re-staging snapcraft ('build' step changed)
Skipping prime bash-completion (already ran)
Skipping prime snapcraft-libs (already ran)
Skipping prime legacy-snapcraft (already ran)
Skipping prime patchelf (already ran)
Priming snapcraft
Compiling pyc files...
Failed to generate snap metadata: 'adopt-info' refers to part 'snapcraft', but that part is lacking the 'parse-info' property.
```
- Since version information may have changed between
runs, we now re-execute the override-pull scriplets when
the pull step is re-run.
- Track current step in pluginhandler when invoking a step
inside the runner - we can use this to determine which
scriplet metadata to update once called. The previous logic
assumed that the steps were cleaned and not being re-run when
checking for metadata duplication.
- Add test to reproduce failure (and pass it!)
LP #1790651
```
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged in snapcraft#2653 (commit ae7ab338e), re-running override-pull scriptlets when pull repeats so snapcraftctl-generated metadata is preserved. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #2653 (commit ae7ab338e, 2019-08-03): override-pull scriplets are now re-run on repeated pull steps and pluginhandler tracks the current step, fixing LP #1790651 where script-set metadata was lost on re-run. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged in #2653 (commit ae7ab338e): re-runs override-pull scriplets when pull is repeated, preserving script-generated metadata and fixing LP #1790651. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged fix for snapcraft losing script-generated metadata during re-runs. The change re-executes override-pull scriplets on pull step re-run, tracks the current step in the plugin handler, and adds a regression test. Approved and merged after passing CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into master. Fixes snapcraft losing script-generated metadata during re-runs by re-executing override-pull scriplets when the pull step restarts. Tracks current step to prevent duplication and adds a regression test. Resolves LP #1790651. |
Update history
No update history recorded yet.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #2045 many: add override-pull scriptlet | snapcraft | merged | Merged as commit 56c16cbc5: added override-pull and snapcraftctl pull; Local sources now merge into the existing directory to preserve pre-pull changes. | |
| #2278 snap: pull early | snapcraft | merged | Merged #2278 (commit 7386bed80) reordered snapcraftctl execution so pull runs before set-version. | |
| #2283 snapcraft snap: refactor override-build into a script | snapcraft | merged | PR #2283 merged as commit f9592939a, moving the Snapcraft snap's override-build logic into a script to reduce snapcraft.yaml duplication ahead of self-vendoring. |