python-poetry / python-poetry/poetry
Support multiple python versions for in-project virtual environment management
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 34.3k
- Forks
- 2.5k
- Avg merge
- 2d 19h
- Merged PRs (30d)
- 30
Description
The current scenario when virtualenvs.in-project = true is specified, is that we default to creating .venv as the virtual environment. This needs to be improved to support multiple versions of python.
Ideally we will end up having a structure similar to the one below.
.
└── .venv
├── 3.7
├── 3.8
└── 3.9
Concensus Required
- Directory structure and naming.
- Should we default to this behaviour or make it opt-in only?
- If we want to default to this behaviour, should we start by opt-in first, and then opt-out?
- How should existing environments be handled? We can detect this and set project level config.
Tasks
- Drive concensus, approved by members of @python-poetry/core
- Implement new structure
- Implement test cases that validate new environment creation(s), gracefull handling of existing environments, compatibility with existing
envsub-commands.
Related issues: #2908
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 reviewing related issue #2908 and the current environment sub-commands; no source files or tests are named in this issue. Resolve the proposed directory naming, default versus opt-in behavior, and handling of existing environments before implementation. Done means the new structure, creation and migration behavior, and compatibility are covered by tests.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100