python-poetry / python-poetry/poetry

Support multiple python versions for in-project virtual environment management

Open
#2,924 8 comments 8 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area/venv kind/feature
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 env sub-commands.

Related issues: #2908

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.