You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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).
The text was updated successfully, but these errors were encountered:
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).The text was updated successfully, but these errors were encountered: