Discussion: Deliver VSCode devcontainer with Exercises
CodeMan99 opened this issue · 2 comments
What
I wonder how beneficial delivering a vscode devcontainer with every exercise would be.
Possible Gains
The primary goal here is that exercism download
could create a full development environment. The only prerequisites are docker, vscode, and the vscode remote-containers extension.
This means that every language track could have a full IDE setup that is delivered with the exercise. This includes language setup, project dependencies, build tools, and even vscode extensions that help support the given language.
Stretch Goals
As vscode is already a cloud environment, it may be feasible to use vscode as the primary browser environment as well.
Downsides
Devcontainers are effectively a docker container. This means that you need significant computing power to actually take advantage of this amazing environment.
The normal workflow of a devcontainer results in use of two filesystems: the actual disk and the docker container. This can lead to strange permissions behavior. This is not normally a problem as devcontainers attempts to use the same uid & gid as your host system. However, it can be difficult to correct when the problem does occur.
Other Thoughts
Exercises do tend to lend themselves to very temporary environments. There may be a way to create a devcontainer that does not even use the host filesystem. My thought is that you install the exercism
cli as a devcontainer feature. The host cli would then need to be responsible for communicating with the container's cli to actually download the exercise directly into the container's filesystem (and/or a docker volume).
What about standardized track configuration files (like .gitignore
and .editorconfig
) also and suggestions for tools / IDE extensions.
What about standardized track configuration files
Use docker images or project templates?
suggestions for tools / IDE extensions
This is the exact reason I love devcontainers. Both tools & IDE extensions are first class citizens.
Regardless, the exercism devs have moved their feedback to a forum