-
Notifications
You must be signed in to change notification settings - Fork 317
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
Enable recommended rules for eslint-plugin-n #5216
base: master
Are you sure you want to change the base?
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
Overall package sizeSelf size: 8.69 MB Dependency sizes| name | version | self size | total size | |------|---------|-----------|------------| | @datadog/libdatadog | 0.4.0 | 29.44 MB | 29.44 MB | | @datadog/native-appsec | 8.4.0 | 19.25 MB | 19.26 MB | | @datadog/native-iast-taint-tracking | 3.3.0 | 13.77 MB | 13.78 MB | | @datadog/pprof | 5.5.1 | 9.79 MB | 10.17 MB | | protobufjs | 7.2.5 | 2.77 MB | 5.16 MB | | @datadog/native-iast-rewriter | 2.8.0 | 2.6 MB | 2.74 MB | | @opentelemetry/core | 1.14.0 | 872.87 kB | 1.47 MB | | @datadog/native-metrics | 3.1.0 | 1.06 MB | 1.46 MB | | @opentelemetry/api | 1.8.0 | 1.21 MB | 1.21 MB | | import-in-the-middle | 1.11.2 | 112.74 kB | 835.4 kB | | source-map | 0.7.4 | 226 kB | 226 kB | | opentracing | 0.14.7 | 194.81 kB | 194.81 kB | | lru-cache | 7.18.3 | 133.92 kB | 133.92 kB | | pprof-format | 2.1.0 | 111.69 kB | 111.69 kB | | @datadog/sketches-js | 2.1.0 | 109.9 kB | 109.9 kB | | lodash.sortby | 4.7.0 | 75.76 kB | 75.76 kB | | ignore | 5.3.2 | 53.63 kB | 53.63 kB | | shell-quote | 1.8.1 | 44.96 kB | 44.96 kB | | istanbul-lib-coverage | 3.2.0 | 29.34 kB | 29.34 kB | | rfdc | 1.3.1 | 25.21 kB | 25.21 kB | | @isaacs/ttlcache | 1.4.1 | 25.2 kB | 25.2 kB | | tlhunter-sorted-set | 0.1.0 | 24.94 kB | 24.94 kB | | limiter | 1.1.5 | 23.17 kB | 23.17 kB | | dc-polyfill | 0.1.4 | 23.1 kB | 23.1 kB | | retry | 0.13.1 | 18.85 kB | 18.85 kB | | semifies | 1.0.0 | 15.84 kB | 15.84 kB | | jest-docblock | 29.7.0 | 8.99 kB | 12.76 kB | | crypto-randomuuid | 1.0.0 | 11.18 kB | 11.18 kB | | ttl-set | 1.0.0 | 4.61 kB | 9.69 kB | | path-to-regexp | 0.1.12 | 6.6 kB | 6.6 kB | | koalas | 1.0.2 | 6.47 kB | 6.47 kB | | module-details-from-path | 1.0.3 | 4.47 kB | 4.47 kB |🤖 This report was automatically generated by heaviest-objects-in-the-universe |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #5216 +/- ##
=======================================
Coverage 81.24% 81.24%
=======================================
Files 487 487
Lines 21703 21703
=======================================
Hits 17633 17633
Misses 4070 4070 ☔ View full report in Codecov by Sentry. |
Datadog ReportBranch report: ✅ 0 Failed, 629 Passed, 0 Skipped, 15m 51.08s Total Time |
BenchmarksBenchmark execution time: 2025-02-14 12:32:09 Comparing candidate commit 1d97adc in PR branch Found 0 performance improvements and 3 performance regressions! Performance is the same for 905 metrics, 25 unstable metrics. scenario:plugin-graphql-with-async-hooks-18
|
a00cbf6
to
c0412e5
Compare
384864d
to
664c0fc
Compare
c0412e5
to
b29b51c
Compare
b29b51c
to
451520a
Compare
f012b27
to
286701a
Compare
286701a
to
74bc477
Compare
// TODO: It shouldn't be necessary to disable n/no-unpublished-require - Research | ||
// eslint-disable-next-line n/no-unpublished-require |
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.
Will be fixed in #5274
// TODO: It shouldn't be necessary to disable n/no-unpublished-require - Research | ||
// eslint-disable-next-line n/no-unpublished-require |
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.
Will be fixed in #5274
// TODO: It shouldn't be necessary to disable n/no-unpublished-require - Research | ||
// eslint-disable-next-line n/no-unpublished-require |
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.
Will be fixed in #5274
@@ -157,6 +157,7 @@ | |||
"sinon-chai": "^3.7.0", | |||
"tap": "^16.3.7", | |||
"tiktoken": "^1.0.15", | |||
"workerpool": "^9.2.0", |
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.
Our code worked previously because workerpool
just happened to be a sub-dependency of another one of our dependencies. That sub-dependency was v6.5.1 though, so some breaking changes has been introduced between that and this. For an overview of them, see https://github.com/josdejong/workerpool/blob/master/HISTORY.md
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.
@juan-fernandez The workerpool
module is used by CI Visibility in integration-tests/ci-visibility/run-workerpool.js
, so you should probably take a look to check that everything is ok. However, I assume it is, since the integration tests are passing after the upgrade.
6c6e8b4
to
1d97adc
Compare
@@ -1,3 +1,5 @@ | |||
/* eslint n/no-unsupported-features/node-builtins: ['error', { ignores: ['fetch'] }] */ |
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.
The docs are a little confusing. It seems to suggest that the engines field of package.json is used to check node compat (in our case v18). But those same docs also seem to suggest this plugin is stuck in the world of 13.2.0?
Overall it seems bad that we need to add such a line to the top of files to use a built in global. Like we'll make a change, push it, CI fails, add the rule, push again.
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 agree it's easy to be confused. We are not using eslint-plugin-node
, but eslint-plugin-n
, which exists exactly because eslint-plugin-node
is no longer maintained. The right docs for this is:
There is a few places we use features newer than v18.0.0, but we feature detect, e.g. if (globalThis.fetch) { ... }
. The ESLint plugin is not clever enough to detect this and complains, but I think that's better than we accidentally used that API without the surrounding if-block.
There's also a few places in tests where we need to add these ESLint comments. And you could argue we might just turn this plugin off in tests 🤷 Or alternatively configure it to be the latest v18.x in tests instead of v18.0.0 as it is in the rest of our published source. That way we could get a rid of a few of these comments for those locations. Do you think that would be worth while, is it good enough as it is?
What does this PR do?
Enables all recommended rules from the
eslint-plugin-n
ESLint plugin that could reasonably be enabled without too much work. The following rules have for now been disabled as they caused too many errors when enabled:n/hashbang
n/no-process-exit
n/no-missing-require
(only disabled in tests)For now all
eslint-plugin-n
rules have also been disabled for**/*.mjs
files as these for some reason resulting in parsing errors.Motivation
Plugin Checklist
Additional Notes