Description
The Python extension in VS Code is investigating ways to improve our package management support tailored towards beginners with the option for extensibility for your preferred package manager tools via extensions.
Goals
Propose and implement an opinionated workflow as part of the Python extension for VS Code to:
- Support beginners who are working with Python packages and virtual environments.
- Streamline the package management story with the environment creation story.
- Allow third-party package management extensions to integrate into the workflow to provide their own support
Proposal:
An opinionated workflow (ie. commands) that will integrate with the Python: Create Environment command in order to streamline environment creation and package management in the Python extension.
CLI command coverage we want to match in our opinionated workflow:
- Create/update a dependency file
- Read, resolve, and install dependencies from a file
- Update dependencies
- Remove a package
- Add a package (and update the dependency file)
- Create environment ✅
- Run code ✅
Where and how to document dependencies:
Default should be to write to a requirements.txt
file, including the package version that was installed. Opting to write the version, by default, supports the users' need for reproducibility and ease of collaborating on work. Given the nature of the work done by the target audience and our target usage, a pyproject.toml
is out of scope as the target user typically does not build their project nor is there a direct way to only install dependencies listed in a pyproject.toml
file.