Development discussion can be found `on our Matrix Channel <https://matrix.to/#/#coriolis:matrix.org>`_ and in our `GitHub Discussions <https://github.com/lip6/coriolis/discussions>`_.
Coriolus can be used via both the ```cgt`` graphical tool <http://coriolis.lip6.fr/pages/users-guide.html#id24>`_ and via the `rich Python API <http://coriolis.lip6.fr/pages/python-tutorial.html>`_.
brew install ccache doxygen pelican qt@5 qwt-qt5 rapidjson boost eigen
brew install --cask mactex
We need to set some environment variables for finding the cask only components. We use dotenv to set these in the PDM venv (see below)
..code-block:: bash
pip install python-dotenv
dotenv set CMAKE_FRAMEWORK_PATH "$HOMEBREW_PREFIX/opt/qt@5/lib/cmake/"
dotenv set PKG_CONFIG_PATH "$HOMEBREW_PREFIX/opt/qt@5/lib/pkgconfig:$HOMEBREW_PREFIX/opt/qwt-qt5/lib/pkgconfig"
Building Coriolis
=================
To build Python wheels, you'll need the `build` package if you don't already have it installed:
..code-block:: bash
pip3 install build
..code-block:: bash
python3 -m build -w
The wheels can be found in dist and installed using pip:
..code-block:: bash
pip3 install dist/*.whl
Development environment
=======================
For day-to-day development, its currently best to use meson and ninja directly. Currently there are `issues with using a Python editable install`_.
We use PDM_ to manage our development environment, which uses Python's venv_ system.
..code-block:: bash
pip install pdm
Before starting, you'll likely want to install the `shell completion`_ and read about `using pdm with virtual environments`_. The basics are very simple, you just use pdm to run the build commands in an environment it automatially handles.
First we set up our pdm virtual environment:
..code-block:: bash
pdm install --no-self -d --plugins
Below we are just using a local directory call builddir for our meson_ build directory, but you can put it wherever you like.
..code-block:: bash
pdm run meson setup builddir
pdm run ninja -C builddir install
You can then use `pdm run` to run any programs or scripts dependant on Coriolis, for example:
..code-block:: bash
pdm run unittests/python/test_hurricane.py
You can also install locally using:
..code-block:: bash
pdm run meson setup builddir -Dpython.install_env=system
pdm run ninja -C builddir install
For more configuration and install options, see:
..code-block:: bash
pdm run meson configure
.._issues with using a Python editable install: https://github.com/lip6/coriolis/issues/67