Skip to content
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

Question: What determines which extensions are included #243

Closed
andez2000 opened this issue Dec 5, 2022 · 5 comments
Closed

Question: What determines which extensions are included #243

andez2000 opened this issue Dec 5, 2022 · 5 comments
Labels

Comments

@andez2000
Copy link

I was running the following devcontainer.json:

{
	"image": "mcr.microsoft.com/devcontainers/python:3.11",
	"customizations": {
		"vscode": {
			"extensions": [
			]
		}
	}
}

I am not specifying any extensions, however in the vscode container remote extensions I see the following are installed:

  1. ESLint
  2. isort
  3. Jupyter
  4. Jupyter Cell Tags
  5. Jupyter Notebook Renderers
  6. Jupyter Slide Show
  7. Jupyter Keymap
  8. Python

I am assuming that the image mcr.microsoft.com/devcontainers/python:3.11 ships these extensions. I was just after a little more information on where these come from.

@samruddhikhandale
Copy link
Member

With a recent @devcontainers/cli change for images metadata. The customizations (which specifies the extensions) are now passed down from image to the dev container.

For mcr.microsoft.com/devcontainers/python:3.11 - The Python and Pylance extensions are added by the image's devcontainer.json here and others by The Features. eg. ESLint is installed by the Node Feature.

Besides these three extensions, all others are installed due to extensions packs.

image

image

@samruddhikhandale
Copy link
Member

Closing as answered the question!

@Uguudei
Copy link

Uguudei commented Feb 14, 2023

Node is optional. it's not necessary for a python project. Therefore, ESLint should be optional too.
I propose removing node features from Python and Miniconda images. Users should add them to their devcontainer.json if they need them.

It is annoying to uninstall ESLint to see them again every time I rebuild the image. ESLint wasn't included previously in the image.

@Uguudei
Copy link

Uguudei commented Feb 14, 2023

Please open this issue. Also, It is not a question, but a bug. The extensions shouldn't be installed when it's not necessary.

@samruddhikhandale
Copy link
Member

Given JavaScript front-end web client code written for use in conjunction with a Python back-end often requires the use of Node.js-based utilities to build, this container also includes nvm so that you can easily install Node.js.

For python and miniconda images, highlighting the thought behind installing nvm as mentioned in this doc. Currently, nvm is getting installed via Node Feature (with version:none) which could be avoided. Opened #424

It is annoying to uninstall ESLint to see them again every time I rebuild the image. ESLint wasn't included previously in the image.

I agree, this can be an issue, feel free to add your thoughts or upvote devcontainers/features#386

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants