Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

update documentation to display required minimum version of glibc and retroactively supported operating systems #5877

Merged
merged 4 commits into from
Jul 26, 2024

Conversation

AtofStryker
Copy link
Contributor

adds some documentation to our getting started page that shows our minimum glibc version, as well as retroactively supported linux distributions that should work with the cypress binary

Copy link
Contributor

@MikeMcC399 MikeMcC399 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AtofStryker

My understanding is that Node.js requires a minimum of glibc 2.28, so this addition to the documentation would be conflicting with the requirement to use a supported version of Node.js. The currently listed Linux operating systems meet this requirement.

There are some links and discussions in #5444 (comment) and #5444 (comment) about this subject.

See also detailed list on https://github.com/nodejs/node/blob/v18.x/BUILDING.md#platform-list

@jennifer-shehane
Copy link
Member

jennifer-shehane commented Jul 25, 2024

@MikeMcC399 Technically the language we used on Cypress v13 was that Node.js 16 was deprecated:

Node 14 support has been removed and Node 16 support has been deprecated. Node 16 may continue to work with Cypress v13, but will not be supported moving forward to closer coincide with Node 16's end-of-life schedule. It is recommended that users update to at least Node 18.

We're a bit in a spot where if we want to remove support for glibc 2.17, this will break users, so we're anticipating needing to do this in a future release and encourage users to upgrade now.

@MikeMcC399
Copy link
Contributor

@jennifer-shehane

I understand where you are coming from now. I can try and reword the text into a deprecation notice if you want.

@jennifer-shehane
Copy link
Member

@MikeMcC399 Yah, if you think some other wording makes sense, that'd be great.

@MikeMcC399
Copy link
Contributor

@jennifer-shehane

Building on the previous deprecation notice, I'm wondering if this wouldn't also be better placed in the next release notes.

If it needs to go into the documentation, then my suggestion would be the following. It avoids mentioning the unsupported operating systems by name (they were previously not listed anyway) and puts the onus on users to check their glibc version using the Linux command ldd --version


Node.js 18.x and above requires a minimum library version glibc 2.28 on Linux operating systems. The above listed operating system versions meet this requirement.

Cypress deprecated the use of Node.js 16.x in the Cypress 13.0.0 release notes in Aug 2023 and recommends that users update to at least Node.js 18.x. For related reasons, Cypress deprecates the use of Linux operating systems with library version glibc 2.17 - glibc 2.27. The Linux CLI command ldd --version displays your glibc version.

@AtofStryker
Copy link
Contributor Author

@jennifer-shehane @MikeMcC399 I applied the suggestions in e69d00a. @jennifer-shehane with the next release do we want to make notice about the glibc deprecations?

- **Windows** 10 and above _(64-bit only)_
below).
- Cypress deprecated the use of Node.js `16.x` in Cypress [`13.0.0`](/guides/references/changelog#13-0-0). We recommend that users update to at least Node.js `18.x`.
For related reasons, Cypress deprecates the use of Linux operating systems with library [`glibc`](https://www.gnu.org/software/libc/) versions `2.17` - `2.27`. The Linux CLI command `ldd --version` displays your glibc version.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should a note under linux prerequisites be made re: minimum glibc version?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -231,7 +231,7 @@ requirements:
### Linux Prerequisites

If you're using Linux, you'll want to have the required dependencies installed
on your system. Depending on your system defaults, these dependencies may already be installed.
on your system. Cypress on Linux requires a minimum [`glibc`](https://www.gnu.org/software/libc/) version of `2.17`. Depending on your system defaults, these dependencies may already be installed.
Copy link
Contributor

@MikeMcC399 MikeMcC399 Jul 26, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That does not read so well in front of the sentence "Depending on your system defaults, these dependencies may already be installed." as it implies that you can change it, whereas it is a fixed version completely tied to the version of the operating system you are using. It would be better as a separate paragraph or dropped from this section.

The follow-on paragraph also suggests that you can install a different version.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How is something like 091fe97?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm fine with the replacement paragraph.

Copy link
Contributor

@MikeMcC399 MikeMcC399 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good to go as far as I'm concerned!

@MikeMcC399
Copy link
Contributor

Selected versions for reference ...
Correct to the best of my knowledge, but in case of doubt please confirm through own research!

Unsupported by Node.js 18.x (glibc < 2.28)

OS version GLIBC version EOL
CentOS Linux release 7.9.2009 (Core) ldd (GNU libc) 2.17 June 30, 2024
Amazon Linux release 2 (Karoo) ldd (GNU libc) 2.26 Jun 30, 2025
Ubuntu 18.04.6 LTS ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27 May 31, 2023

Supported by Node.js 18.x (glibc >= 2.28)

OS version GLIBC version EOL
Amazon Linux release 2023.5.20240708 (Amazon Linux) ldd (GNU libc) 2.34
Ubuntu 20.04.6 LTS ldd (Ubuntu GLIBC 2.31-0ubuntu9.16) 2.31
Ubuntu 22.04.4 LTS ldd (Ubuntu GLIBC 2.35-0ubuntu3.8) 2.35
Ubuntu 24.04 LTS ldd (Ubuntu GLIBC 2.39-0ubuntu8.2) 2.39
Fedora release 38 (Thirty Eight) ldd (GNU libc) 2.37 May 21, 2024
Fedora release 39 (Thirty Nine) ldd (GNU libc) 2.38
Fedora release 40 (Forty) ldd (GNU libc) 2.39
Debian 10.13 ldd (Debian GLIBC 2.28-10+deb10u3) 2.28 Jun 30, 2024
Debian 11.10 ldd (Debian GLIBC 2.31-13+deb11u10) 2.31
Debian 12.6 ldd (Debian GLIBC 2.36-9+deb12u7) 2.36

@AtofStryker
Copy link
Contributor Author

Selected versions for reference ... Correct to the best of my knowledge, but in case of doubt please confirm through own research!

Unsupported by Node.js 18.x (glibc < 2.28)

OS version GLIBC version EOL
CentOS Linux release 7.9.2009 (Core) ldd (GNU libc) 2.17 June 30, 2024
Amazon Linux release 2 (Karoo) ldd (GNU libc) 2.26 Jun 30, 2025
Ubuntu 18.04.6 LTS ldd (Ubuntu GLIBC 2.27-3ubuntu1.6) 2.27 May 31, 2023

Supported by Node.js 18.x (glibc >= 2.28)

OS version GLIBC version EOL
Amazon Linux release 2023.5.20240708 (Amazon Linux) ldd (GNU libc) 2.34
Ubuntu 20.04.6 LTS ldd (Ubuntu GLIBC 2.31-0ubuntu9.16) 2.31
Ubuntu 22.04.4 LTS ldd (Ubuntu GLIBC 2.35-0ubuntu3.8) 2.35
Ubuntu 24.04 LTS ldd (Ubuntu GLIBC 2.39-0ubuntu8.2) 2.39
Fedora release 38 (Thirty Eight) ldd (GNU libc) 2.37 May 21, 2024
Fedora release 39 (Thirty Nine) ldd (GNU libc) 2.38
Fedora release 40 (Forty) ldd (GNU libc) 2.39
Debian 10.13 ldd (Debian GLIBC 2.28-10+deb10u3) 2.28 Jun 30, 2024
Debian 11.10 ldd (Debian GLIBC 2.31-13+deb11u10) 2.31
Debian 12.6 ldd (Debian GLIBC 2.36-9+deb12u7) 2.36

at a glance it looks pretty close to what we gathered

Distribution Code Name Docker Image GLIBC Version EOS EOL
Ubuntu 14 Trusty Tahr ubuntu:trusty 2.19 April 2019 April 2026
Ubuntu 16 Xenial Xerus ubuntu:xerus 2.23 April 2021 April 2028
Ubuntu 18 Bionic Beaver ubuntu:beaver 2.27 June 2023 April 2030
Ubuntu 20 Focal Fossa ubuntu:fossa 2.31 April 2025 April 2032
Ubuntu 22 Jammy Jellyfish ubuntu:jammy 2.35 June 2027 April 2034
Ubuntu 24 Noble Numbat ubuntu:noble 2.39 June 2029 April 2036
RHEL 7 2.17 June 2024 N/A
RHEL 8 2.28 2029 N/A
RHEL 9 2.28 2032 N/A
CentOS 7 2.17 June 2024 June 2024
CentOS 8 2.28 June 2021 May 2024
Debian 10 Buster debian:buster-slim 2.28 June 2024 N/A
Debian 11 Bullseye debian:bullseye-slim 2.31 June 2026 N/A
Debian 12 Bookworm debian:bookworm-slim 2.36 June 2028 N/A
Amazon Linux 2 2.26 June 2025 June 2025
Amazon Linux 2023 2.34 June 2025 June 2028
Fedora 38 fedora:38 2.37 May 2024 May 2024
Fedora 39 fedora:39 2.38 November 2024 November 2024
Fedora 40 fedora:40 2.39 May 2025 November 2025

@AtofStryker AtofStryker merged commit cf37c00 into main Jul 26, 2024
7 checks passed
@AtofStryker AtofStryker deleted the update_linux_docs branch July 26, 2024 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants