|
|
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 |