Generating Conda Lockfiles
===========================
In the interest of reproducibility, STARDIS uses `conda-lock `__ files to keep the virtual environment consistent across similar machines and installations. High level specifications of the environments are given in ``stardis_env3.yml`` and ``stardis_env3_cuda.yml``, and then ``conda-lock`` is used to create the corresponding lockfile. The steps are as follow.
.. note::
These steps are only tested using `miniconda `__.
.. note::
Both sets of steps below assume that all commands are being run from your local STARDIS git repository, which can be obtained using the developer installation instructions.
Without CUDA Support
^^^^^^^^^^^^^^^^^^^^
#. Activate the Conda virtual environment:
.. code-block:: bash
$ conda activate stardis
#. `Create a lockfile `__ using conda-lock's `unified lockfile format `__:
.. code-block:: bash
$ conda-lock -f stardis_env3.yml --conda $(which conda) --strip-auth
#. `Render `__ platform-specific lockfiles:
.. code-block:: bash
$ conda-lock render conda-lock.yml
With CUDA Support
^^^^^^^^^^^^^^^^^^^^
#. Activate the Conda virtual environment:
.. code-block:: bash
$ conda activate stardis-cuda
#. `Create a lockfile `__ using conda-lock's `unified lockfile format `__:
.. code-block:: bash
$ conda-lock -f stardis_env3_cuda.yml --conda $(which conda) --strip-auth --lockfile conda-lock-cuda.yml
#. `Render `__ platform-specific lockfiles:
.. code-block:: bash
$ conda-lock render --filename-template conda-{platform}-cuda.lock conda-lock-cuda.yml