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

devpod ? #6

Open
behrica opened this issue May 15, 2024 · 2 comments
Open

devpod ? #6

behrica opened this issue May 15, 2024 · 2 comments

Comments

@behrica
Copy link

behrica commented May 15, 2024

Are you aware of "devpod" ?

It its a cli tools which setup devcontainers.
it seems to be supported on Mac as well:
https://devpod.sh/

In this case, you could have devcontainer.json file in your repo, which setups Clojure and Python .
So basically the "manual steps" of your readme to setup python, python packages and python.edn
would be full automatic and specified in the devcontainer.json

Devcontainer is "fully integrated" in VsCode, so for VSCode users it is enough to "open" the folder, and the rest happens
full automatic.
Emacs users would need to use devpod cli manually and follow "instructions" how to jack in.

If you are interested, I can make a PR here, adding the needed files and you could try it with both, VSCode and Emacs.

@kirahowe
Copy link
Owner

This is super interesting.. I just work with everything installed locally but I can totally understand how some people might prefer to have a "sandbox" to try things out in before they invest too much. It would be nice to have an accessible starting point for new users. My only concern would be teaching people to start using a set up that they can't use for the long term (in the past I've been burned a lot by docker, nix, and other tools that claim to offer an "all batteries included" solution to dev environments so I'm skeptical 😅). In your experience with devcontainers do the actually work for "real world" projects, and with heavy use?

@behrica
Copy link
Author

behrica commented May 27, 2024

I think we need to distinguish between 2 things:

  1. Adding a devcontainer.json file to a code base
  2. wondering about which tool a user can / should / will use to make use of the devcontainer.json file
    ("using of no tool" is helpful already, as the devcontainer.json is human readable)

In a "pure Clojure project" this gives very little added value, as "setup Clojure" is absolutely straightforward on any OS.
(Even-though giving a devcontainer.json would freeze and document the working/tested "java + Clojure" version)

Doing 1) is very easy for "us / you".

Suggesting a concrete tool for 2) is less easy, as any "devcontainer supporting tool" works under certain assumptions, uses case:

  • Codespaces
  • VSCode
  • Devpod
  • Devcontainer CLI

A list is of "supporting tools" is maintained here:
https://containers.dev/supporting

So I would not go into 2).

I would just say,

We provide a devcontainer spec, please feel free to use any tool from xxxx to make use of it to setup your environment or read libpython-clj docu.

Of course, when you provide such devcontainer spec, you need to try it.
For this you can "pick" any of the tools. If it works for "one tool", you can suppose it works for all others.

(The "tool list" above tries to document the "slight" deviations between the tool regarding the support of the standard.
There are as well "GitHub" actions which can build continuously a container from a devcontainer spec,for testing it.

We started as well to create 2 "Clojure devcontainer templates"

See here
https://github.com/scicloj/devcontainer-templates/tree/main/src/scicloj

and
scicloj/devcontainer-templates#19

A "devcontainer template" can be used to "setup" a devcontainer.json in a new folder.
This is supported by "some" of the tools above.
(VSCode, GitHub/Codespaces, devcontainer CLI)

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