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

chore!: remove Node.js 21.x from the range of supported versions #594

Merged
merged 4 commits into from
Jan 19, 2025

Conversation

MikeMcC399
Copy link
Contributor

@MikeMcC399 MikeMcC399 commented Jan 14, 2025

Issue

  1. Node.js 21 entered end-of-life on Jun 6, 2024. It is however still allowed by:

corepack/package.json

Lines 12 to 14 in 0ae3c3c

"engines": {
"node": "^18.17.1 || >=20.10.0"
},

  1. The workflow ci.yml continues to test it:

matrix:
node:
- 18
- 20
- 21
- 22

  1. There is no version of better-sqlite3 (used in devDependencies) which supports both Node.js 21 and 23, so continuing support for Node.js 21 blocks supporting Node.js 23.

Change

Additional change

@MikeMcC399 MikeMcC399 marked this pull request as ready for review January 14, 2025 09:26
package.json Outdated Show resolved Hide resolved
@aduh95
Copy link
Contributor

aduh95 commented Jan 14, 2025

It looks like the exit code is different on Windows with Node.js 23.x for some reason 🤔

@MikeMcC399
Copy link
Contributor Author

@aduh95

It looks like the exit code is different on Windows with Node.js 23.x for some reason 🤔

That is going to need separate investigation. The test appears to be flaky, as I had previously seen it successful.

I am going to remove Node.js 23 tests from this PR so it should then pass all tests. Stand by!

@MikeMcC399 MikeMcC399 marked this pull request as draft January 14, 2025 11:39
MikeMcC399 and others added 2 commits January 14, 2025 12:41
@aduh95
Copy link
Contributor

aduh95 commented Jan 14, 2025

I don't think removing 23.x is the correct way forward, it looks like it would be more reasonable to either skip this particular test on 23.x, or account for the other exit code. AFAICT it's not flaky on CI, it looks like it's consistently failing with the same error

@MikeMcC399
Copy link
Contributor Author

MikeMcC399 commented Jan 14, 2025

@aduh95

I don't think removing 23.x is the correct way forward, it looks like it would be more reasonable to either skip this particular test on 23.x, or account for the other exit code. AFAICT it's not flaky on CI, it looks like it's consistently failing with the same error

I talking about moving the update to test in 23.x into a separate PR and this is a different issue which needs to be resolved.

In https://github.com/MikeMcC399/corepack/actions/runs/12744446123/job/35517323345 it is passing, so that is why I say it is flaky.

@MikeMcC399 MikeMcC399 marked this pull request as ready for review January 14, 2025 11:58
@MikeMcC399
Copy link
Contributor Author

MikeMcC399 commented Jan 14, 2025

@aduh95

I suggest to merge this now, since it cleanly passes CI. It's a good basis now for working out what to do with Node.js 23 separately.

@MikeMcC399
Copy link
Contributor Author

@aduh95

@aduh95
Copy link
Contributor

aduh95 commented Jan 14, 2025

I talking about moving the update to test in 23.x into a separate PR and this is a different issue which needs to be resolved.

Is it a different issue? It seems to me that it's very much related, we're dropping 21.x support because we want to support 23.x and there's no other solution because of what supports better-sqlite3.
I think I would prefer we address it in this PR, either by editing the test and adding a TODO, or by fixing the underlying issue if we're able to figure it out

@MikeMcC399
Copy link
Contributor Author

MikeMcC399 commented Jan 15, 2025

@aduh95

  • You are right that the motivation was to test in Node.js 23, however dropping Node.js 21 should be done in any case since it is EOL. That was done separately for Node.js 19 in PR chore!: remove Node.js 19.x from the range of supported versions #375.

  • I would prefer to merge this PR as is. I generally prefer smaller self-contained PRs. Would it break something if it is merged now? Perhaps I am missing something?

  • Your preference is different and involves solving ci vitest fails "handle integrity checks" on Windows Node.js 23 #597 as a prerequisite. It's your decision of course. At this point in time I don't think I can contribute much more however. I also can't predict how long it will take to resolve this issue, and therefore how long potentially this PR would need to wait before it could be updated.

@MikeMcC399
Copy link
Contributor Author

@aduh95

  • Thank you for progressing the issue ci vitest fails "handle integrity checks" on Windows Node.js 23 #597! At this time I would assume that the test problem in corepack is caused by a regression in Node.js 23.0.0 for Windows, that it will be fixed in Node.js and that it will need at least a few weeks to get a fix into a new Node.js 23.x release.

In the meantime I propose to add Node.js 23 to the test matrix for corepack and temporarily exclude testing on Windows with Node.js 23. I think this is the cleanest solution. Windows is already being tested on other Node.js versions (18, 20 & 22), so the testing gap is minimal.

The advantage is that introducing tests with Node.js 23.x for Ubuntu and macOS is not delayed further.

Once the Windows issue is solved, it is easy to remove the exclusion.

I believe this PR is now in a state where you could consider merging it.

@MikeMcC399 MikeMcC399 requested a review from aduh95 January 19, 2025 10:33
@aduh95
Copy link
Contributor

aduh95 commented Jan 19, 2025

Thanks for pushing for it :)

@aduh95 aduh95 merged commit 8bebc0c into nodejs:main Jan 19, 2025
12 checks passed
@MikeMcC399 MikeMcC399 deleted the drop/node-21.x branch January 19, 2025 13:04
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.

Update better-sqlite3 to >= 11.5.0
2 participants