Repository navigation
fix(cli): resolve output directories before invoking backends - #316
Merged
gaborbernat merged 2 commits intoOct 14, 2026
Merged
gaborbernat merged 2 commits into
gaborbernat merged 2 commits into
Conversation
Pair each distribution with its artifact name and each outdir mode with its expected location, removing branching from the test body. Drop the absolute --outdir cases: that path never changed. Drop the docs note restating ordinary relative-path behavior.
gaborbernat
enabled auto-merge (squash)
October 14, 2026 04:23
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.

Summary
Resolve the CLI's selected output directory against the caller's working directory before passing it to the frontend. Previously,
python -m pyproject_api project --wheelcreatedproject/distin the caller's directory, then sentproject/distto a backend already running insideproject, causing the demo backend to raiseFileNotFoundError.The runtime change is one expression. Add nine end-to-end cases using the repository's existing demo backend for default, relative and absolute output paths across sdist/wheel/editable builds. They check real generated artifacts; no subprocess behavior is mocked. The pristine source fails six cases, while the three absolute-path controls pass. Adjust two existing argument-test expectations and document the CLI path interpretation.
This keeps symlink interpretation intact (
absolute(), notresolve()) and leaves generic frontend path/configuration arguments unchanged.Validation
fix,type,docsandpkg_metapassed; fixed pre-commit hooks did not modify the three candidate files. Linux tested copies match the canonical worktree byte for byte.test_ensure_empty_dir_on_path_symlink_to_folderfails with WinError1314 because this account cannot create directory symlinks.Hosted CI and macOS are unverified. AI assistance was used for investigation, tests, implementation and review; no production incident is claimed.
Closes #315
Remote verification: ReadTheDocs and pre-commit.ci succeeded. Actions run38507824873 is
action_required, awaiting maintainer approval to run; hosted tests are not yet verified.