← Back to issue list

snapcraft checks only default branch for submodules

View original Launchpad issue

Metadata

Project
snapcraft (launchpad)
Number
#1999219
Type
issue
State
closed
Author
~ilya-fedin
Labels
—
Created
Updated
Closed

Current evaluation

Bug was upstream in craft-parts: git source cloned --recursive then checked out source-commit, so submodules were only fetched from the default branch. Fixed by craft-parts PR #1600 (commit d2845976); snapcraft issue closed once that landed.

Resolution: closed resolved

Reason: Maintainer ~mr-cal closed the issue noting the fix in canonical/craft-parts#898, resolved by merged craft-parts PR #1600 (commit d2845976), which now checks out the requested source-commit before the recursive submodule update. Snapcraft pulls sources through craft-parts, so no snapcraft-side change was needed.

Evaluated by: mr-cal-bot

No scores available.

Issue body

Let's say we have a repository that has a folder with a dependency on it's default branch, but on the required branch/commit it's no more a folder, but a submodule. Expected behavior is to pull this submodule, but snapcraft pulls only those existing on default branch. I specify the commit using source-commit and source-depth: 1.

Evaluation history

Date Model Scores Action Summary
stealth/space-bunny-alpha — closed resolved Bug was upstream in craft-parts: git source cloned --recursive then checked out source-commit, so submodules were only fetched from the default branch. Fixed by craft-parts PR #1600 (commit d2845976); snapcraft issue closed once that landed.
stealth/space-bunny-alpha — closed resolved Fixed via canonical/craft-parts#1600 (commit d2845976): Git sources now check out the requested commit before updating submodules.
qwen3.6-35b-a3b-mtp-q6
Impact: 50
Quick Win: 22
Staleness: 90
Complexity: 55
Confidence: 55
Support Request: 20
close stale Snapcraft only checks default branch for submodules when building from non-default commits. Unlabeled, 0 comments, 1364 days old.
qwen/qwen3.6-35b-a3b
Staleness: 95
Complexity: 60
Confidence: 80
Support Request: 10
needs triage Snapcraft fails to pull submodules when a dependency changes from a folder to a submodule on a non-default branch. Unlabelled and unassessed by maintainers after over three years.
qwen/qwen3.6-35b-a3b
Staleness: 92
Complexity: 50
Confidence: 85
Support Request: 10
needs triage Snapcraft only checks the default branch for submodules instead of the specified commit, causing missing submodules when using source-commit and source-depth. No maintainer response or activity in over a year.
qwen/qwen3.6-35b-a3b
Staleness: 85
Complexity: 50
Confidence: 75
Support Request: 10
needs triage Reports a snapcraft limitation where Git submodules are only checked on the default branch instead of the specified commit or branch. Open for over 3 years with no maintainer comments or labels.
qwen3.6-35b-a3b-mtp-q6
Staleness: 92
Complexity: 55
Confidence: 85
Support Request: 10
close stale Snapcraft incorrectly fetches submodules only from the default branch instead of the specified commit, causing build failures when dependencies change structure. Unlabelled and inactive for over a year.

Update history

Date Change
created

Related work

  • Likely Fixed By: canonical/craft-parts#1600 (confidence 97%)

    Merged PR 'fix(git): checkout commit before updating submodules' (d2845976), the fix cited in the closing comment.

  • Likely Fixed By: canonical/craft-parts#898 (confidence 95%)

    Upstream issue 'Git source should check out a commit before recursing submodules', the root cause reported by ~mr-cal.

Related issues

Issue Project State Summary Similarity
#898 Git source should check out a commit before recursing submodules craft-parts closed Fixed in craft-parts PR #1600 (commit d2845976): Git sources now check out the requested commit before running the recursive submodule update, instead of fetching submodules at the default branch first.
76%
#1817907 building part with git source-commit not found in master fails snapcraft (launchpad) closed Fixed in snapcore/snapcraft#2968 (commit 3941e7918): Snapcraft now fetches a specified source-commit before checkout, including commits outside the default branch.
74%
#1640675 Add source option for git submodules snapcraft (launchpad) closed Feature request implemented: source-submodules added to git sources, merged as snapcraft PR #3629 (383c1f1ce) and craft-parts PR #169 (3891f255); shipped in Snapcraft 7 and 8. Maintainer closed the2016 Launchpad bug as done.
70%