-
Notifications
You must be signed in to change notification settings - Fork 215
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
drop Node 16 (EOL) #8365
drop Node 16 (EOL) #8365
Conversation
.github/workflows/integration.yml
Outdated
@@ -61,7 +61,7 @@ jobs: | |||
# Prerequisites | |||
- uses: ./.github/actions/restore-node | |||
with: | |||
node-version: 16.x | |||
node-version: 18.x |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Didn't realize we were still on Node 16 here!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This may be breaking the "getting-started" integration test.
cc @LuqiPan who is currently working on updating this test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is actually what we need to do: https://github.com/Agoric/agoric-sdk/pull/8829/files#diff-82454b2fc887e9985b9348b8f3bca03d2f839645a4c3ba1f3f850014d7da5c8bL60
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah yeah, pinning this at 18.18
might be the way to unblock for now. I'd like to get our dapps to handle node 18.19, but that's another story.
Do we actually need to already drop Node 16? Since this change needs to be synchronized with a change to GH required checks (manual process), and kinda wanted to only do this once when Node 20 gets LTS in a few weeks |
Technically there are about six weeks while 18 is the only LTS. I'm fine with doing the drop 16 at the same time as add 20, though either way we're fudging on what LTS is. Regarding GH checks, it's rare that we have an error in one Node and not the other. Why don't we drop the 16 checks now and when 20 is running in CI we enable those? That would reduce the need to rerun CI on open PRs. |
What about Endo? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Can you update the title and description to indicate this is adding Node 20?
Also we'll need to synchronize the update of branch protections
@@ -37,7 +37,7 @@ | |||
"typescript": "~5.3.2" | |||
}, | |||
"engines": { | |||
"node": "^16.13 || ^18.12" | |||
"node": "^18.12 || ^20.9" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🙏
Oh yikes, looks like bufferfromfile is not compatible with node >19 |
Oh we already have a fork, maybe we can patch it there. Upstream looks unmaintained. |
Agreed, Wandalen/BufferFromFile#53
https://github.com/agoric-labs/BufferFromFile I'll take a crack at it. |
Since Node 20 is blocked on the Bufferfile problem, @mhofman are you open now to dropping Node 16 without adopting 20? 16 is EOL so there's no point supporting it. |
For master I think that's ok. For the release branch I'd be more reticent. |
Integration errors below. In hindsight, when we have have a range of versions supported but only integrate with one, perhaps we should always integrate with the active LTS so that when it becomes the maintenance LTS we know it works. deployment-test (Loadgen)
getting-started (all)
I don't see any earlier errors in the log. Maybe it's an API change? |
This is a symptom of a problem fixed in endo ages ago: endojs/endo#1578 merged May 4 endojs/endo#1579 merged May 30 which, IIUC, is well before the endo release that agoric_sdk currently depends on. Where is this error coming from? What version of endo is it using? |
Oh the loadgen dapp might be relying on an old Endo version. We likely need to fix other dapps first too. |
FYI this Node 18 breakage is very recent (late November release), qnd has been trickling out this week. |
@turadg - This PR appears to be stuck. It's had a merge label for > 24 hours |
Are you saying 18.19 introduced the breakage and 18.18 should work? It's not in #8638 |
Correct. Node 18.19 introduced a breaking change to old versions of Endo / SES. agoric-sdk has long updated SES, but we were only testing dapps in Node 16 |
I think the 18.19 change is just what #8600 fixes. There's some other failure in getting-started (referenced above) but that's not a required check so this could land and we could follow up fixing that. For the 18.19, the patch against ses 0.18.4 isn't applying cleanly against 0.18.8. @kriskowal should we repatch or wait for Endo to be updated? |
#8600 is not necessary on master since the version of SES on master already includes that fix. |
@turadg - This PR appears to be stuck. It's had a merge label for > 24 hours |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Couple small tweaks needed. I added the force:integration
label to see how integration tests run with this change. Also please manually rebase this PR on top of the latest master
before merging, mergify and our CI checks have a limitation not enforcing our linear history rule when a merge commit exists in the branch.
packages/create-dapp/package.json
Outdated
"engines": { | ||
"node": "^18.12" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm thinking the create-dapp
package actually should keep an engines
field like the other packages
I think #8829 is the last piece before this can pass. CI seems to be failing due to the dependency on |
I would not block on that PR, and maybe force node |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
See also endojs/endo#2140 |
Description
See https://nodejs.dev/en/about/releases/
Node v16 hit EOL on Sep 11. This
drops it from matrix testing andnarrows engines from >14 to LTS.It adds a.node-version
file for those using tools like https://github.com/nodenv (multiple tools observe the file).The stricken parts were done in other PRs.
Security Considerations
Dropping unsupported versions should remove risks of exploits
Scaling Considerations
n/a
Documentation Considerations
https://docs.agoric.com/guides/getting-started/ already says to use an LTS version.
Testing Considerations
CI
Upgrade Considerations
Consumers using Node 14 or 16 will have to upgrade to 18.