feat(executor): check for stage file collisions in each partition
Metadata
Current evaluation
PR #662 by maintainer mr-cal merged as commit 4b28d649, adding check_for_stage_collisions() per-partition staged-file collision detection in craft_parts/executor/collisions.py; fixes #633 (CRAFT-2416). +526/-114 across 8 files.
Resolution: closed resolved
Reason: The PR was approved by 2 reviewers and merged into main as commit 4b28d649 ("feat(executor): check for stage file collisions in each partition (#662)"). The resulting check_for_stage_collisions() is still present in craft_parts/executor/collisions.py and is called from executor.py, confirming the change shipped.
Evaluated by: mr-cal-bot
Issue body
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | PR #662 by maintainer mr-cal merged as commit 4b28d649, adding check_for_stage_collisions() per-partition staged-file collision detection in craft_parts/executor/collisions.py; fixes #633 (CRAFT-2416). +526/-114 across 8 files. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #662 as 4b28d649, adding per-partition staged-file collision checks to detect parts staging the same path with different contents; fixes #633. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged. Adds stage file collision checks per partition to fix issue #633. Includes refactored unit tests and new integration tests. Approved by reviewers and passed CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged implementation adding stage file collision detection across partitions, resolving issue #633. Includes refactored unit tests and new integration tests validating partition-specific staging conflicts. |
Update history
No update history recorded yet.
Related work
-
Duplicate Of:
canonical/craft-parts#633
(confidence 95%)
The issue explicitly fixed by this PR; closed as completed.
-
Related To:
canonical/craft-parts#1188
(confidence 60%)
Later refactor splitting out _check_for_stage_collisions_per_partition from the code added here.
-
Related To:
canonical/craft-parts#1190
(confidence 50%)
Follow-up fix detecting conflicts between overlay parts and the install dir in the collision checker.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #633 Check for staged file collisions in each partition | craft-parts | closed | Fixed by PR #662 (merged as commit 4b28d649, CRAFT-2416): check_for_stage_collisions() now iterates over every partition and delegates to _check_for_stage_collisions_per_partition(). | |
| #52 executor: add part file collision verification | craft-parts | merged | Merged PR #52 via commit a287b91e (implementation commit 77630113), adding craft_parts/executor/collisions.py to verify parts don't stage identically-named files with differing contents; logic ported from snapcraft. | |
| #1186 refactor: split _check_for_stage_collisions_per_partition | craft-parts | closed | Closed unmerged; the refactor was superseded by canonical/craft-parts#1188, squash-merged as ef08d620. | |
| #1188 refactor: split _check_for_stage_collisions_per_partition | craft-parts | merged | Squash-merged as ef08d620, splitting per-part file and permission collection from collision checks without behavior changes. |