Change control for IGWN Conda¶
This document describes how the contents of the IGWN Conda Distribution is controlled, and how to suggest or request a change.
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:
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 the following, with each package specified
as name=version
:
Upstream packages definition
dependencies:
- astroplan=0.5
- astropy=3.2.3
- autoconf=2.69
- automake=1.16.1
- bc=1.07.1
- beautifulsoup4=4.8.1
- boost-cpp=1.70.0
- celery=4.3.0
- celery-eternal=0.1.1
Upstream package pinning
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
IGWN Conda packages would simply not be selected by the conda solver
anyway.
IGWN packages¶
The IGWN 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:
{!packages/ligo.skymap.yaml!}
IGWN package pinning
IGWN 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 Preprocessing selectors for more details on how these are used by conda-build. The IGWN Conda build tools recognise the following subset of selectors:
py
, the<major><minor>
python version without dots, e.g.37
linux
osx
Additionally, {{ py }}
can be used as a Jinja2-style substitution
variable.
Changing the package list¶
1. Open an SCCB ticket¶
All changes to packages should be preceded by an SCCB request ticket that details the desired change, see Software change requests with the SCCB for full details.
2. Propose changes to the package definitions files¶
Open a merge request that adds/removes/updates the necessary package definitions files.
If you need help, just ask
If you don't feel confident proposing a specific change the definitions files for whatever reason, please post a comment on your SCCB ticket and someone from the IGWN computing team will be happy to propose the change on your behalf.
The changes will be automatically tested, then merged onto the testing
git branch,
and deployed into the igwn-pyXY-testing
conda environments.
Once the SCCB has approved the request, the changes will then be merged onto the
staging
git branch and deployed into the igwn-pyXY-staging
conda environments.
A deployment will be scheduled either for the next appropriate opportunity, in
the case of an expedited request, or for the next regular maintenance slot.
The deployment will then be finalised by the creation of a new dated git tag, and the a set of stable conda environments will be deployed.