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

fix(next-lint): update option --report-unused-disable-directives to --report-unused-disable-directives-severity #64405

Merged
merged 6 commits into from
Apr 12, 2024

Conversation

coltonehrman
Copy link
Contributor

@coltonehrman coltonehrman commented Apr 12, 2024

Why?

The Option name and type has been incorrect for --report-unused-disable-directives (it's likely that #61877 exposed this.

For correctness, we have updated the name to --report-unsed-disable-directives-severityhttps://eslint.org/docs/v8.x/use/command-line-interface#--report-unused-disable-directives-severity.

This option accepts an argument, but was not looking for one
which resulted in unexpected behavior.
@ijjk
Copy link
Member

ijjk commented Apr 12, 2024

Allow CI Workflow Run

  • approve CI run for commit: 551a9d0

Note: this should only be enabled once the PR is ready to go and can only be enabled by a maintainer

@ijjk
Copy link
Member

ijjk commented Apr 12, 2024

Tests Passed

@ijjk
Copy link
Member

ijjk commented Apr 12, 2024

Stats from current PR

Default Build
General Overall increase ⚠️
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
buildDuration 14s 14s N/A
buildDurationCached 8.4s 6.2s N/A
nodeModulesSize 199 MB 199 MB ⚠️ +444 B
nextStartRea..uration (ms) 402ms 399ms N/A
Client Bundles (main, webpack)
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
2453-HASH.js gzip 31.4 kB 31.4 kB N/A
3304.HASH.js gzip 181 B 181 B
3f784ff6-HASH.js gzip 53.7 kB 53.7 kB
8299-HASH.js gzip 5.1 kB 5.1 kB N/A
framework-HASH.js gzip 45.2 kB 45.2 kB
main-app-HASH.js gzip 242 B 242 B
main-HASH.js gzip 32.2 kB 32.2 kB N/A
webpack-HASH.js gzip 1.68 kB 1.68 kB N/A
Overall change 99.3 kB 99.3 kB
Legacy Client Bundles (polyfills)
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
polyfills-HASH.js gzip 31 kB 31 kB
Overall change 31 kB 31 kB
Client Pages
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
_app-HASH.js gzip 196 B 197 B N/A
_error-HASH.js gzip 184 B 184 B
amp-HASH.js gzip 505 B 505 B
css-HASH.js gzip 324 B 325 B N/A
dynamic-HASH.js gzip 2.5 kB 2.5 kB N/A
edge-ssr-HASH.js gzip 258 B 258 B
head-HASH.js gzip 352 B 352 B
hooks-HASH.js gzip 370 B 371 B N/A
image-HASH.js gzip 4.27 kB 4.27 kB
index-HASH.js gzip 259 B 259 B
link-HASH.js gzip 2.67 kB 2.67 kB N/A
routerDirect..HASH.js gzip 314 B 312 B N/A
script-HASH.js gzip 386 B 386 B
withRouter-HASH.js gzip 309 B 309 B
1afbb74e6ecf..834.css gzip 106 B 106 B
Overall change 6.63 kB 6.63 kB
Client Build Manifests
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
_buildManifest.js gzip 483 B 485 B N/A
Overall change 0 B 0 B
Rendered Page Sizes
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
index.html gzip 529 B 528 B N/A
link.html gzip 541 B 541 B
withRouter.html gzip 524 B 523 B N/A
Overall change 541 B 541 B
Edge SSR bundle Size
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
edge-ssr.js gzip 95.6 kB 95.6 kB N/A
page.js gzip 3.06 kB 3.06 kB
Overall change 3.06 kB 3.06 kB
Middleware size
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
middleware-b..fest.js gzip 622 B 625 B N/A
middleware-r..fest.js gzip 155 B 156 B N/A
middleware.js gzip 25.5 kB 25.5 kB N/A
edge-runtime..pack.js gzip 839 B 839 B
Overall change 839 B 839 B
Next Runtimes
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
app-page-exp...dev.js gzip 171 kB 171 kB
app-page-exp..prod.js gzip 97.4 kB 97.4 kB
app-page-tur..prod.js gzip 99.2 kB 99.2 kB
app-page-tur..prod.js gzip 93.4 kB 93.4 kB
app-page.run...dev.js gzip 144 kB 144 kB
app-page.run..prod.js gzip 91.9 kB 91.9 kB
app-route-ex...dev.js gzip 21.4 kB 21.4 kB
app-route-ex..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 15.2 kB 15.2 kB
app-route-tu..prod.js gzip 14.9 kB 14.9 kB
app-route.ru...dev.js gzip 21.1 kB 21.1 kB
app-route.ru..prod.js gzip 14.9 kB 14.9 kB
pages-api-tu..prod.js gzip 9.55 kB 9.55 kB
pages-api.ru...dev.js gzip 9.82 kB 9.82 kB
pages-api.ru..prod.js gzip 9.55 kB 9.55 kB
pages-turbo...prod.js gzip 22.5 kB 22.5 kB
pages.runtim...dev.js gzip 23.1 kB 23.1 kB
pages.runtim..prod.js gzip 22.5 kB 22.5 kB
server.runti..prod.js gzip 51.3 kB 51.3 kB
Overall change 948 kB 948 kB
build cache
vercel/next.js canary coltonehrman/next.js fix/next-cli-lint Change
0.pack gzip 1.59 MB 1.58 MB N/A
index.pack gzip 107 kB 106 kB N/A
Overall change 0 B 0 B
Diff details
Diff for middleware.js

Diff too large to display

Commit: ea5abad

@samcx samcx changed the base branch from canary to 14-2-1 April 12, 2024 19:28
@samcx samcx requested review from huozhi, a team, ztanner, feedthejim and wyattjoh as code owners April 12, 2024 19:28
@samcx samcx requested review from jh3y and timeyoutakeit and removed request for a team April 12, 2024 19:28
@samcx samcx changed the base branch from 14-2-1 to canary April 12, 2024 19:33
@samcx
Copy link
Member

samcx commented Apr 12, 2024

@coltonehrman Thanks for this :pr:! Adding a test to make sure we don't regress on this in the future.

@coltonehrman
Copy link
Contributor Author

@coltonehrman Thanks for this :pr:! Adding a test to make sure we don't regress on this in the future.

No problem! :) I'd be happy to add a test as well I just wasn't sure the best way to go about that. Are there any CLI/lint command test setups I can follow?

@samcx
Copy link
Member

samcx commented Apr 12, 2024

@samcx samcx requested a review from eps1lon April 12, 2024 20:15
@samcx samcx changed the title fix: next lint --report-unused-disabled-directives command test(next-lint): add test to prevent regressions to next-lint option name and types Apr 12, 2024
@coltonehrman
Copy link
Contributor Author

@coltonehrman it should be a Boolean actually :thinkies:https://eslint.org/docs/latest/use/command-line-interface#--report-unused-disable-directives

I tried it as a boolean and got this error:

Invalid Options:
- 'reportUnusedDisableDirectives' must be any of "error", "warn", "off", and null

Screenshot 2024-04-12 152420

@samcx
Copy link
Member

samcx commented Apr 12, 2024

@coltonehrman Interesting—are their :docs: not updated? :dig-deep:

@coltonehrman
Copy link
Contributor Author

@coltonehrman Interesting—are there :docs: not updated? :dig-deep:

Very likely lol
I was trying to read through this eslint/eslint#15466. Almost seems like they were going back and forth on the design and possibly forgot to update the docs?

@samcx
Copy link
Member

samcx commented Apr 12, 2024

@coltonehrman
Copy link
Contributor Author

@coltonehrman Looks like this needs to be re-named to https://eslint.org/docs/latest/use/command-line-interface#--report-unused-disable-directives-severity

What version of ESLint is Next.js using? Maybe the APIs are different?

@samcx
Copy link
Member

samcx commented Apr 12, 2024

@coltonehrman It doesn't seem like that was updated → https://eslint.org/docs/v8.x/use/command-line-interface#--report-unused-disable-directives-severity. Next.js is still on v8.

@samcx samcx changed the title test(next-lint): add test to prevent regressions to next-lint option name and types fix(next-lint): update option --report-unused-disable-directives to --report-unused-disable-directives-severity Apr 12, 2024
@coltonehrman
Copy link
Contributor Author

coltonehrman commented Apr 12, 2024

@coltonehrman It doesn't seem like that was updated → https://eslint.org/docs/v8.x/use/command-line-interface#--report-unused-disable-directives-severity. Next.js is still on v8.

The docs don't seem to be in sync with the behavior then (or even perhaps the version of ESLint Next.js is using has a bug). The flag that is suppose to be boolean doesn't appear to support a boolean value when ran and results in an error. However, as you pointed out, it does appear that the *-severity flag should be used instead. Should we update Next.js to use the latest version of ESLint and then verify the flags again with the latest behavior?

@samcx
Copy link
Member

samcx commented Apr 12, 2024

@coltonehrman I'll push up the changes to make this --report-unused-disable-directives-severity with the correct choices ['error', null, 'off', 'warn']. We should update the eslint version in another PR (if there isn't already a PR for that).

@coltonehrman
Copy link
Contributor Author

@samcx Just out of curiosity, what is the reason for taking over control of the lint command via Next.js vs passing through options to the underlying tool (ie: ESLint)? I feel like this would cause more issues and be harder to maintain.

@samcx
Copy link
Member

samcx commented Apr 12, 2024

@coltonehrman That's a good question—I think the idea is we give you good defaults. So when you simply do next lint, you don't have to worry about adding your own CLI options.

Copy link
Member

@samcx samcx left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:lgtm: :spiderman-pointing:

@samcx samcx enabled auto-merge (squash) April 12, 2024 22:06
@samcx samcx merged commit 9994e74 into vercel:canary Apr 12, 2024
73 checks passed
ztanner pushed a commit that referenced this pull request Apr 17, 2024
…-report-unused-disable-directives-severity (#64405)

## Why?

The Option name and type has been incorrect for
`--report-unused-disable-directives` (it's likely that
#61877 exposed this.

For correctness, we have updated the name to
`--report-unsed-disable-directives-severity` →
https://eslint.org/docs/v8.x/use/command-line-interface#--report-unused-disable-directives-severity.

- Fixes #64402

---------

Co-authored-by: samcx <sam@vercel.com>
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 27, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

14.2 breaks lint option --report-unused-disable-directives
4 participants