← Back to issue list

`git describe` in an `override-build` is always claiming to be dirty

View original Github issue

Metadata

Project
snapcraft
Number
#5831
Type
issue
State
open
Author
lengau
Labels
Status: Triaged Type: Bug
Created
Updated
Closed
—

Current evaluation

Git repo always reported dirty during override-build because spread.yaml and spread/ were not copied into the part build dir. Fixed upstream in craft-application, shipped to Snapcraft 8.14.1 via the 6.2.0 dependency bump.

Suggested action: close resolved

Reason: The Snapcraft 8.14.1 release notes in docs/release-notes/snapcraft-8-14.rst explicitly credit #5831: "Files and directories for the test command, ``spread.yaml`` and ``spread/``, no longer cause a part's build directory to be marked as dirty by Git." The fix arrived via commit fb8526fea (build(deps): bump craft-application to 6.2.0, #6038), which pulled in the upstream craft-application#1013 (commit f4a4d282) that closes the duplicate craft-application#942. Since the behavior is already corrected in the code at HEAD, this issue needs no further work in snapcraft.

Evaluated by: mr-cal-bot

Impact: 35 Quick Win: 21 Complexity: 25 Confidence: 95 Actionability: 80

Issue body

### Bug Description If you have a `spread/.extension` file, `git describe --dirty` in an override-build will always show the repo as dirty because `spread.yaml` and `spread/.extension` don't get copied into the build directory. This is causing Charmcraft 4.0.0 to appear to be dirty. ### To Reproduce Check out the 4.0.0 tag of Charmcraft and pack it ### Environment My machine, launchpad, etc... ### snapcraft.yaml ```yaml ... ``` ### Relevant log output ```shell n/a ``` ### Additional context _No response_

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha
Impact: 35
Quick Win: 21
Complexity: 25
Confidence: 95
Actionability: 80
close resolved Git repo always reported dirty during override-build because spread.yaml and spread/ were not copied into the part build dir. Fixed upstream in craft-application, shipped to Snapcraft 8.14.1 via the 6.2.0 dependency bump.
qwen/qwen3.6-35b-a3b
Impact: 30
Quick Win: 17
Complexity: 30
Confidence: 90
Actionability: 80
close resolved git describe --dirty reports false dirty status in override-builds because spread.yaml and spread/.extension are not copied into the build directory. Resolved by craft-application#1013.
qwen/qwen3.8-27b
Impact: 50
Quick Win: 30
Staleness: 65
Complexity: 40
Confidence: 75
Support Request: 5
keep open Bug where git describe --dirty in an override-build always reports the repo as dirty because spread.yaml and spread/.extension are not copied into the build directory, causing Charmcraft 4.0.0 to appear dirty. Triaged and synced to internal ticket SNAPCRAFT-1251.
qwen/qwen3.6-35b-a3b
Staleness: 85
Complexity: 45
Confidence: 75
Support Request: 5
keep open Bug where git describe --dirty in override-build incorrectly reports the repo as dirty because spread files are not copied to the build directory. Currently triaged but inactive for over nine months.
qwen3.6-35b-a3b-mtp-q6
Staleness: 75
Complexity: 45
Confidence: 85
Support Request: 10
keep open Bug where git describe --dirty in override-build incorrectly reports the repo as dirty due to missing spread files in the build directory. Triaged but inactive for 265 days.

Update history

No update history recorded yet.

Related work

  • Duplicate Of: craft-application#942 (confidence 98%)

    Same title and body, filed upstream; reported there because the root cause was in craft-application's source handling, not snapcraft.

  • Likely Fixed By: craft-application#1013 (confidence 90%)

    Upstream fix (commit f4a4d282) makes override-builds pull local spread test files while ignoring outdated changes; reached in snapcraft through the craft-application 6.2.0 bump in commit fb8526fea (#6038).

Related issues

Issue Project State Summary Similarity
#942 git describe in an override-build is always claiming to be dirty craft-application closed Fixed in canonical/craft-application#1013 (f4a4d282): override builds now pull local Spread test files while ignoring outdated changes, preventing false dirty Git metadata.
85%