Environment Setup
=================
GOATS must be installed using **both Conda and uv**. Some dependencies, like ``redis-server`` and ``dragons``, are only available on Conda, while Python packages are managed using `uv `_.
Requirements
------------
- Conda (Miniforge recommended)
- `uv `_
- Python 3.12 (managed by Conda)
- Git
Installing Miniforge
--------------------
To install Miniforge, `download the appropriate installer for your system `_ and follow the instructions :ref:`Installing Miniforge `.
Set Up the Conda Environment
----------------------------
GOATS provides a pre-configured environment file: ``ci_environment.yaml``.
.. code-block:: bash
git clone https://github.com/gemini-hlsw/goats.git
cd goats
# For Intel/macOS/Linux.
conda env create -f ci_environment.yaml
# For Apple Silicon (M1/M2), use the x86_64 platform.
conda env create -f ci_environment.yaml --platform osx-64
Activate the environment:
.. code-block:: bash
conda activate goats-dev
Install GOATS Using ``uv``
--------------------------
Once the Conda environment is active, use ``uv`` to install Python packages in editable mode.
Install all development, notebook, and documentation dependencies:
.. code-block:: bash
uv pip install -e . --group dev --group notebook --group docs
Or, if you only need core dependencies:
.. code-block:: bash
uv pip install -e . --group dev
This installs:
- The GOATS package in development mode (changes reflect instantly).
- Python development tools like pytest, Ruff, Sphinx, etc..
- Optional support for Jupyter notebooks.
- Optional documentation libaries for building documentation locally.