-
Notifications
You must be signed in to change notification settings - Fork 285
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
Ability to specificy extension versions in .devcontainer.json #3253
Comments
Although one can execute In general, for complex projects, I will include the development tooling, such as At the time of this post, although Microsoft has indicated it will support Linux GUI apps via WSL2, this enhancement is unavailable via the stable version of WSL2. Since, without this enhancement, Windows would require the installation of other third party components to enable running |
@WhisperingChaos This is a bit off topic for this issue. Please raise your own if you have a feature request. This feature request is around specifying a version of an extension in |
The VS Code CLI does not support installing specific versions of extensions if I remember correctly. |
@Chuxel
The mention of the This topic focuses on a solution to the problem: "How to ensure installing specific versions of The second and third paragraphs provide insight to other current and near future solutions that would allow developers to circumvent this issue for specific environments. These solutions may be important to other developers, as there is currently no commitment that this issue will be addressed by a pull request nor a time frame specified for its deployment. |
@chrmarti |
If I can remove this limitation would you consider the change? @chrmarti |
@chrmarti VS Code does support it - microsoft/vscode#12764
But the limitation is microsoft/vscode#63903 - If auto updates are enabled VS Code automatically installs latest version in this case. |
Seems this feature request has already been partially implemented. I applied the version specification Here's example json that worked:
Specifying
Please note, the current version of My version of |
Maybe, it is completely out of context but in the Cloud application development cycle, the new version is rolled out to customers via publishing a new version of application/component to the docker registry used by application users, and the registry triggers the rolling update of the entire application stack. All this mechanism is already integrated into the Docker technology stack. Docker images have no version, they are tagged! And the tag is not the version. The exact version of the software installed inside the container image is not interesting to anybody except the image developer. If the container provides some service it doesn't matter which software version is used unless API/CLI is changed or extended. Git always does git, Make always does make, Node always does nodejs. |
Fixing the validation to allow for version numbers. Remaining work is tracked with microsoft/vscode#63903. |
@chrmarti would you be open to keeping this issue open? Specifying a specific version of an extension only to have VSCode immediately auto update it doesn't feel like the behavior a user would expect. I tried out a
To resolve this I am considering if I was thinking it would do as follows:
Alternatively would it be ok for me to look at detecting when a devcontainer is running with specific version in the |
@lawrencegripper My current understanding is that only a fix to microsoft/vscode#63903 is missing, you might want to join the discussion on that. I have closed the issue here because I don't expect additional changes to the Remote-Containers extension for this. |
Ah ok got it sorry was being slow, it's still broken but the issue is closed as this isn't something specific to devcontainers any more. Once microsoft/vscode#63903 is resolved things will play nice. |
Devcontainers provide a nice way to ensure all on the team have the same environment. The team I'm in has been using them lots and loves them. We've pinned our dependencies in the
dockerfile
to ensure all devs have the same environment.One remaining non-deterministic behavior is around the extensions installed. Depending on when the dev builds the container they'll get the latest version of the extensions listed. It would be great to pin these with control to say "take minor releases but not major". This would prevent team members having different version of the extensions and seeing different behavior based on when they build their devcontainer.
Most notably this hurt us when
mscode.golang
move togolang.go
cause confusion - our aim was by pinning dependency versions our devcontainers wouldn't rot and we could pickup older projects easily, this broke that expectation a bit. Other instances have seen newer versions of extensions change behavior or their settings paths.Ideally we'd like track extensions along with their version in
.devcontainer.json
. It would hopefully solve things like name changes and settings updates by removing the chance of two people in the team seeing different behavior as they're on different versions of an extension:Originally discussed here: microsoft/vscode-dev-containers#375 (comment)
The text was updated successfully, but these errors were encountered: