Skip to content

Comments

Error early for parent path in build backend#15733

Merged
konstin merged 2 commits intomainfrom
konsti/error-on-relative-paths-in-build-backend
Sep 8, 2025
Merged

Error early for parent path in build backend#15733
konstin merged 2 commits intomainfrom
konsti/error-on-relative-paths-in-build-backend

Conversation

@konstin
Copy link
Member

@konstin konstin commented Sep 8, 2025

Paths referencing above the directory of the pyproject.toml, such as module-root = "..", are not supported by the build backend. The check that should catch was not working properly, so the source distribution built successfully and only the wheel build failed. We now error early. The same fix is applied to data includes.

Fix #15702

@konstin konstin added bug Something isn't working build-backend labels Sep 8, 2025
@konstin konstin temporarily deployed to uv-test-registries September 8, 2025 12:47 — with GitHub Actions Inactive
#[error("Module root must be inside the project: `{}`", _0.user_display())]
InvalidModuleRoot(PathBuf),
/// Either an absolute path or a parent path through `..`.
#[error("The path for the data directory {} must be inside the project: `{}`", name, path.user_display())]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we tend to omit the backticks following a :

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll change it consistently in a separate PR

Paths referencing above the directory of the `pyproject.toml`, such as `module-root = ".."`, are not supported by the build backend. The check that should catch was not working properly, so the source distribution built successfully and only the wheel build failed. We now error early. The same fix is applied to data includes.

Fix #15702
@konstin konstin force-pushed the konsti/error-on-relative-paths-in-build-backend branch from aa2fd7b to 0424ed5 Compare September 8, 2025 13:41
@konstin konstin temporarily deployed to uv-test-registries September 8, 2025 13:43 — with GitHub Actions Inactive
@konstin konstin merged commit 39fe2d9 into main Sep 8, 2025
98 checks passed
@konstin konstin deleted the konsti/error-on-relative-paths-in-build-backend branch September 8, 2025 13:53
@DhavalGojiya
Copy link

Thank you for all your hard work, @konstin.

konstin added a commit that referenced this pull request Sep 9, 2025
Consistently omit backticks after a colon in build backend messages,
following
#15733 (comment).

There's still 74 matches for `: {}"` and 183 matches for `: {[^{]*}"`,
but this PR clears all matches in the build backend.
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Sep 12, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.8.15` -> `0.8.17` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>astral-sh/uv (astral-sh/uv)</summary>

### [`v0.8.17`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0817)

[Compare Source](astral-sh/uv@0.8.16...0.8.17)

Released on 2025-09-10.

##### Enhancements

- Improve error message for HTTP validation in auth services ([#&#8203;15768](astral-sh/uv#15768))
- Respect `PYX_API_URL` when suggesting `uv auth login` on 401 ([#&#8203;15774](astral-sh/uv#15774))
- Add pyx as a supported PyTorch index URL ([#&#8203;15769](astral-sh/uv#15769))

##### Bug fixes

- Avoid initiating login flow for invalid API keys ([#&#8203;15773](astral-sh/uv#15773))
- Do not search for a password for requests with a token attached already ([#&#8203;15772](astral-sh/uv#15772))
- Filter pre-release Python versions in `uv init --script` ([#&#8203;15747](astral-sh/uv#15747))

### [`v0.8.16`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0816)

[Compare Source](astral-sh/uv@0.8.15...0.8.16)

##### Enhancements

- Allow `--editable` to override `editable = false` annotations ([#&#8203;15712](astral-sh/uv#15712))
- Allow `editable = false` for workspace sources ([#&#8203;15708](astral-sh/uv#15708))
- Show a dedicated error for virtual environments in source trees on build ([#&#8203;15748](astral-sh/uv#15748))
- Support Android platform tags ([#&#8203;15646](astral-sh/uv#15646))
- Support iOS platform tags ([#&#8203;15640](astral-sh/uv#15640))
- Support scripts with inline metadata in `--with-requirements` and `--requirements` ([#&#8203;12763](astral-sh/uv#12763))

##### Preview features

- Support `--no-project` in `uv format` ([#&#8203;15572](astral-sh/uv#15572))
- Allow `uv format` in unmanaged projects ([#&#8203;15553](astral-sh/uv#15553))

##### Bug fixes

- Avoid erroring when `match-runtime` target is optional ([#&#8203;15671](astral-sh/uv#15671))
- Ban empty usernames and passwords in `uv auth` ([#&#8203;15743](astral-sh/uv#15743))
- Error early for parent path in build backend ([#&#8203;15733](astral-sh/uv#15733))
- Retry on IO errors during HTTP/2 streaming ([#&#8203;15675](astral-sh/uv#15675))
- Support recursive requirements and constraints inclusion ([#&#8203;15657](astral-sh/uv#15657))
- Use token store credentials for `uv publish` ([#&#8203;15759](astral-sh/uv#15759))
- Fix virtual environment activation script compatibility with latest nushell ([#&#8203;15272](astral-sh/uv#15272))
- Skip Python interpreters that cannot be queried with permission errors ([#&#8203;15685](astral-sh/uv#15685))

##### Documentation

- Clarify that `uv auth` commands take a URL ([#&#8203;15664](astral-sh/uv#15664))
- Improve the CLI help for options that accept requirements files ([#&#8203;15706](astral-sh/uv#15706))
- Adds example for caching for managed Python downloads in Docker builds ([#&#8203;15689](astral-sh/uv#15689))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS45OC4xIiwidXBkYXRlZEluVmVyIjoiNDEuOTkuNiIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90Il19-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working build-backend

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🐛 Bug: uv build fails with invalid Python module path with no clear error message

3 participants