languages: Fix poetry environment discovery on Linux#47100
Merged
Veykril merged 3 commits intozed-industries:mainfrom Jan 21, 2026
Merged
languages: Fix poetry environment discovery on Linux#47100Veykril merged 3 commits intozed-industries:mainfrom
poetry environment discovery on Linux#47100Veykril merged 3 commits intozed-industries:mainfrom
Conversation
Contributor
Author
|
It appears that upstream has addressed the trailing path separator issue in microsoft/python-environment-tools#279, Additionally, microsoft/python-environment-tools#283 should potentially resolve the Poetry-related issue where in-project virtual environments are misidentified as I’m converting this PR to a draft for now. If these upstream PRs indeed fix the issues, we can simply update the |
Contributor
Author
|
Upstream only fixed the in-project |
zcg
pushed a commit
to zcg/zedpro
that referenced
this pull request
Jan 29, 2026
…s#47100) Closes zed-industries#47098 The root cause of this issue is related to how `Poetry` (and the upstream `pet-poetry` library) handles path hashing. While perhaps it's an upstream behavior, we can easily fix it on the Zed side. The related code are https://github.com/zed-industries/zed/blob/7ce845210d3af82a57a7518e0abe8c167d60cc6a/crates/languages/src/python.rs#L1181-L1211 In my debugging, I found that `worktree_root` takes the form `/home/user/project`, but `config.workspace_directories` often ends up as `/home/user/project/`(with a trailing slash). Normally this wouldn't be an issue, but `Poetry` generates environment names based on the hash of the absolute path. Since the hashes for `/home/user/project` and `/home/user/project/` are different, `pet-poetry` fails to find the environment. The fix is straightforward: we just need to ensure the trailing `/` is removed so the hashes match. Release Notes: - Fixed poetry environment not discovered on linux
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.
Closes #47098
The root cause of this issue is related to how
Poetry(and the upstreampet-poetrylibrary) handles path hashing. While perhaps it's an upstream behavior, we can easily fix it on the Zed side.The related code are
zed/crates/languages/src/python.rs
Lines 1181 to 1211 in 7ce8452
In my debugging, I found that
worktree_roottakes the form/home/user/project, butconfig.workspace_directoriesoften ends up as/home/user/project/(with a trailing slash). Normally this wouldn't be an issue, butPoetrygenerates environment names based on the hash of the absolute path. Since the hashes for/home/user/projectand/home/user/project/are different,pet-poetryfails to find the environment.The fix is straightforward: we just need to ensure the trailing
/is removed so the hashes match.Release Notes: