Building and Packaging EPICS Modules With Conda

Benjamin Bertrand, Anders Harrisson, White, Karen S. (Ed.), Brown, Kevin A. (Ed.), Dyer, Philip S. (Ed.), Schaa, Volker RW (Ed.)
Conda is an open source package, dependency and environment management system. It runs on Windows, macOS and Linux and can package and distribute software for any language (Python, R, Ruby, C/C++...). It allows one to build a software in a clean and repeatable way. EPICS is made of many different modules that need to be compiled together. Conda makes it easy to define and track dependencies between EPICS base and the different modules (and their versions). Anaconda's new compilers allow conda
more » ... build binaries that can run on any modern linux distribution (x86₆4). Not relying on any specific OS packages removes issues that can arise when upgrading the OS. At ESS, conda packages are built using gitlab-ci and pushed to a local channel on our Artifactory server. Using conda makes it easy for the users to install the EPICS modules they want, where they want (locally on a machine, in a docker container for testing...). All dependencies and requirements are handled by conda. Conda environments make it possible to work on different versions on the same machine without any conflict.
doi:10.18429/jacow-icalepcs2019-mopha014 fatcat:m2rdrylpofhb3mhbasdagkpo3q