python-poetry / python-poetry/poetry
Add option to use symlinks on Unix platforms
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 34.3k
- Forks
- 2.5k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 30
Description
- I have searched the issues of this repo and believe that this is not a duplicate.
- I have searched the documentation and believe that my question is not covered.
Feature Request
I have a use case for poetry that requires creating a virtual environment in Unix by copying the Python executables instead of creating symlinks.
Basically, the behavior of poetry used to be as desired before https://github.com/python-poetry/poetry/commit/aab8a450008f3073a3f4da8aedca65185c045d89.
Therefore, I suggest adding a configuration option to let the user choose wether to use symlinks (the default) or not. Under NT-Platforms the configuration of course would have no effect.
Short background of the use case: We use GitHub Actions for our CI and execute all our tests within a Docker container that is created from within the CI. Currently we create our virtual environment when building the container, in the future we'd like to build the virtual environment in GitHub Actions with caching support and then mount it to the container on runtime. This however requires the python executable to not be a symlink.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the behavior change in the referenced commit aab8a450008f3073a3f4da8aedca65185c045d89 and trace Poetry's Unix virtual-environment creation path. Add a configuration option that defaults to symlinks, allows copied Python executables on Unix, and has no effect on Windows; verify the behavior with the relevant tests you find there.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100