Supported Platforms

Introduction

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.

Platforms

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.

Note

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 Monterey (12.x);

  • macOS Ventura (13.x).

See https://rubin-ci.slac.stanford.edu/blue 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.)

Environment

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 rubin-env. 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.