-
Notifications
You must be signed in to change notification settings - Fork 224
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
tracking delayed dep updates because of old Node support #2760
Comments
Okay, changes leading to 4.x releases are on main now, so we can move on this. The new current base is v14.5.0. Full
Trimmed of things that aren't relevant to update for this, and with notes
|
lru-cache / async-cache update handling is being done in #3610. |
Actually we are not ready to update to
|
This updates a number of dependencies now that our base Node.js version is v14. There is some subtlety in the 'pino' and 'glob' deps. They both use AbortController (pino via its usage of readable-stream@4) or <AbortSignal>.reason to support aborting async operations. Full support for these were not added until Node.js 14.17 -- yet this APM agent currently supports back to 14.5.0. I feel this is not an issue. In node 14.x `AbortController` et al are only available behind a flag (`node --experimental-abortcontroller`). Node.js v14.17 added `<AbortSignal>.reason`, so the fail case with Pino is a user using (a) a Node.js version in the range [v14.5, v14.17), and (b) with the `--experimental-abortcontroller` flag, and (c) something in the APM agent's code path tries to use `AbortSignal.reason`. When the flag is not used both readable-stream@4 and glob@10 will use a polyfill. We could consider setting min to >14.17, but I don't currently think it is necessary. Closes: #2760
glob@10 is out as well because it uses "private instance methods", which break in v14.5 at least:
Node v14.6.0 is fine. Need to go back to glob@8 which supports Node >=12. |
rimraf@5 is out. It at rimraf@4 dep on glob@10. See previous comment. |
^^^ we bumped our min to Node.js v14.17, so glob@10 and rimraf@5 are back in. |
This bumps the mininum supported Node.js from v14.5 to v14.17; and bumps a number of dependencies. - v14.5 was for AsyncLocalStorage - v14.6 brings a V8 with spport for private methods syntax, FinalizationRegistry (used by pino@8) - v14.8 brings AsyncResource.bind - v14.17 brings AbortController, AbortSignal.reason (used by readable-stream@4, glob@10, etc.) Closes: #2760
lru-cache@7 added support for async fetching, and async-cache was deprecated See https://github.com/isaacs/node-lru-cache#fetchmethod-read-only for the best docs for using lru-cache for async caching. Refs: #2760
This bumps the mininum supported Node.js from v14.5 to v14.17; and bumps a number of dependencies. - v14.5 was for AsyncLocalStorage - v14.6 brings a V8 with spport for private methods syntax, FinalizationRegistry (used by pino@8) - v14.8 brings AsyncResource.bind - v14.17 brings AbortController, AbortSignal.reason (used by readable-stream@4, glob@10, etc.) Closes: elastic#2760
lru-cache@7 added support for async fetching, and async-cache was deprecated See https://github.com/isaacs/node-lru-cache#fetchmethod-read-only for the best docs for using lru-cache for async caching. Refs: elastic#2760
I'm using this issue to track dependencies that we are not updating while we still support old major versions of node. Sometimes it is because the newer dependency version actually breaks with the older node, and sometimes it is just because that dep dropped support for the older node (but might not yet actually break).
node v8
node >=10
in "engines", but only tests with v16+ now (chore(deps-dev): bump mkdirp from 0.5.6 to 2.1.3 #3113)node v10
node v12
ESM-only
The text was updated successfully, but these errors were encountered: