The pull step is not marked as dirty when the source of the dump plugin is changed
Metadata
Current evaluation
Local-source dirty tracking was added in canonical/snapcraft#2167, commit 39c4c39f1, resolving missed rebuilds after files changed under `.`.
Resolution: closed resolved
Reason: Snapcraft later implemented lifecycle detection of local source changes in PR #2167, merged as commit 39c4c39f1. This ensures added or modified local files invalidate the pull step and trigger rebuilding.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Lets say that I have a snapcraft.yaml that uses the dump plugin, and . as the source. I run snapcraft here, and then add a file to the root directory. If I run snapcraft again, the new file will not be added to the prime directory because it thinks that nothing has changed and won't run any step.
To reprodude:
Write this into snapcraft.yaml:
name: my-snap-name
version: '0.1'
summary: test
description: test
parts:
my-part:
plugin: dump
Run snapcraft.
$ touch test.file
Run snapcraft again.
$ snapcraft
[...]
Skipping pull my-part (already ran)
Skipping build my-part (already ran)
Skipping stage my-part (already ran)
Skipping prime my-part (already ran)
Snapping 'my-snap-name' |
Snapped my-snap-name_0.1_amd64.snap
Note that no step was executed.
$ ls prime/
meta
The test.file is not in the snap.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Local-source dirty tracking was added in canonical/snapcraft#2167, commit 39c4c39f1, resolving missed rebuilds after files changed under `.`. | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed by detecting changes to local sources and dirtying affected steps in canonical/snapcraft#2167 (commit 39c4c39f1). | |
| stealth/space-bunny-alpha | — | closed resolved | Fixed pull-step dirty detection when a dump part's source changes. Commit da1411df0 (PR #448) makes changed source files trigger the skipped lifecycle steps. | |
| qwen/qwen3.6-35b-a3b | — | — | Closed without resolution. The dump plugin fails to mark the pull step as dirty when source files change, causing subsequent builds to skip and omit new files. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned. The dump plugin failed to mark the pull step as dirty when source files changed, causing new files to be excluded from the snap. | |
| qwen/qwen3.6-35b-a3b | — | — | Abandoned. The bug prevents snapcraft from detecting source changes in dump plugin parts, causing skipped steps and missing files in the final snap. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Abandoned. The dump plugin fails to mark the pull step dirty when source files change, causing snapcraft to skip execution and omit new files from the prime directory. |
Update history
| Date | Change |
|---|---|
| created |
Related work
-
Likely Fixed By:
canonical/snapcraft#2167
(confidence 98%)
Commit 39c4c39f1 implemented detection of changes to local sources.
-
Duplicate Of:
snapcraft (launchpad)#1647907
(confidence 88%)
Maintainers identified this as part of the broader dirty-step cleanup and rebuild problem.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #448 Detect dirty pull step. | snapcraft | merged | Merged dirty pull-step detection in snapcraft#448 (commit da1411df0), completing LP #1477904 by flagging pull-related YAML changes for explicit cleaning. | |
| #817 Local file changes are not detected | craft-parts | open | Triaged enhancement to mark dump-plugin pull steps dirty when local sources change, including permission-only edits; a maintainer confirmed in 2026 that it remains unimplemented. |