Repository navigation
Reject metadata directories that contain the project root - #323
Merged
gaborbernat merged 2 commits intoOct 18, 2026
Merged
Conversation
gaborbernat
enabled auto-merge (squash)
October 18, 2026 06:55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Both wheel and editable metadata preparation clear their output directory before calling the backend. The existing validation rejects the project root itself but accepts an ancestor. A mistaken output path can therefore remove the source tree and sibling contents before the backend invocation fails.
Resolve both paths and reject an output directory that contains the project root before any cleanup. Preserve the existing same-root error and support for separate sibling output directories.
Regression tests exercise wheel/editable hooks with direct ancestor paths and symlink aliases, assert source and sibling sentinels remain unchanged, and retain sibling-output cleanup controls. All baseline cleanup tests use newly created temporary directories.
Validation on macOS, Python 3.13.1:
_backend.pysubprocess paths. The changed_frontend.pyhas 100% statement/branch coverage.AI assistance: OpenAI Codex drafted the implementation and tests and performed automated review. The reported checks were run locally; owner manual review is not claimed.