executor: add part file collision verification
Metadata
Current evaluation
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.
Resolution: closed resolved
Reason: PR #52 was approved (3 reviewers) and merged into main by cmatsuoka in merge commit a287b91e, carrying implementation commit 77630113 'executor: add part file collision verification'. The new craft_parts/executor/collisions.py module still exists today and is called from the executor to raise PartConflictError on staging conflicts.
Evaluated by: mr-cal-bot
Issue body
Evaluation history
| Date | Model | Scores | Action | Summary |
|---|---|---|---|---|
| stealth/space-bunny-alpha | — | closed resolved | 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. | |
| stealth/space-bunny-alpha | — | closed resolved | Merged #52 via a287b91e (implementation commit 77630113), adding collision checks for identically named staged files with different contents. | |
| qwen/qwen3.6-35b-a3b | — | — | Merged implementation of part file collision verification to prevent staging errors when different parts stage files with identical names but different contents. Logic ported from snapcraft, approved by three reviewers, and passed CI. | |
| qwen3.6-35b-a3b-mtp-q6 | — | — | Merged. Adds verification to prevent different parts from staging files with identical names but differing contents. Collision detection logic was ported from snapcraft to avoid staging errors. |
Update history
No update history recorded yet.
Related work
-
Related To:
craft-parts#305
(confidence 80%)
Follow-up commit b93c135d 'executor: take permissions into account for collisions' refining the collision check introduced here.
-
Related To:
craft-parts#662
(confidence 75%)
Commit 4b28d649 'feat(executor): check for stage file collisions in each partition' extends this verification to partitions.
-
Related To:
craft-parts#1190
(confidence 60%)
Commit b7455277 'fix(overlay): detect conflicts between overlay and install' builds on the collision detection framework from this PR.
Related issues
| Issue | Project | State | Summary | Similarity |
|---|---|---|---|---|
| #662 feat(executor): check for stage file collisions in each partition | craft-parts | merged | 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. | |
| #1660696 Snapcraft is testing file collisions on unbuilt parts | snapcraft (launchpad) | closed | Collision detection ran on not-yet-built parts, causing file-not-found failures (dump plugin with custom build). Fixed by PR #1405 (commit dbdc4b5a6), merged into snapcraft; bug was acknowledged by maintainers. | |
| #305 executor: take permissions into account for collisions | craft-parts | merged | Merged in craft-parts#305 via commit b93c135d, updating collision detection to account for differing permission definitions. |