Development Instructions¶
Nightly builds¶
If you want to try out the latest, bleeding-edge, unreleased version of ligo.skymap, then you can install the most recent nightly build by running the following command:
$ pip install --upgrade 'ligo.skymap>=0.0.0.dev0'
Source dependencies¶
If you are building ligo.skymap from source, then in addition to the
requirements in the quick start section, you will
also need:
GSL ≥ 1.15
chealpix (note: if missing, will be built automatically from bundled sources)
You also need a C compiler with good support for the C11 standard. The following compilers are known to work:
Building from source¶
To build ligo.skymap from source, first clone the git repository:
$ git clone https://git.ligo.org/lscsoft/ligo.skymap.git
Then install it with pip:
$ pip install .
Pre-commit hooks and linting¶
If you are preparing to contribute to ligo.skymap, then after cloning the git repository, please install the pre-commit hooks to automatically format your code consistently using the pre-commit and ruff tools. Run the following commands:
$ pip install pre-commit
$ pre-commit install
Environment variables that control the build¶
There are several environment variables that control the build. To activate one
of these options, set it to any non-empty value when you run pip install,
like this:
$ env LIGO_SKYMAP_USE_SYSTEM_CHEALPIX=1 pip install .
Here is the full list of environment variables.
LIGO_SKYMAP_USE_SYSTEM_CHEALPIXUse the system installation of chealpix rather than building chealpix from the bundled source code.
LIGO_SKYMAP_USE_ITTNOTIFYCompile and link against the Intel® Instrumentation and Tracing Technology (ITT) API to add tracepoints for performance measurement using Intel® VTune Profiler.
LIGO_SKYMAP_DISABLE_OPENMPDisable OpenMP parallelization.
Python version support policy¶
Generally, the latest release of ligo.skymap supports the Python versions
specified by SPEC 0 — Minimum Supported Dependencies. We follow the lead of
the main Scientific Python packages that we depend upon (Numpy, Scipy, Astropy)
to determine when to drop support for older versions of Python and take
advantage of new Python language features.