Changelog

biomejs/biome · · 19 commits

Biome lands 4 new rules and key fixes

Major lint additions, a React naming convention rule, and fixes for parser, Vue, Tailwind, CLI stdin, and type inference.

New lint rules: modern math APIs, flat Math.min/max, loop conditions (dyc3f4e5ebb, dyc354f3a2e, dyc31d6210b)

Biome added three nursery rules: useModernMathApis, useFlatMathMinMax, and noUnmodifiedLoopCondition. Together they expand lint coverage for modernized math usage, cleaner Math.min/Math.max nesting, and loop conditions that never change, with migrations and config/schema wiring updated so the new rules can be enabled and auto-migrated from ESLint-compatible names.

React naming convention rule for createContext/useId/useRef (Netail2d55931)

A new nursery rule, useReactNamingConvention, enforces React-specific naming conventions for values derived from createContext, useId, and useRef. The change also extends Biome’s rule-source metadata and ESLint migration support to recognize the react-naming-convention plugin family.

Type inference in module cycles now preserves non-cyclic exports (dyc32516335)

Biome fixed a bug where noFloatingPromises could miss unhandled Promise chains when a dependency lived in an import cycle. The module-graph type inference rewrite now keeps types for exports that are not part of recursive dependencies, improving correctness for cyclic module graphs.

Parser/formatter/runtime fixes across JS, Vue, Tailwind, and CLI (ematipico42995d2, ematipico1277af2, dyc365da251, levrik472dbc2, ematipico0f78499, Austin1serb52a57b3)

Multiple user-facing bugs were fixed: malformed delete expressions no longer crash the parser, comments next to generic type arguments format correctly, Tailwind whitespace is no longer treated as trivia so recovery is more robust, Vue duplicate-key detection stops flagging props-derived values, stdin preserves Unicode correctly, and deep tree drops avoid stack overflows in rowan. These are mostly correctness and stability fixes, with some of them patching long-standing crashes or false positives.

Other misc changes

  • Added SCSS parser benchmarks
  • Added a workflow to update module replacements
  • Benchmark/sample-size tweak for type inference benches
  • Dependency bumps: globset, tokio, ureq