Platform support¶
This document describes how SuperCollider decides which platforms to support. For information on which versions of SuperCollider support which platforms, see the README.md or the website download page.
This policy was implemented as a result of https://github.com/supercollider/rfcs/pull/1.
Support guarantees¶
The development community for SuperCollider has agreed on some guarantees about support for various platforms and toolchains. Anything that breaks these guarantees should be fixed as soon as possible.
These guarantees should not be taken as an indication that we do not intend to support older platforms. On the contrary, care should be taken not to lose support for platforms with which SuperCollider is currently compatible, unless there are good reasons for doing so, and patches to add or restore support for any platform are welcome.
Reasons to drop support include:
newer versions of tools and libraries have dropped support
security issues
the OS vendor itself has dropped support (for example, in Windows or macOS SDKs)
significant features require a feature not available on an older platform, and there is no practial way to make the feature configurable
These guarantees are given as both a number of years and number of releases. Whichever period is longer applies. For instance, macOS is supported for 2 years and 2 major releases. That means that any new version of macOS released in the last 2 years is supported, and that the last two major releases of macOS are always supported. At present (2020-04-02) that would be macOS Mojave 10.14 and Catalina 10.15.
These guarantees are for the official releases published on GitHub and the supercollider.github.io website (pre-compiled binaries on macOS and Windows, and a built-from-source binary on Linuxes).
Platforms¶
The following platforms are supported:
macOS: 2 years, 2 major releases (i.e. Mojave 10.14, Catalina 10.15)
Windows: 4 years, 4 major updates
Ubuntu: 4 years, 2 LTS releases
Debian: 4 years, 2 major releases
Fedora: latest release
Arch Linux: latest release
Raspberry Pi (Raspbian): latest release
BeagleBone Black (Debian): latest release
“Compatibility” on Linuxes means there exists some toolchain easily obtainable – preferably through the standard package manager of that plaform, or the one used for cross-compiling – that can build SuperCollider.
Toolchains¶
SuperCollider also makes some guarantees about the toolchains (libraries, compilers, and other third-party software) that can be used to compile it.
The official minor release of SuperCollider is guaranteed to be compatible with:
Xcode: 2 years, 2 major releases
gcc: 4 years, 4 major releases
clang: 4 years, 4 major releases
MSVC: 4 years, 2 major releases
Qt: 2 years, 1 LTS release
As much as possible, SuperCollider should support building with the latest release of Boost, and the version packaged in the source tree should be updated reasonably soon after a release.
Other libraries and tools which SuperCollider uses:
CMake
libsndfile
libjack
fftw
git
ALSA
libudev
libreadline
Asio SDK
NSIS
libyaml-cpp
These are not given guarantees either because:
a compatible version is included in the SuperCollider repository itself, or
the library is relatively stable and so no additional compatibility requirements are necessary, or
there have been few compatibility issues with the library.
Support guarantees can be added if needed.
Patch releases¶
To the extent that it is possible and practical, the supported platforms and toolchains for a minor SuperCollider release should also be supported by patch releases within that same minor release. For example, if SuperCollider 3.11.0 supports Debian Buster, so should 3.11.1, 3.11.2, and so on.