Update Conda authored by Jameson Rollins's avatar Jameson Rollins
Overview of [conda](https://conda.io/) and [conda-forge](https://conda-forge.org/) distribution of CDS packages.
The plan is to make all CDS workstation software available via conda, through the same "conda-forge" channel that all LSCSoft software is available from:
* https://lscsoft.docs.ligo.org/conda/
* https://lscsoft.docs.ligo.org/conda/packaging/
The list of packages that define the "official" lscsoft set is defined here:
* https://git.ligo.org/computing/conda
## CDS packaging status
Existing feedstocks:
* https://github.com/conda-forge/guardian-feedstock
* https://github.com/conda-forge/gpstime-feedstock
* https://github.com/conda-forge/ndscope-feedstock
Missing packages:
* DTT
* cdsutils
* python3-ezca
Other needed stuff:
* git/gitk (both in `git` package)
* ?
### EPICS
EPICS has some issues that need to be resolved. There are two epics "base" packages: `epics-base` which is 3.15.6, and `epicscorelibs` which is based on "EPICS 7":
* https://github.com/conda-forge/epics-base-feedstock
* https://github.com/conda-forge/epicscorelibs-feedstock
* https://github.com/conda-forge/pyepics-feedstock
* https://github.com/conda-forge/pcaspy-feedstock
Unfortunately, pyepics and pcaspy (both dependencies of guardian) are using the different versions:
* https://github.com/conda-forge/pyepics-feedstock/issues/19
Extensions:
* MEDM (requires epics-extensions)
* StripTool (requires epics-extensions)
`epics-base` installs the ca binaries in a non-standard path that is not linked in by default (`$EPICS_BASE/bin/linux-x86_64`):
* https://github.com/conda-forge/epics-base-feedstock/issues/5
## CI builds
We would like all CDS software building conda packages via gitlab CI. Here's an example of how it's done for the lalsuite project:
* https://git.ligo.org/lscsoft/lalsuite/blob/master/.gitlab-ci.yml#L191
* https://git.ligo.org/lscsoft/lalsuite/blob/master/.gitlab-ci.yml#L317
## Repo mirroring
CDS will likely want to mirror conda-forge for site distribution:
* https://wiki.ligo.org/Computing/Conda#Self_45hosting
## local builds
It's possible to build and "distribute" conda packages locally.
* https://lscsoft.docs.ligo.org/conda/packaging/#testing-package-builds
This is demonstrated in the lalsuite CI above. There are two relevant environment variables:
* `CONDA_BLD_PATH`: package build dir
* `CONDA_PKGS_DIRS`: conda install dir
With these defined, the following local build/install should work:
```shell
$ git clone https://github.com/conda-forge/lal-feedstock.git
$ cd lal-feedstock
$ conda build recipe
```
Then:
```shell
$ conda install --use-local lal
```
\ No newline at end of file