cypress-documentation icon indicating copy to clipboard operation
cypress-documentation copied to clipboard

Operating System support lists vendor unsupported versions

Open MikeMcC399 opened this issue 2 years ago • 11 comments

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.

MikeMcC399 avatar Aug 28 '23 11:08 MikeMcC399

@jennifer-shehane can you weigh in? We can delegate the update if this is ✅

jaffrepaul avatar Sep 08 '23 14:09 jaffrepaul

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.

MikeMcC399 avatar Sep 21 '23 15:09 MikeMcC399

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.

MikeMcC399 avatar Sep 27 '23 18:09 MikeMcC399

  • 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.

MikeMcC399 avatar Sep 28 '23 09:09 MikeMcC399

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.

MikeMcC399 avatar Sep 30 '23 07:09 MikeMcC399

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

MikeMcC399 avatar Oct 01 '23 15:10 MikeMcC399

@jennifer-shehane can this be prioritized by the app team?

jaffrepaul avatar Oct 02 '23 15:10 jaffrepaul

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 avatar Oct 03 '23 10:10 MikeMcC399

@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 avatar Oct 03 '23 15:10 jennifer-shehane

@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.

MikeMcC399 avatar Oct 04 '23 12:10 MikeMcC399

  • 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.

MikeMcC399 avatar Mar 26 '24 13:03 MikeMcC399

  • PR https://github.com/cypress-io/cypress-documentation/pull/5768 for Fedora is also now submitted.

MikeMcC399 avatar Mar 26 '24 16:03 MikeMcC399

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.

MikeMcC399 avatar Apr 01 '24 18:04 MikeMcC399