Supported OS & Software Policy ============================== == Supported Operating Systems The following operating systems are fully supported. That means that software following this policy should be able to work on them easily and robustly and compile and run cleanly without problems. * Debian GNU/Linux * Ubuntu * CentOS Linux (not CentOS Stream) The following operating systems are partially supported. That means code will be written with portability in mind and patches will generally be accepted to address issues. * FreeBSD * NetBSD * macOS Patches to support other operating systems may be accepted if they are not too burdensome and do not involve extensive changes. A party may volunteer to maintain support for another operating system if desired, provided appropriate CI can be set up and an appropriate turnaround time on platform-specific issues can be maintained. For all of these operating systems, the most recent major version of the operating system is supported. If the OS provides specific long-term support (LTS) versions that differ from regular versions, then the most recent LTS version is also supported. If the most recent LTS version is less than a year old, the previous LTS is supported until the most recent LTS is a year old. An OS version with an intended life of greater than or equal to five years is considered an LTS whether or not the vendor marks it as one. In addition, Debian unstable (_sid_) is fully supported. For example, in November 2016, the following versions of Ubuntu would be supported: * Ubuntu 16.10 (most recent) * Ubuntu 16.04 (most recent LTS) * Ubuntu 14.04 (previous LTS; only until 2017-04) == Supported Architectures All architectures supported by the most recent stable release of Debian GNU/Linux are fully supported, although it may not always be possible for us to troubleshoot problems due to lack of hardware. Architectures available only in Debian unstable are partially supported. Note that combinations of hardware or architecture that are not supported by an operating system are not supported. For example, Hackintoshes or external third-party ports to other architectures. == Supported Software Policy Generally, the build and runtime stack of fully supported systems is supported. Software will compile with those compilers and run on those interpreters. Additional modules or software may be required; however, it should generally be compatible with those versions. For example, as of September 2016, Perl code would be expected to target 5.16 and Ruby code would be expected to target 1.9.3, as these are the oldest supported versions in any fully supported OS. In addition, all Python code must function correctly on, at a minimum, the relevant versions of Python 3. == Unsupported Systems No patches will be accepted, nor will support be provided, for systems for which security support is no longer available free of charge. Systems without security updates are a hazard to the Internet, and supporting them is detrimental to the public good.