← Back to issue list

Detect dirty build step.

View original Github issue

Metadata

Project
snapcraft
Number
#447
Type
pull request
State
merged
Author
kyrofa
Labels
—
Created
Updated
Closed

Current evaluation

Merged PR #447 (commit 6224553ae): build step now detects YAML changes affecting a part's plugin build attributes and errors asking the user to clean, advancing LP bug #1477904. Unlike strip/stage, build is not auto-cleaned.

Resolution: closed resolved

Reason: The PR was merged into snapcraft as commit 6224553ae ('Detect dirty build step. (#447)'), reviewed and approved by sergiusens. It landed the build-step dirty detection logic in the lifecycle, and the follow-up chain (#448 dirty pull step, #450 arch changes) completed the LP #1477904 series.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Currently Snapcraft notices YAML changes only for the strip and stage steps. For the other steps, if they've already run, it simply says so and bails. This PR makes progress on LP: [#1477904](https://bugs.launchpad.net/snapcraft/+bug/1477904) by changing that for the build step, where now if one changes any part of the YAML that the part's plugin says is associated with building, build will notice that it's out of date and error out asking the user to clean the build step to continue. The build step is not automatically cleaned like the strip and stage steps because builds can take a very long time and we don't want to blow one away without the user explicitly asking to do so.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Merged PR #447 (commit 6224553ae): build step now detects YAML changes affecting a part's plugin build attributes and errors asking the user to clean, advancing LP bug #1477904. Unlike strip/stage, build is not auto-cleaned.
stealth/space-bunny-alpha — closed resolved Merged PR #447 (commit 6224553ae), adding dirty build-step detection so plugin-relevant YAML changes require explicit cleanup before continuing.
stealth/space-bunny-alpha — closed resolved Merged #447 in commit 6224553ae, adding detection of plugin-relevant YAML changes to prevent dirty builds and requiring an explicit clean instead of discarding costly build work.
stealth/space-bunny-alpha — closed resolved Merged #447 in 6224553ae: builds now detect plugin-relevant YAML changes, error, and require an explicit clean instead of discarding costly build work.
qwen/qwen3.6-35b-a3b — — Merged. Adds dirty build step detection to Snapcraft, prompting manual cleanup when YAML changes affect the build step. Addresses LP #1477904. Auto-rebuilds were omitted to prevent wasting time on long builds. Approved by sergiusens.
qwen3.6-35b-a3b-mtp-q6 — — Merged changes implement dirty build step detection in Snapcraft. YAML modifications affecting the build step now trigger an error requiring manual cleanup instead of auto-rebuilding, partially resolving LP: #1477904.

Update history

No update history recorded yet.

Related work

  • Related To: canonical/snapcraft#448 (confidence 95%)

    Sibling PR 'Detect dirty pull step.' (commit da1411df0) merged the same day applying the same detection to the pull step.

  • Related To: canonical/snapcraft#442 (confidence 85%)

    'Automatically re-strip if dirty.' (1a6a21831) — precedent where dirty steps are auto-cleaned, contrasted with build.

  • Related To: canonical/snapcraft#443 (confidence 85%)

    'Automatically re-stage if dirty.' (80de92254) — the other existing auto-clean dirty step.

  • Related To: canonical/snapcraft#450 (confidence 70%)

    'Make pull and build steps dirty if target arch changes.' (ab27f5587) extended the same dirty-state machinery.

  • Superseded By: canonical/snapcraft#2145 (confidence 60%)

    Much later, d033c7d0f 'lifecycle: automatically clean dirty steps' (#2145) plus #2165 added automatic dependency-change detection, superseding the manual-clean behaviour introduced here.

Related issues

Issue Project State Summary Similarity
#443 Automatically re-stage if dirty. snapcraft merged Merged PR #443 in commit 80de92254, adding dirty detection so YAML changes clean and rerun stage and its dependent strip step, advancing LP #1477904.
75%
#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.
75%
#1315 Add the ability for plugins to mark their build step as clean or dirty craft-parts open Triaged enhancement to let plugins classify an otherwise-current build as clean or dirty, enabling UPDATE instead of unconditional SKIP; no implementation is present in the current codebase.
72%