Fix Python version selection for scripts with a requires-python conflicting with .python-version#18097
Merged
zanieb merged 1 commit intoastral-sh:mainfrom Feb 24, 2026
Merged
Conversation
requires-python conflicting with .python-version
8714a5c to
c9df867
Compare
zanieb
commented
Feb 19, 2026
| python_version.write_str("3.9")?; | ||
| python_version.write_str("3.11")?; | ||
|
|
||
| // If the script contains a PEP 723 tag, we should install its requirements. |
Member
Author
There was a problem hiding this comment.
We have coverage for this elsewhere
c9df867 to
08ef5c4
Compare
When running a PEP 723 script with `uv run`, the script's `requires-python` was ignored if a `.python-version` file existed, even if the pinned version was incompatible with the script's requirement. uv would use the incompatible version and only warn, instead of discovering a compatible Python. Now, when a `.python-version` file pins a Python version that is incompatible with the script's `requires-python`, uv overrides the request and uses the script's `requires-python` for Python discovery instead. Closes astral-sh#17717 https://claude.ai/code/session_012nTGYgPM5252DSz3Nx9nqn
08ef5c4 to
e383a27
Compare
zanieb
commented
Feb 23, 2026
| script: Pep723ItemRef<'_>, | ||
| no_config: bool, | ||
| ) -> Result<Self, ProjectError> { | ||
| // First, discover a requirement from the workspace |
Member
Author
There was a problem hiding this comment.
The diff in this function isn't ideal and it duplicates some of the workspace logic, but I have a follow-up which refactors these implementations to share logic.
charliermarsh
approved these changes
Feb 24, 2026
tmeijn
pushed a commit
to tmeijn/dotfiles
that referenced
this pull request
Feb 25, 2026
This MR contains the following updates: | Package | Update | Change | |---|---|---| | [uv](https://github.com/astral-sh/uv) | patch | `0.10.4` → `0.10.6` | 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 (uv)</summary> ### [`v0.10.6`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0106) [Compare Source](astral-sh/uv@0.10.5...0.10.6) Released on 2026-02-24. ##### Bug fixes - Apply lockfile marker normalization for fork markers ([#​18116](astral-sh/uv#18116)) - Fix Python version selection for scripts with a `requires-python` conflicting with `.python-version` ([#​18097](astral-sh/uv#18097)) - Preserve file permissions when using reflinks on Linux ([#​18187](astral-sh/uv#18187)) ##### Documentation - Remove verbose documentation from optional dependencies help text ([#​18180](astral-sh/uv#18180)) ### [`v0.10.5`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0105) [Compare Source](astral-sh/uv@0.10.4...0.10.5) Released on 2026-02-23. ##### Enhancements - Add hint when named index is found in a parent config file ([#​18087](astral-sh/uv#18087)) - Add warning for `uv lock --frozen` ([#​17859](astral-sh/uv#17859)) - Attempt to use reflinks by default on Linux ([#​18117](astral-sh/uv#18117)) - Fallback to hardlinks after reflink failure before copying ([#​18104](astral-sh/uv#18104)) - Filter `pylock.toml` wheels by tags and `requires-python` ([#​18081](astral-sh/uv#18081)) - Validate wheel filenames are normalized during `uv publish` ([#​17783](astral-sh/uv#17783)) - Fix message when `exclude-newer` invalidates the lock file ([#​18100](astral-sh/uv#18100)) - Change the missing files log level to debug ([#​18075](astral-sh/uv#18075)) ##### Performance - Improve performance of repeated conflicts with an extra ([#​18094](astral-sh/uv#18094)) ##### Bug fixes - Fix `--no-emit-workspace` with `--all-packages` on single-member workspaces ([#​18098](astral-sh/uv#18098)) - Fix `UV_NO_DEFAULT_GROUPS` rejecting truthy values like `1` ([#​18057](astral-sh/uv#18057)) - Fix iOS detection ([#​17973](astral-sh/uv#17973)) - Propagate project-level conflicts to package extras ([#​18096](astral-sh/uv#18096)) - Use a global build concurrency semaphore ([#​18054](astral-sh/uv#18054)) ##### Documentation - Update documentation heading for environment variable files ([#​18122](astral-sh/uv#18122)) - Fix comment about `uv export` formats ([#​17900](astral-sh/uv#17900)) - Make it clear that Windows is supported in user- and system- level configuration docs ([#​18106](astral-sh/uv#18106)) </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:eyJjcmVhdGVkSW5WZXIiOiI0My4zMS4xIiwidXBkYXRlZEluVmVyIjoiNDMuMzEuOSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiUmVub3ZhdGUgQm90IiwiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJkZXBlbmRlbmN5LXR5cGU6OnBhdGNoIl19-->
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.
See #17717 (comment)
Updates
ScriptPython::from_requestto match the implementation ofWorkspacePython::from_requestand adds filtering such that if the.python-versionconflicts with therequires-python, we prefer the latter.