What's Coming Next for ESLint
ESLint is evolving with version 9.0.0 changes like a new config system, rule API, and language plugins for JSON and Markdown. A core rewrite aims to modernize the API and core for better development and integration.
Read original articleESLint is undergoing significant changes following the release of version 9.0.0, which introduced a new configuration system and rule API changes. The next steps include the development of language plugins to allow linting of languages other than JavaScript, starting with JSON and Markdown. Additionally, a core rewrite is planned to address technical debt accumulated over 11 years, aiming to create a more modern, composable API and a runtime-agnostic core. The rewrite will involve a new repository, modern packages, a new CLI, and parallel development with the existing ESLint package. These changes aim to simplify development, reduce the need for multiple linting tools, and enhance customization and integrations. The ESLint team is optimistic about these updates paving the way for the next phase of ESLint's evolution.
Related
AI-powered conversion from Enzyme to React Testing Library
Slack engineers transitioned from Enzyme to React Testing Library due to React 18 compatibility issues. They used AST transformations and LLMs for automated conversion, achieving an 80% success rate.
From Dotenv to Dotenvx: Next Generation Config Management
Evolution from dotenv to dotenvx, a configuration tool addressing .env file leaks, multi-environment management, and platform inconsistencies. Offers encryption, uniform commands, and enhanced security. Version 1.0.0 released, promising future utilization.
Igneous Linearizer: semi-structured source code
The Igneous Linearizer project enhances source code in Obsidian Markdown format, enabling features like links and transclusion. It sacrifices AST correctness for compatibility with text editors and Git, benefiting literate programming. Users must follow specific input file formats for optimal use.
Improving Your Zig Language Server Experience
Enhance Zig Language Server (ZLS) by configuring it to run build scripts on save for immediate error display. Zig project progresses include faster builds, incremental compilation, and code intelligence. Support via Zig Software Foundation donations.
Node 18 Ate My Website
The author upgraded their Next.js website to Node.js 18, facing issues with deprecated dependencies. They rebuilt the site with TypeScript, Contentlayer, Tailwind CSS, and Vercel Analytics, emphasizing simplicity and emerging technologies.
https://eslint.org/docs/latest/use/getting-started
> It is also possible to install ESLint globally, rather than locally, using npm install eslint --global. However, this is not recommended, and any plugins or shareable configs that you use must still be installed locally if you install ESLint globally.
Which means that simple stuff like just adding the airbnb or eslint recommended settings can now only be done locally.
More discussion here: https://github.com/eslint/eslint/issues/11914
And here: https://github.com/jsx-eslint/eslint-plugin-react/issues/233...
Not everyone works on giant teams where global settings that aren't part of the project become a nightmare for compatibility. We have a very small team with often just one developer doing most of the work on a project.
A web tutorial you have read for a quickstart? Obsolete and not working. Any solution on stackoverflow? Nope, not applicable anymore. A lint rules package that was used by thousands upon thousands of projects world-wide (like Airbnb's one)? Not compatible. Your project's linter rules carefully tuned for years? Broken.
So we're staying on 8.x until at least Airbnb updates their package and they don't rush. Meaning that practically eslint has been now split into two worlds: working 8.x and a "future" 9.x. Not sure how much time it will take for the industry to catch up.
I can't help but wonder whether the new config system was worth such drastic changes and pain.
And to boot it comes with a very sensible (and Prettier compatible) formatter!
Since it seems they want to have it runnable in the browser (not exactly sure why[1]), I guess Rust would be more amenable to that with its WASM targets.
But "use what you know" I suppose.
Finally, I am really glad this post did not mention the initialisms "LLM" or "AI".
[1]: Being able to easily make a site where you paste code in a textarea and get it linted is my best guess, but that seems like it should not be a core feature, since it is not its primary use case, and can instead be done via a WASM bridge or something.
Are people really asking for this? It seems to me what people want is speed- which is where all these new tools are popping up with Rust. Who is asking for ESLint for other languages?
Related
AI-powered conversion from Enzyme to React Testing Library
Slack engineers transitioned from Enzyme to React Testing Library due to React 18 compatibility issues. They used AST transformations and LLMs for automated conversion, achieving an 80% success rate.
From Dotenv to Dotenvx: Next Generation Config Management
Evolution from dotenv to dotenvx, a configuration tool addressing .env file leaks, multi-environment management, and platform inconsistencies. Offers encryption, uniform commands, and enhanced security. Version 1.0.0 released, promising future utilization.
Igneous Linearizer: semi-structured source code
The Igneous Linearizer project enhances source code in Obsidian Markdown format, enabling features like links and transclusion. It sacrifices AST correctness for compatibility with text editors and Git, benefiting literate programming. Users must follow specific input file formats for optimal use.
Improving Your Zig Language Server Experience
Enhance Zig Language Server (ZLS) by configuring it to run build scripts on save for immediate error display. Zig project progresses include faster builds, incremental compilation, and code intelligence. Support via Zig Software Foundation donations.
Node 18 Ate My Website
The author upgraded their Next.js website to Node.js 18, facing issues with deprecated dependencies. They rebuilt the site with TypeScript, Contentlayer, Tailwind CSS, and Vercel Analytics, emphasizing simplicity and emerging technologies.