many: automatically redo step for specified part
Metadata
Current evaluation
Merged as commit 9d1407a85 in snapcore/snapcraft. Specifying a part on the command line now cleans and re-runs that part's lifecycle step instead of skipping already-completed steps, fixing LP bug #1774260.
Resolution: closed resolved
Reason: PR #2152 was merged into master as commit 9d1407a85 ("many: automatically redo step for specified part"), resolving LP #1774260 by changing the lifecycle so an explicitly named part has its step cleaned and re-run.
Evaluated by: mr-cal-bot
No scores available.
Issue body
- [x] Have you followed the [guidelines for contributing](https://github.com/snapcore/snapcraft/blob/master/CONTRIBUTING.md)?
- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)?
- [x] If this is a bugfix. Have you checked that there is a bug report open for the issue you are trying to fix on [bug reports](https://bugs.launchpad.net/snapcraft)?
- [x] If this is a new feature. Have you discussed the design on the [forum](https://forum.snapcraft.io)?
- [x] Have you successfully run `./runtests.sh static`?
- [x] Have you successfully run `./runtests.sh unit`?
-----
Currently, if a step for a given part has already run, the snapcraft CLI won't run it again without it first being cleaned. For example, if the `pull` step of part `A` had already run, running `snapcraft pull A` would say that it had already run, and skip it. This PR resolves [LP: #1774260](https://bugs.launchpad.net/snapcraft/+bug/1774260) by changing this behavior so that, if a part is specified, that step for that part is cleaned and re-run.
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged as commit 9d1407a85 in snapcore/snapcraft. Specifying a part on the command line now cleans and re-runs that part's lifecycle step instead of skipping already-completed steps, fixing LP bug #1774260. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #2152 in 9d1407a85, fixing LP #1774260: specifying a part now automatically cleans and reruns that part’s step instead of skipping completed work. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged to master, resolving LP: #1774260. Snapcraft now automatically cleans and re-runs a specified part's step instead of skipping it. Approved by one reviewer with 94.63% diff coverage. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged into master. Automatically cleans and re-runs a specified part's build step in Snapcraft, overriding the previous skip behavior. Resolves Launchpad bug LP: #1774260. Diff coverage reached 94.63%. |
Update history
No update history recorded yet.
Related work
-
Related To:
snapcraft#2145
(confidence 72%)
Related upstream work (merged as d033c7d0f) making snapcraft automatically clean and rebuild dirty lifecycle steps.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #1774260 Automatically clean and redo step if part is specified | snapcraft (launchpad) | closed | Explicitly named parts now clean and rerun the requested lifecycle step instead of being skipped; fixed by merged PR canonical/snapcraft#2152 (9d1407a85). | |
| #1537786 lifecycle: allow do clean rebuild of all/parts without having to pull all again | snapcraft (launchpad) | closed | Added per-part, per-step clean commands via merged canonical/snapcraft PR #401 (88d21b180), allowing lifecycle rebuilds without recloning all sources. | |
| #794 Improve lifecycle execution of steps | snapcraft | merged | Merged as commit f1ac5209f (snapcraft#794): lifecycle now runs steps in order using a list instead of a set, moving skip checks to runtime to speed up execution (LP #1590599). | |
| #2145 lifecycle: automatically clean dirty steps | snapcraft | merged | Merged in canonical/snapcraft#2145 (commit d033c7d0f), adding opt-in outdated_step_action=clean to rebuild changed lifecycle steps and resolve LP #1774021. | |
| #1647907 When a step is dirty, snapcraft doesn't autoclean and reexecute it | snapcraft (launchpad) | closed | Automatic cleanup and rebuilding of outdated lifecycle steps was implemented in canonical/snapcraft#2145 and merged as d033c7d0f. | |
| #727 fix(sequencer): rerun steps only if explicitly requested | craft-parts | merged | Merged PR #727 as commit 9182585f, making steps clean and rerun only when explicitly requested by the application; fixes canonical/snapcraft#4806. | |
| #442 Automatically re-strip if dirty. | snapcraft | merged | Merged PR #442 (commit 1a6a21831): Snapcraft now detects YAML `snap` keyword changes and automatically cleans and re-runs the strip step instead of halting, advancing LP #1477904. |