languages: Fix poetry environment discovery on Linux
#47100
Merged
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: