fix: Make `stage-packages` deterministic
Metadata
Current evaluation
Merged PR #1752 in commit 26f4b35e, preserving stage-packages input order during deduplication and APT marking to make resolution deterministic; fixes #1751.
Resolution: closed resolved
Reason: PR #1752 was merged as commit 26f4b35e. It preserves user-provided package order in Deb.stage_packages and AptCache.mark_packages, resolving the nondeterministic resolution reported in #1751.
Evaluated by: mr-cal-bot
No scores available.
Issue body
Fixes https://github.com/canonical/craft-parts/issues/1751
Assisted-by: z-ai/glm-5.3
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | Merged PR #1752 in commit 26f4b35e, preserving stage-packages input order during deduplication and APT marking to make resolution deterministic; fixes #1751. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
20
Complexity:
40
Confidence:
75
Actionability:
60
|
needs review | Fixes nondeterministic stage-packages resolution (issue #1751) by making apt package marking order deterministic in deb.py/apt_cache.py; +98/-9 across 5 files. Approved by one reviewer but has 1 unresolved review comment; OSV-scanner check failing, several slow-test checks pending. | |
| qwen/qwen3.8-27b |
Impact:
55
Quick Win:
21
Complexity:
35
Confidence:
75
Actionability:
60
|
needs review | Fixes nondeterministic stage-packages (issue #1751) by making apt package marking order deterministic. +98/-9 across 5 files. Approved by 1 reviewer, 1 unresolved review comment. CI: OSV-scanner failing, 10 arch-specific jobs pending. | |
| qwen/qwen3.8-27b |
Impact:
50
Quick Win:
15
Complexity:
40
Confidence:
70
Actionability:
50
|
needs review | Fixes nondeterministic stage-packages (issue #1751) by making apt package marking order deterministic in apt_cache.py/deb.py; +95/-9 across 5 files with tests. Review pending, 1 unresolved comment, 7 CI jobs failing (author claims unrelated). | |
| qwen/qwen3.8-27b |
Impact:
50
Quick Win:
21
Complexity:
25
Confidence:
75
Actionability:
55
|
needs review | Fixes nondeterministic stage-packages (issue #1751) by making apt package marking order deterministic. Small focused diff (+95/-9, 5 files). Awaiting first review; 7 CI jobs failing, author says unrelated. | |
| qwen/qwen3.8-27b |
Impact:
60
Quick Win:
15
Complexity:
45
Confidence:
65
Actionability:
45
|
needs review | Fixes nondeterministic stage-packages (issue #1751) by making apt package marking order deterministic. +95/-9 across 5 files; fresh PR with no review yet; 7 CI checks failing (OSV-scanner, Minimum dependencies, plugin slow tests) and 2 pending. |
Update history
| Date | Change |
|---|---|
| merged | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| updated | |
| created |
Related work
-
Related To:
canonical/craft-parts#1751
(confidence 100%)
The linked issue describing nondeterministic stage-packages resolution was fixed by this PR.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #834 fix: use partitions for stage-packages tracking | craft-parts | merged | Merged PR #834 as 4cbc6006, making stage-package tracking search primed files across partitions and fixing #804 for common cases; duplicate files across partitions remain unsupported. | |
| #1751 `stage-packages` is nondeterministic | craft-parts | closed | Fixed by preserving user-specified stage-package order before APT marking; commit 26f4b35e uses list(dict.fromkeys(package_names)), removing hash-seed-dependent dependency selection. | |
| #234 executor: fix update build stage packages | craft-parts | merged | Merged PR #234 via d498420e (implementation 40c0a2d1), aligning update-build stage-package handling and preventing unpacked part files from being deleted. | |
| #2119 repo: automatically prune unneeded stage-packages | snapcraft | merged | Merged as b9faf80bd, adding APT cache analysis to remove automatically installed stage-packages left unneeded after alternative dependency resolution. |