Skip to content

Extension support for environment managers #79

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
karthiknadig opened this issue Dec 11, 2024 · 10 comments
Open

Extension support for environment managers #79

karthiknadig opened this issue Dec 11, 2024 · 10 comments
Labels
feature-request Request for new features or functionality help wanted Issues identified as good community contribution opportunities

Comments

@karthiknadig
Copy link
Member

karthiknadig commented Dec 11, 2024

Overview

The intent of the Python Environments extension is to enable developers to provide support for their favorite Python environment and package managers by shipping support via its own extension. This extension provides mechanisms for users to interact with environment managers to create, select, and install packages, etc. Your extension will depend on this extension for user interactions, and you can handle the various core features of the environment manager in your extension. This ensures a consistent experience for the user with specific support for each environment manager.

We are looking for community support to build and maintain these extensions!

APIs

This extension provides a set of APIs for developers to register their own Environment and Package managers. We are also looking for feedback on the APIs. See here for more details: https://github.com/microsoft/vscode-python-environments?tab=readme-ov-file#api-reference-proposed

Help wanted

Environment manager

Env manager Status
venv Built-in [1]
conda Expecting community extension [2]
poetry Expecting community extension
pyenv Expecting community extension
pixi In progress @jjjermiah
hatch In progress @flying-sheep
pipenv Expecting community extension
uv Expecting community extension
activaState Expecting community extension

[1]: venv (built-in) will use uv if available for environment creation, package install and delete.
[2] : We have demo support for conda to show case some of the features of the extension. But we are expecting community extension for full featured support.

Package manager

Package Manager Status
pip Built-in
conda Expecting community extension [1]

[1] : We have demo support for conda to show case some of the features of the extension. But we are expecting community extension for full featured support.

@cwebster-99 cwebster-99 pinned this issue Dec 11, 2024
@cwebster-99 cwebster-99 unpinned this issue Dec 11, 2024
@cwebster-99 cwebster-99 pinned this issue Dec 11, 2024
@corytomlinson
Copy link

Please consider adding support for uv as both package and environment manager.

@karthiknadig
Copy link
Member Author

@corytomlinson uv is partially supported. If you have uv, create environment and package installation will use uv. Additionally, adding projects will also use uv init.

@corytomlinson
Copy link

Great! No detection of existing uv projects though?

@karthiknadig karthiknadig added help wanted Issues identified as good community contribution opportunities feature-request Request for new features or functionality labels Dec 16, 2024
@jjjermiah
Copy link

this is neat, great timing as I've just started to overhaul the pixi-vscode extension. Will reach out for help!

@karthiknadig
Copy link
Member Author

@jjjermiah You may want to co-ordinate with pixi folks microsoft/vscode-python#22968 (comment)

/cc @Hofer-Julian

@Hofer-Julian
Copy link

Thanks for the tag @karthiknadig.

@jjjermiah you are well-connected within our community, so you already know that you can always reach out if you need help :)

@VWCBazaga
Copy link

Are you considering adding support for 'Pipenv' as package and environment manager?

@karthiknadig
Copy link
Member Author

@VWCBazaga No plans for built-in support. This extension provides APIs for extension authors to build support for any environment/package manager. The hope is that community will contribute an extension for pipenv with tailored experiences that are intuitive to Pipenv, using the APIs in the extension.

@InSyncWithFoo
Copy link
Contributor

I went ahead and created a semi-working extension for uv. I don't exactly know what I'm doing though, so it is as bare-bones as it gets.

@karthiknadig karthiknadig marked this as a duplicate of #274 Apr 8, 2025
@karthiknadig karthiknadig marked this as a duplicate of #307 Apr 15, 2025
@karthiknadig karthiknadig marked this as a duplicate of #313 Apr 17, 2025
@flying-sheep
Copy link
Contributor

I started for the Hatch one, but I’m unsure how much time I’ll have making it a thing: https://github.com/flying-sheep/vscode-hatch

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature-request Request for new features or functionality help wanted Issues identified as good community contribution opportunities
Projects
None yet
Development

No branches or pull requests

7 participants