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

System requirements not aligned to Node.js release schedule #5396

Closed
MikeMcC399 opened this issue Jul 26, 2023 · 3 comments · Fixed by #5401
Closed

System requirements not aligned to Node.js release schedule #5396

MikeMcC399 opened this issue Jul 26, 2023 · 3 comments · Fixed by #5401
Assignees

Comments

@MikeMcC399
Copy link
Contributor

Subject

Getting Started > Installing Cypress > Node.js

Description

Getting Started > Installing Cypress > Node.js includes versions of Node.js which have passed into end-of-life status. This is no longer in line with the Node.js release schedule:

  • Node.js 14 passed into end-of-life status on Apr 30, 2023
  • Node.js 19 passed into end-of-life status on Jun 1, 2023
  • Node.js 20 was released on Apr 18, 2023

(in addition

  • Node.js 16 is planned to transition into end-of-life status on Sep 11, 2023)

image

@MikeMcC399
Copy link
Contributor Author

Currently:

- **Node.js** 14.x
- **Node.js** 16.x
- **Node.js** 18.x and above

In order to conform to the current npm release schedule, it would need to say

  • Node.js 16.x
  • Node.js 18.x
  • Node.js 20.x and above

It should be decided whether this is changed in advance of the Cypress npm module changing its engine definition in

cypress-io/cypress/blob/develop/cli/package.json which currently specifies:

  "engines": {
    "node": "^14.0.0 || ^16.0.0 || >=18.0.0"
  },

Perhaps this is something that should be changed for the Cypress 13.x release?

Changing the engine constraints to exclude any Node.js version would be a breaking change and therefore only suitable for a major version release.

@jaffrepaul
Copy link
Contributor

jaffrepaul commented Jul 28, 2023

Good catch @MikeMcC399. I checked with the team and bumping the supported node versions in v13 didn't make the cut based on available resources. But they'd be happy to review a PR if you wanted to give making that change a shot. To my knowledge it would require:

@MikeMcC399
Copy link
Contributor Author

Hi @jaffrepaul and thanks for checking with the team!

  • I have submitted PR update supported Node.js versions #5401 to make changes to the documentation Getting Started > Installing Cypress > Node.js so that it conforms to the Node.js release schedule. This will help guide users so that they know which Node.js versions they should be using. The updated documentation list is stricter than Cypress' current engine definition and it is OK for the engine enforcement to lag behind. That will not break any user workflows. The PR is sufficient to close this issue.

  • At this time I don't have enough experience to tackle the Cypress core and Cypress Docker image PRs that you suggested in order to update all the related bits and pieces, so I would not feel comfortable attempting this, especially as it involves a breaking change.

  • This topic should be revisited when Node.js 16 enters end-of-life (planned for on Sep 11, 2023). Currently Cypress 12.x is locked to Node.js 16.16.0 (see .node-version). There is also nothing so far in the release/13.0.0 branch to change this. The cypress-io/github-action Cypress JavaScript Action is locked to node16 (see Release github-action for Node.js node20 github-action#968) until GitHub provides support for node20, so I would expect there to be a phase when Cypress needs to continue working with Node.js 16 even after it has passed its end-of-life date.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants