The Science Pipelines are required to be portable across many compute platforms ranging from high-performance computing centers to laptops (refer to DMS-REQ-0308 in LSE-61). The software will likely work on any Unix-like systems but we limit our testing and support to a fixed set of platforms. Patches may be accepted from developers who test on other operating systems.
We have a baseline platform which is what we are using for integration testing and deployments. For each product, we also have a number of other platforms which are regularly tested by our continuous integration system to enhance portability.
The baseline platform is currently CentOS 7 on Intel x86_64.
We aim to stay current with CentOS 7 minor releases. Our base OS container will typically be updated to the current CentOS 7 release shortly after each major release of the Science Pipelines. Shared development machines will be updated on their own schedule during periodic maintenance downtime.
We regularly test the following platforms in addition to the baseline platform:
macOS Big Sur (11.0);
macOS Catalina (10.15).
See https://ci.lsst.codes for the current list of regularly-tested platforms. (The “osx” platform there for the “stack-os-matrix” job randomly chooses a Big Sur or Catalina machine for each execution to limit load.)
On each of these platforms, we rely on Conda and conda-forge to provide our build- and run-time dependencies, including compilers and the Python interpreter.
The Conda environment for Science Pipelines is generated by the rubin-env metapackage.
This defines the environment within which our code must execute: all code must be compatible with the current version of
Compatibility with different versions is determined by the
rubin-env semantic version number.
The Conda environment is periodically updated to maintain compatibility, to utilize new features of third-party packages, or to add new dependencies.
To request that a new package be added to the environment, please file an RFC.