This repository contains a Julia Pkg3 project specifying a
Julia (1.0+) environment that interacts seemlessly with ASE and libatoms/QUIP.
The purpose is to be able to exactly reproduce a Julia environment on different
machines and in the libatoms docker.
Just clone and activate the environment according to the Pkg documentation. To start Julia with the JuLibAtoms environment use
julia --project=<path to environment>/JuLibAtoms
A convenient workflow is to clone JuLibAtoms into the <DEPOT_PATH>/enviroments directory. Then it can be activated from the package manager using activate --shared JuLibAtoms.
The libatoms docker has two default Julia 1.x environments installed: v1.1 and
JuLibAtoms. The JuLibAtoms environment is a clone of this repository,
while v1.1 is a copy of JuLibAtoms created at the time of generating the
docker container. For now, the recommended workflow is to not modify the v1.1
environment, but to obtain an updated JuLibAtoms environment one should
(from within the running docker)
cd ${JULIA_DEPOT_PATH}/environments/JuLibAtoms
git pull
julia -e 'using Pkg; Pkg.activate("."); Pkg.instantiate()'
To start Julia with the updated JuLibAtoms environment use
julia --project=${JULIA_DEPOT_PATH}/environments/JuLibAtoms
Or, alternatively one can start Julia as usual, then switch to the
Pkg REPL by pressing ] and then type
activate --shared JuLibAtoms
(The --shared stands for using a shared environment installed
in the depot path.)
Once JuLibAtoms is activated, one can modify the environment e.g. by
adding and removing packages, or pinning specific versions. These changes
can then be pushed to the JuLibAtoms git repository.
Any changes to JuLibAtoms will become part of the v1.1 environment
(or subsequently v1.x) the next time the docker image is built.
Similarly, one can create branches of JuLibAtoms and checkout
and resolve the relevant branch in the running docker. The new package
manager no longer clones entire repositories and therefore it becomes
fairly efficient in updating the Julia environment.