cypress-documentation
cypress-documentation copied to clipboard
Operating System support lists vendor unsupported versions
Subject
Getting Started > Installing Cypress > System requirements > Operating System
Description
System requirements > Operating System lists OS versions which are no longer under vendor support.
Should the current list below be updated to list only operating systems which are still supported by their respective vendors?
Current list
- macOS 10.9 and above (Intel or Apple Silicon 64-bit (x64 or arm64))
- Linux Ubuntu ~~12.04~~ 20.04 and above, Fedora 21 and Debian 8 (x86_64 or Arm 64-bit (x64 or arm64)) (see Linux Prerequisites down below)
- Windows ~~7~~ 10 and above (64-bit only)
Vendor lifecycle information
Note: resolved OS entries in the list below are marked in the respective check-box:
-
[ ] According to https://endoflife.date/macos macOS 10.9 service status ended on Dec 1, 2016.
-
[x] Ubuntu 20.04 is the earliest version still supported in its Standard Support phase according to https://ubuntu.com/about/release-cycle. Ubuntu 14.04, 16.04 & 18.04 are in their Extended Security Maintenance phase. Ubuntu 12.04 is now unsupported. Edit: Changed to minimum Ubuntu 22.04.
-
[ ] Fedora ~~37~~ 38 is the earliest version still supported and Fedora 21 entered end-of-life on Dec 1, 2015 according to https://docs.fedoraproject.org/en-US/releases/eol/.
-
[ ] Debian 8 is supported in Extended Long Term Support according to https://wiki.debian.org/LTS/Extended.
-
[x] Windows 7 last support date was January 2023 (see https://learn.microsoft.com/en-us/lifecycle/products/windows-7). Edit: Changed to minimum Windows 10.
-
[ ] A Windows server system is missing from the list.
GitHub current images
See GitHub Actions Runner Images for list of currently available images.
Notes
https://endoflife.date/ is also a convenient non-primary source for many end-of-life dates.
@jennifer-shehane can you weigh in? We can delegate the update if this is ✅
It lists only "Debian 8" without saying "and above" so theoretically none of the current Cypress Docker images are supported if only Debian 8 (jessie), and not Debian 10 (buster) and 11 (bullseye), are supported.
https://docs.cypress.io/guides/cloud/test-replay#Troubleshooting mentions CentOS, however this is not in the list of supported operating systems, although further down on the page with System requirements > Operating System in it "CentOS" and "Amazon Linux 2023" are listed under Linux Prerequisites without them appearing in the original list, so it's all a bit inconsistent and confusing!
CentOS Linux 7 has an end of life in 2024. We have had these users report issues when accessing Test Replay in Cypress Cloud. This could be due to GCC version compatibility with better-sqlite3. We recommend using CentOS 8 rather than 7, or try following the steps noted in this installing better-sqlite3 on Centos 7 Github Issue.
- Errors related to https://github.com/cypress-io/cypress/issues/27902 are now being reported and it is unclear which versions of which operating systems are fully supported by Cypress. Older Linux versions appear to cause this problem.
Node.js 18 is the earliest version which is not already in end-of-life status and it is the earliest version listed in the Cypress documentation under Getting Started > Installing Cypress > System requirements > Node.js.
Node.js 18 requires a minimum of GLIBC 2.28 on x64 Linux systems (see https://github.com/nodejs/node/blob/v18.0.0/BUILDING.md#unix-prerequisites). Node.js 18.0.0 and later versions output the error message:
node: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by node)
and will not run.
This means that operating systems such as Ubuntu 18.04 where executing ldd --version shows an older version (ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27), which does not meet the minimum GLIBC requirements of 2.28, should probably no longer be listed as supported by Cypress.
For Ubuntu the minimum supported version by Node.js 18 is Ubuntu 20.04. Here are the GLIBC details:
| OS version | GLIBC version | minimum GLIBC 28? |
|---|---|---|
| Ubuntu 18.04.6 LTS | ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27 | NO |
| Ubuntu 20.04.6 LTS | ldd (Ubuntu GLIBC 2.31-0ubuntu9.9) 2.31 | YES |
| Ubuntu 22.04.3 LTS | ldd (Ubuntu GLIBC 2.35-0ubuntu3.3) 2.35 | YES |
@jennifer-shehane can this be prioritized by the app team?
For CentOS 7 there is a rebuild of Node.js 18 available on https://github.com/sbwml/node-latest-centos to resolve the GLIBC compatibility issue. I have no first-hand knowledge whether this works or not though.
- Detailed closed discussion in https://github.com/nodejs/node/issues/43246
@MikeMcC399 We're open to a pull request to update the OS list. It's just something that we update as necessary when we know our product absolutely does not work in an earlier version, it's not something we actively monitor to see what is EOL.
@jennifer-shehane
This is in response to your comment that you are open to a pull-request. Here are two related ones:
- #5515
- #5516
These PRs are for the operating system families I use and I am familiar with.
- PR #5766 submitted to update the system requirements to a minimum of Debian 10
I will also submit a separate PR to update Fedora to a minimum of Fedora 38.
- PR https://github.com/cypress-io/cypress-documentation/pull/5768 for Fedora is also now submitted.
This issue is now resolved and all relevant minimum operating systems versions have been updated.
The issue about a missing Windows Server entry is a separate topic.