-
-
Notifications
You must be signed in to change notification settings - Fork 8.6k
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: add lint autofix CI job #9604
Conversation
✅ [V2]
To edit notification comments on pull requests, go to your Netlify site configuration. |
⚡️ Lighthouse report for the deploy preview of this PR
|
✅ [V2]
To edit notification comments on pull requests, go to your Netlify site configuration. |
Size Change: 0 B Total Size: 926 kB ℹ️ View Unchanged
|
"lint:spelling": "cspell \"**\" --no-progress", | ||
"lint:js:fix": "yarn lint:js --fix", | ||
"lint:spelling": "cspell \"**\" --no-progress --show-context --show-suggestions", | ||
"lint:spelling:fix": "yarn rimraf project-words.txt && echo \"# Project Words - DO NOT TOUCH - This is updated through CI\" >> project-words.txt && yarn -s lint:spelling --words-only --unique --no-exit-code --no-summary \"**\" | sort --ignore-case >> project-words.txt", |
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.
We should not "autofix" spelling. This is not safe and hard to review. For example, words with different capitalization will now show up as separate entries.
I can see the point of auto-applying linting/prettier fixes (although I don't find it too painful), but auto-fixing spelling seems too risky.
Is it? For me personally: I use my editor to transform everything to lowercase and then sort it alphabetically. I'm aware that alphabetical order may be locale-dependent, but can we simply have a script that does this using |
I spend a lot of time fixing patch-x PRs of external contributors, particularly for docs. This is a real pain for me to not being able to merge half of good-enough docs PRs immediately. https://github.com/facebook/docusaurus/actions/runs/6721876263/job/18268564837?pr=9490 Prettier/CI doesn't even tell you the problem: So I have to load it locally and fix it every time. And then need to wait for the CI to complete again before merging, which keeps my brain busy and context switch again for no good reason. Regarding
The goal is not to autofix spelling but to be aware when there's an unknown word. I review all PRs carefully, including this file, and don't see how it's less safe than having an external contributor adding it by themselves: we don't care if it's someone else or CI that modifies the file, we always already have to review it. The point is to be "aware" that something is happening here, and any diff to that file is enough for me. The order, case sensitiveness, deduplication doesn't matter much to me as long as I can review a diff. Actually I want to be aware when see "webpack" and "Webpack", that means we have an inconsistent usage of that lib name. Not even counting the time lost due to using precommit hooks. So, for now I'll merge this and we'll see how it goes in practice. Happy to revisit but I'm confident it will be way better than it used to be. |
Co-authored-by: Joshua Chen <[email protected]> Co-authored-by: sebastienlorber <[email protected]> Co-authored-by: Sébastien Lorber <[email protected]> Co-authored-by: Ivan Mar (sOkam!) <[email protected]> Co-authored-by: c0h1b4 <[email protected]> Co-authored-by: Janessa Garrow <[email protected]> Co-authored-by: ozaki <[email protected]> Co-authored-by: axmmisaka <[email protected]> Co-authored-by: Tatsunori Uchino <[email protected]> Co-authored-by: Simen Bekkhus <[email protected]> fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (#9477) fix(content-blog): add baseUrl for author.image_url (#9581) fix(type-aliases): add `title` prop for imported inline SVG React components (#9612) fix(utils): Markdown link replacement with <> but no spaces (#9617) fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (#9631) fix(cli): output help when no conventional config + no subcommand (#9648) fix CI job (#9604) fix Lint Autofix workflow (#9632) fix(pwa-plugin): upgrade workbox (#9668) fix(create-docusaurus): fix init template code blocks, and little improvements (#9696) fix(theme): allow empty code blocks and live playgrounds (#9704)
Co-authored-by: Joshua Chen <[email protected]> Co-authored-by: Joey Clover <[email protected]> Co-authored-by: reece-white <[email protected]> Co-authored-by: Shreesh Nautiyal <[email protected]> Co-authored-by: Nick Gerleman <[email protected]> Co-authored-by: Chongyi Zheng <[email protected]> Co-authored-by: MCR Studio <[email protected]> Co-authored-by: sebastienlorber <[email protected]> Co-authored-by: Sébastien Lorber <[email protected]> Co-authored-by: Ivan Mar (sOkam!) <[email protected]> Co-authored-by: c0h1b4 <[email protected]> Co-authored-by: Janessa Garrow <[email protected]> Co-authored-by: ozaki <[email protected]> Co-authored-by: axmmisaka <[email protected]> Co-authored-by: Tatsunori Uchino <[email protected]> Co-authored-by: Simen Bekkhus <[email protected]> Co-authored-by: Sanjaiyan Parthipan <[email protected]> Co-authored-by: Jack Robson <[email protected]> Co-authored-by: dawei-wang <[email protected]> Co-authored-by: eitsupi <[email protected]> fix(create-docusaurus): fix readme docusaurus 2 ref (#9487) fix(theme): fix firefox CSS :has() support bug (#9530) fix(theme): docs html sidebar items should always be visible (#9531) fix: v3 admonitions should support v2 title syntax for nested admonitions (#9535) fix(theme-classic): fixed wrong cursor on dropdown menu in navbar, when window is small (#9398) fix(theme): upgrade prism-react-renderer, fix html script and style tag highlighting (#9567) fix: add v2 retrocompatible support for quoted admonitions (#9570) fix(i18n): complete translations for theme-common.json Brazilian Portuguese (pt-BR) (#9477) fix(content-blog): add baseUrl for author.image_url (#9581) fix(type-aliases): add `title` prop for imported inline SVG React components (#9612) fix(utils): Markdown link replacement with <> but no spaces (#9617) fix(live-codeblock): stabilize react-live transformCode callback, fix editor/preview desync (#9631) fix(cli): output help when no conventional config + no subcommand (#9648) fix CI job (#9604) fix Lint Autofix workflow (#9632) fix(pwa-plugin): upgrade workbox (#9668) fix(create-docusaurus): fix init template code blocks, and little improvements (#9696) fix(theme): allow empty code blocks and live playgrounds (#9704) fix(core): various broken anchor link fixes (#9732) fix: remove old useless mdx typedefs (#9733) fix(theme-common): fix missing code block MagicComments style in Visual Basic (.NET) 16 (#9727) fix(core): conditionally include `hostname` parameter when using… (#9407) fix(create-docusaurus): fix typo in init template sample docs (#9783) fix(mdx-loader): allow spaces before `mdx-code-block` info string (#9776) fix(core): links with target "_blank" should no be checked by the broken link checker (#9788) fix(core): broken links optimization behaves differently than non-optimized logic (#9791)
Motivation
It is very time-consuming in the long run to fix lint issues in internal/external PRs
This job should do it automatically by commiting to the PRs to fix
Regarding spelling, it is even more painful to manage the
project-words.txt
list manually, so let's move to a simpler workflow where we don't manage that list ourselves, but only review the generated one in PRs: after all we want to be noticed when an unknown word is introduced, and this can be done by reviewing an automated addition to theproject-words.txt
file.Test Plan
CI