Commit c4f1e0c7 authored by Duncan Macleod's avatar Duncan Macleod

docs: added change-control docs

parent ff57bc5f
Pipeline #59223 passed with stages
in 62 minutes and 16 seconds
.. _lscsoft-conda-change-control:
================================
Change control for LSCSoft Conda
================================
This document describes how the contents of the LSCSoft Conda environments
are controlled, and how to suggest or request a change.
.. contents:: Contents:
:local:
:backlinks: none
:depth: 1
----------------------
Environment defintions
----------------------
The contents of each environment is strictly controlled using a hierarchical
set of *package definitions files*.
These packages are separated into two groups:
.. _lscsoft-conda-change-control-upstream:
~~~~~~~~
Upstream
~~~~~~~~
The upstream packages, being those not directly developed or maintained by
the GW community, are controlled in a single file ``upstream.yaml``.
The file looks something like this:
.. literalinclude:: ../../packages/upstream.yaml
:language: yaml
:lines: 12-20
.. important::
``upstream`` packages are pinned to a specific version, but not a specific
build, the assumption being that a rebuild of an upstream package is
likely beneficial.
Re-builds that are incompatible with the rest of the LSCSoft Conda packages
would simply not be selected by the conda solver anyway.
.. _lscsoft-conda-change-control-lscsoft:
~~~~~~~
LSCSoft
~~~~~~~
The LSCSoft packages, being those directly developed or maintained by the
GW community, are each declared in their own ``<package>.yaml`` file.
These files follow a similar syntax to a conda build recipe, including the
use of selectors.
For example, the definition file for ``ligo.skymap`` looks like this:
.. literalinclude:: ../../packages/ligo.skymap.yaml
:language: yaml
.. important::
``lscsoft`` packages are pinned to a specific build on all platforms.
~~~~~~~~~
Selectors
~~~~~~~~~
In order to define YAML variables specific to a platform, or python version,
pre-processing selectors can be used, see
:ref:`conda-build:preprocess-selectors` for more details on how these are
used by conda-build.
The LSCSoft Conda build tools recognised the following subset of selectors:
- ``py``, the ``majorminor`` python version (without dots), e.g. ``37``
- ``linux``
- ``osx``
Additionally, ``{{ py }}`` can be used as a Jinja2-style substitution variable.
--------------------------
Changing the package list
--------------------------
~~~~~~~~~~~~~~~~~~~
Requesting a change
~~~~~~~~~~~~~~~~~~~
To request a change -- either a new package, or an updated package --
please `request a new/updated package
<https://git.ligo.org/lscsoft/conda/issues/new?issuable_template=Request>`_.
~~~~~~~~~~~~~~~~~~
Proposing a change
~~~~~~~~~~~~~~~~~~
**This section is still under construction.**
To propose a specific change, please see :ref:`sccb:sccb-requests-procedure`.
......@@ -18,3 +18,4 @@
compiling/index
packaging/index
tips/index
change-control/index
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment