← Back to issue list

feat(executor): check for stage file collisions in each partition

View original Github issue

Metadata

Project
craft-parts
Number
#662
Type
pull request
State
merged
Author
mr-cal
Labels
—
Created
Updated
Closed

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

No scores available.

Issue body

- [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? ----- Check for collisions where multiple parts try to stage a file with different contents in each partition. I refactored the existing unit tests and added new integration tests. I recommend reviewing per-commit. Fixes #633 (CRAFT-2416)

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().
84%
#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.
77%
#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.
73%
#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.
73%