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

Discussion: Deliver VSCode devcontainer with Exercises #1056

Open
CodeMan99 opened this issue Sep 20, 2022 · 2 comments
Open

Discussion: Deliver VSCode devcontainer with Exercises #1056

CodeMan99 opened this issue Sep 20, 2022 · 2 comments

Comments

@CodeMan99
Copy link

CodeMan99 commented Sep 20, 2022

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).

@arlm
Copy link

arlm commented Nov 24, 2023

What about standardized track configuration files (like .gitignore and .editorconfig) also and suggestions for tools / IDE extensions.

@CodeMan99
Copy link
Author

CodeMan99 commented Nov 24, 2023

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

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

No branches or pull requests

2 participants