Skip to content

TestPlatforms

Michael Ekstrand edited this page Aug 7, 2018 · 9 revisions

We try to make LKPY usable in a wide range of test environments. Some of these are routinely exercised in our CI environment; others require manual testing.

Our basic target is to support Python version 3.5 and later on Windows, macOS, and Linux. We optimize for Conda-based installs, but LKPY should work in any supported Python environment. This optimization priority means that we are fine with optimizations that work in Conda-provided Python environments but are harder to get working in other settings.

Our minimum Python version is the latest available in default repositories for the current stable or long-term support release of the major Linux distributions (Ubuntu, CentOS/RHEL, and Debian). Since RHEL7 does not ship Python 3, we use the version in EPEL as our baseline. As of August 2018, this means we support Python 3.5, the latest shipped in Debian Stretch.

Linux

Pythons:

  • Conda Python 3.5–3.7, Conda GCC
  • System Python (when >= 3.5), System GCC
  • Vanilla Python 3.5–3.7 (with pyenv or Docker), System GCC

Distributions:

  • Conda (any Linux distro)
  • Debian Stable (Stretch)
  • Latest Ubuntu LTS
  • Latest RHEL/CentOS with Python from EPEL
  • Alpine is nice-to-have but not currently tested

CI runs Vanilla Python 3.5-3.6 and Conda Python 3.6–3.7 on Debian Stretch. Test coverage is from Conda Python 3.6.

Windows

On Windows, the Cython code needs to be compiled with Visual Studio 2015 or better.

Pythons:

  • Conda Python 3.5–3.7
  • Vanilla Python 3.5–3.7 (Scoop is useful for installing)

CI runs Conda Python 3.6.

macOS

OpenMP support on macOS is finicky and dependent on compiler/OpenMP/mkl matches.

Pythons:

  • Conda Python 3.5–3.7, Conda clang; parallel builds require USE_OPENMP=intel and llvm-openmp
  • MacPorts Python 3.5–3.7, MacPorts GCC, GNU OpenMP

Potential future Pythons to target:

  • Homebrew Python
  • Vanilla Python 3.5–3.7 (from pyenv?), system clang, no OpenMP

CI runs in Conda Python 3.6 with USE_OPENMP=intel.

Clone this wiki locally