← Back to issue list

executor: add part file collision verification

View original Github issue

Metadata

Project
craft-parts
Number
#52
Type
pull request
State
merged
Author
cmatsuoka
Labels
—
Created
Updated
Closed

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

No scores available.

Issue body

Different parts must not stage files under the same name and with different contents, it will result in staging error. This change adds the functions that perform this verification. Collision verification logic is ported from snapcraft. Signed-off-by: Claudio Matsuoka <claudio.matsuoka@canonical.com> - [x] Have you signed the [CLA](http://www.ubuntu.com/legal/contributors/)? -----

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.
77%
#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.
71%
#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.
70%