11# A template project featuring a devcontainer setup for Datascience with Clojure using several libraries from [ scicloj] ( https://scicloj.github.io/ )
22
3- It sets up an dev container environment with several tool s and libaries for datascience in Clojure.
3+ It sets up an dev container environment with several tool s and libraries for datascience in Clojure.
44
55# Quickstart
660 . Install [ devcontainer cli] ( https://github.com/devcontainers/cli )
771 . Run ` devcontainer templates apply -t ghcr.io/scicloj/devcontainer-templates/scicloj ` to create a devcontainer setup
88 with default settings in your current directoty
992 . Open folder with VSCode / devcontainer / devpod / Codespaces and trigger/wait for container build
10103 . "jack in" inside the devcontainer
11- 4 . Enjoy Clojure and R + python from Clojure (using ClojisR + libpython-clj)
11+ 4 . run "uv sync" to syvc python environment with pyproject.toml
12+ 5 . Enjoy Clojure and R + python from Clojure (using ClojisR + libpython-clj)
1213
1314## template options:
1415image-tag: ubuntu LTS only and Java LTS 8,11,17,21 and if released on Dockerhub
1516default image-tag: lastet ubuntu LTS + latest supported LTS JDK + latest released clojure (and available on Dockerhub)
1617## Customization
1718
18- 5 . Customize libraries
19- * deps.edn: add Clojure + Java libraries
20- * pyproject.toml: add python libraries into poetry config file
19+ 5 . Customize libraries in declarative way
20+ * deps.edn: add Clojure + Java libraries
21+ * pyproject.toml: add python libraries
2122 * devcontainer.json: add R libraries (see [ r-packages] ( ghcr.io/rocker-org/devcontainer-features/r-packages )
2223
2324
@@ -29,49 +30,34 @@ default image-tag: lastet ubuntu LTS + latest supported LTS JDK + latest release
2930## Installed inside devcontainer
3031
3132
32- The purpose of this devcontainer setup is to support VSCode and (graphical) Emacs as IDEs.
33+ The purpose of this devcontainer setup is to support Clojure data science including Clojure integration with python and R
3334
34- ### Supporting VSCode
35-
36- For supportring VSCode, nothing specific need to be done, as devcontainer support is build
37- int VSCode.
38-
39- ### Supporting Emacs
40- The Emacs support consists in setting up a noVNC desktop inclding Emacs in graphical mode.
41- The VNC port is auto-forwarded and can be seen inside a browser window.
42- It added as well a generic way to configure emacs, from ` dotfiles ` , see below.
4335
4436The provided devcontainer.json installs in the devcontainer:
4537
4638* Clojure (incl. clojisr and libpython-clj)
47- * Python incl. poetry (packages can be added via changing the ` pyproject.toml ` in devcontainer.json)
39+ * 'uv' python package manager
4840* R (packages can be added in devcontainer.json)
49- * incl. rstudio-server
50-
41+ * pyproject.toml , which specifies python version and packages
5142* deps.edn with Clojure libraries for Data science from scicloj
52- * noVNC + lite desktop incl port forwarding
53- * Emacs
5443* quarto cli
5544* docker-in-docker
5645* leiningen
5746* babashka
5847* lsp
5948
60- ### Graphical Emacs in web-noVNC
61- In the default settings, we will get a vanilla Emacs running in noVNC.
62- The Emacs setup can be configured via providing a specific script in a fixed location
63- , which can be most easly done using the dotfile support of devcontainer.
64-
65- See here: [ dotfiles] ( https://code.visualstudio.com/docs/devcontainers/containers#_personalizing-with-dotfile-repositories )
66-
67- If there is a file in ` /home/vscode/.setup-ide/setup-ide.sh ` it will be executed after container creation.
68- This can do "whatever" to configure Emacs from your own configuration.
69- (Baically the script can do everything on the build container.)
70-
71- My ` setup-ide.sh ` configures Doom Emacs with my personal configuration.
7249
7350
7451# Version history
52+ ## 2.0.0
53+ BREAKING CHANGE:
54+ - removed poetry
55+ - removed emacs
56+ - removed vnc
57+ - removed rstudio server
58+ - added uv
59+ - use Clojure 1.12.2.1565 images
60+
7561## 1.1.3
7662- fixed feature names from 'contrib' -> 'extra'
7763
0 commit comments