Skip to content
verdict:

Biome 2.3.8

digest

note: no summary for this digest release

Digest releases are listed without a summary. The original release notes for this version are below.

release-notesgithub.com/biomejs/biome · 210 lines
  1. ## 2.3.8
  2. ### Patch Changes
  3. - [#8188](https://github.com/biomejs/biome/pull/8188) [`4ca088c`](https://github.com/biomejs/biome/commit/4ca088c7648f37724dad07ae4e6f805e7a51ac79) Thanks [@ematipico](https://github.com/ematipico)! - Fixed [#7390](https://github.com/biomejs/biome/issues/7390), where Biome couldn't apply the correct configuration passed via `--config-path`.
  4. If you have multiple **root** configuration files, running any command with `--config-path` will now apply the chosen configuration file.
  5. - [#8171](https://github.com/biomejs/biome/pull/8171) [`79adaea`](https://github.com/biomejs/biome/commit/79adaea7d5bc382bd0a4cdcc34e59a8cb3fb6a55) Thanks [@dibashthapa](https://github.com/dibashthapa)! - Added the new rule [`noLeakedRender`](https://biomejs.dev/linter/rules/no-leaked-render). This rule helps prevent potential leaks when rendering components that use binary expressions or ternaries.
  6. For example, the following code triggers the rule because the component would render `0`:
  7. ```jsx
  8. const Component = () => {
  9. const count = 0;
  10. return <div>{count && <span>Count: {count}</span>}</div>;
  11. };
  12. ```
  13. - [#8116](https://github.com/biomejs/biome/pull/8116) [`b537918`](https://github.com/biomejs/biome/commit/b53791835ea98edf8fe4b4288240bd38abb19f2f) Thanks [@Netail](https://github.com/Netail)! - Added the nursery rule [`noDuplicatedSpreadProps`](https://biomejs.dev/linter/rules/no-duplicated-spread-props/). Disallow JSX prop spreading the same identifier multiple times.
  14. **Invalid:**
  15. ```jsx
  16. <div {...props} something="else" {...props} />
  17. ```
  18. - [#8256](https://github.com/biomejs/biome/pull/8256) [`f1e4696`](https://github.com/biomejs/biome/commit/f1e4696bf8f018fc23656cd7b96fda32ca46677a) Thanks [@cormacrelf](https://github.com/cormacrelf)! - Fixed a bug where logs were discarded (the kind from `--log-level=info` etc.). This is a regression introduced after an internal refactor that wasn't adequately tested.
  19. - [#8226](https://github.com/biomejs/biome/pull/8226) [`3f19b52`](https://github.com/biomejs/biome/commit/3f19b520c65f4fc53e61ca7cef341deadec5f518) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#8222](https://github.com/biomejs/biome/issues/8222): The HTML parser, with Vue directives enabled, can now parse `v-slot` shorthand syntax, e.g. `<template #foo>`.
  20. - [#8007](https://github.com/biomejs/biome/pull/8007) [`182ecdc`](https://github.com/biomejs/biome/commit/182ecdc2736a54073fe79b4d3e1eaf793b73afa6) Thanks [@brandonmcconnell](https://github.com/brandonmcconnell)! - Added support for dollar-sign-prefixed filenames in the [`useFilenamingConvention`](https://biomejs.dev/linter/rules/use-filenaming-convention/) rule.
  21. Biome now allows filenames starting with the dollar-sign (e.g. `$postId.tsx`) by default to support naming conventions used by frameworks such as [TanStack Start](https://tanstack.com/start/latest/docs/framework/react/guide/routing#file-based-routing) for file-based-routing.
  22. - [#8218](https://github.com/biomejs/biome/pull/8218) [`91484d1`](https://github.com/biomejs/biome/commit/91484d1d53096a554f288c81105f71c7ea8df945) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Added the [`noMultiStr`](https://biomejs.dev/linter/rules/no-multi-str) rule, which disallows creating multiline strings by escaping newlines.
  23. **Invalid:**
  24. ```js
  25. const foo =
  26. "Line 1\n\
  27. Line 2";
  28. ```
  29. **Valid:**
  30. ```js
  31. const foo = "Line 1\nLine 2";
  32. const bar = `Line 1
  33. Line 2`;
  34. ```
  35. - [#8225](https://github.com/biomejs/biome/pull/8225) [`98ca2ae`](https://github.com/biomejs/biome/commit/98ca2ae9f3b9b25a14d63b243223583aba6e4907) Thanks [@ongyuxing](https://github.com/ongyuxing)! - Fixed [#7806](https://github.com/biomejs/biome/issues/7806): Prefer breaking after the assignment operator for conditional types with generic parameters to match Prettier.
  36. ```diff
  37. -type True = unknown extends Type<
  38. - "many",
  39. - "generic",
  40. - "parameters",
  41. - "one",
  42. - "two",
  43. - "three"
  44. ->
  45. - ? true
  46. - : false;
  47. +type True =
  48. + unknown extends Type<"many", "generic", "parameters", "one", "two", "three">
  49. + ? true
  50. + : false;
  51. ```
  52. - [#6765](https://github.com/biomejs/biome/pull/6765) [`23f7855`](https://github.com/biomejs/biome/commit/23f78551167e5415da17b5cca8eb2a34e64e0aac) Thanks [@emilyinure](https://github.com/emilyinure)! - Fixed [#6569](https://github.com/biomejs/biome/issues/6569): Allow files to export from themselves with `noImportCycles`.
  53. This means the following is now allowed:
  54. ```js
  55. // example.js
  56. export function example() {
  57. return 1;
  58. }
  59. // Re-exports all named exports from the current module under a single namespace
  60. // and then imports the namespace from the current module.
  61. // Allows for encapsulating functions/variables into a namespace instead
  62. // of using a static class.
  63. export * as Example from "./example.js";
  64. import { Example } from "./example.js";
  65. ```
  66. - [#8214](https://github.com/biomejs/biome/pull/8214) [`68c052e`](https://github.com/biomejs/biome/commit/68c052efa29892470d4590bffefb20448685f2d9) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Added the [`noEqualsToNull`](https://biomejs.dev/linter/rules/no-equals-to-null) rule, which enforces the use of `===` and `!==` for comparison with `null` instead of `==` or `!=`.
  67. **Invalid:**
  68. ```js
  69. foo == null;
  70. foo != null;
  71. ```
  72. **Valid:**
  73. ```js
  74. foo === null;
  75. foo !== null;
  76. ```
  77. - [#8219](https://github.com/biomejs/biome/pull/8219) [`793bb9a`](https://github.com/biomejs/biome/commit/793bb9adf179117f6cd7796140f1da2098a4eab5) Thanks [@dyc3](https://github.com/dyc3)! - Fixed [#8190](https://github.com/biomejs/biome/issues/8190): The HTML parser will now parse Vue event handlers that contain `:` correctly, e.g. `@update:modelValue="onUpdate"`.
  78. - [#8259](https://github.com/biomejs/biome/pull/8259) [`4a9139b`](https://github.com/biomejs/biome/commit/4a9139bbe393d7f8acc226281c7a92d0cc5887ee) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Fixed [#8254](https://github.com/biomejs/biome/issues/8254): The `noParameterAssign` rule with `propertyAssignment: "deny"` was incorrectly reporting an error when a function parameter was used on the right-hand side of an assignment to a local variable's property.
  79. The rule should only flag assignments that modify the parameter binding or its properties (L-value), not the use of its value.
  80. **Valid:**
  81. ```js
  82. (input) => {
  83. const local = { property: 0 };
  84. local.property = input;
  85. };
  86. ```
  87. - [#8201](https://github.com/biomejs/biome/pull/8201) [`cd2edd7`](https://github.com/biomejs/biome/commit/cd2edd75d9532171c599073fc91de5a15578e84d) Thanks [@Netail](https://github.com/Netail)! - Added the nursery rule [`noTernary`](https://biomejs.dev/linter/rules/no-ternary/). Disallow ternary operators.
  88. **Invalid:**
  89. ```js
  90. const foo = isBar ? baz : qux;
  91. ```
  92. - [#8172](https://github.com/biomejs/biome/pull/8172) [`de98933`](https://github.com/biomejs/biome/commit/de98933f77091358e70d23e51aa5a2a084953722) Thanks [@JeremyMoeglich](https://github.com/JeremyMoeglich)! - Fixed [#8145](https://github.com/biomejs/biome/issues/8145): handling of large hex literals, which previously caused both false positives and false negatives.
  93. This affects [`noPrecisionLoss`](https://biomejs.dev/linter/rules/no-precision-loss/) and [`noConstantMathMinMaxClamp`](https://biomejs.dev/linter/rules/no-constant-math-min-max-clamp/).
  94. - [#8210](https://github.com/biomejs/biome/pull/8210) [`7b44e9e`](https://github.com/biomejs/biome/commit/7b44e9eec8200fdde096ebdfac493b2e48fd707e) Thanks [@Netail](https://github.com/Netail)! - Corrected rule source reference. `biome migrate eslint` should do a bit better detecting rules in your eslint configurations.
  95. - [#8213](https://github.com/biomejs/biome/pull/8213) [`e430555`](https://github.com/biomejs/biome/commit/e43055515212a81fc3ef0477fb0ce505555ad0af) Thanks [@ruidosujeira](https://github.com/ruidosujeira)! - Fixed #8209: Recognized formatting capability when either range or on-type formatting is supported, not only full-file formatting. This ensures editors and the language server correctly detect formatting support in files like JSONC.
  96. - [#8202](https://github.com/biomejs/biome/pull/8202) [`6f49d95`](https://github.com/biomejs/biome/commit/6f49d95f3f3330c12012064a0c6facc306f9f8bf) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Fixed [#8079](https://github.com/biomejs/biome/issues/8079): Properly handle `name` and `value` metavariables for `JsxAttribute` GritQL queries.
  97. The following `biome search` command no longer throws an error:
  98. ```
  99. biome search 'JsxAttribute($name, $value) as $attr where { $name <: "style" }'
  100. ```
  101. - [#8276](https://github.com/biomejs/biome/pull/8276) [`f7e836f`](https://github.com/biomejs/biome/commit/f7e836fa2b5859c712bb891dc7fbb2fcf28e19a3) Thanks [@hirokiokada77](https://github.com/hirokiokada77)! - Added the [`noProto`](https://biomejs.dev/linter/rules/no-proto/) rule, which disallows the use of the `__proto__` property for getting or setting the prototype of an object.
  102. **Invalid**:
  103. ```js
  104. obj.__proto__ = a;
  105. const b = obj.__proto__;
  106. ```
  107. **Valid**:
  108. ```js
  109. const a = Object.getPrototypeOf(obj);
  110. Object.setPrototypeOf(obj, b);
  111. ```
  112. ## What's Changed
  113. * fix(noImportCycles): prevent flagging on single file import cycling by @emilyinure in https://github.com/biomejs/biome/pull/6765
  114. * chore: fix changeset by @ematipico in https://github.com/biomejs/biome/pull/8191
  115. * ci: breakdown wasm CI build by @ematipico in https://github.com/biomejs/biome/pull/8187
  116. * chore: disable docstrings in coderabbit by @Netail in https://github.com/biomejs/biome/pull/8203
  117. * feat(js_analyze): implement noTernary by @Netail in https://github.com/biomejs/biome/pull/8201
  118. * docs: missing references by @Netail in https://github.com/biomejs/biome/pull/8207
  119. * fix(biome_grit_patterns): properly handle name and value metavariables for JsxAttribute GritQL queries by @hirokiokada77 in https://github.com/biomejs/biome/pull/8202
  120. * feat(lint): added new rule `no-leaked-render` from eslint-react by @dibashthapa in https://github.com/biomejs/biome/pull/8171
  121. * fix(noPrecisionLoss): correctly handle large hex literals by @JeremyMoeglich in https://github.com/biomejs/biome/pull/8172
  122. * docs: qwik no-react-props rule reference by @Netail in https://github.com/biomejs/biome/pull/8210
  123. * docs(noSecrets): properly document `entropyThreshold` option by @dyc3 in https://github.com/biomejs/biome/pull/8211
  124. * feat(use_filenaming_convention): add support for `$` prefix by @brandonmcconnell in https://github.com/biomejs/biome/pull/8007
  125. * feat(biome_js_analyze): implement `noEqualsToNull` rule by @hirokiokada77 in https://github.com/biomejs/biome/pull/8214
  126. * fix: recognize format_range and format_on_type as Format capabilities… by @ruidosujeira in https://github.com/biomejs/biome/pull/8213
  127. * feat(biome_js_analyze): implement `noMultiStr` rule by @hirokiokada77 in https://github.com/biomejs/biome/pull/8218
  128. * feat(js_biome_analyze): implement noDuplicatedSpreadProps by @Netail in https://github.com/biomejs/biome/pull/8116
  129. * chore: improve the wording of the no_descending_specificity rule by @ashnewmanjones in https://github.com/biomejs/biome/pull/8220
  130. * fix(cli): make config-path absolute by @ematipico in https://github.com/biomejs/biome/pull/8188
  131. * docs: clarify doc comments for ISO validation functions by @hirokiokada77 in https://github.com/biomejs/biome/pull/8227
  132. * chore(deps): update github-actions by @renovate[bot] in https://github.com/biomejs/biome/pull/8230
  133. * chore(deps): update rust crate indexmap to 2.12.1 by @renovate[bot] in https://github.com/biomejs/biome/pull/8236
  134. * chore(deps): update rust:1.91.1-bullseye docker digest to 4886b15 by @renovate[bot] in https://github.com/biomejs/biome/pull/8235
  135. * chore(deps): update rust:1.91.1-bookworm docker digest to 8fed34f by @renovate[bot] in https://github.com/biomejs/biome/pull/8231
  136. * chore(deps): update github-actions (major) by @renovate[bot] in https://github.com/biomejs/biome/pull/8238
  137. * fix(parse/html/vue): fix lexing of event handlers with `:` in them by @dyc3 in https://github.com/biomejs/biome/pull/8219
  138. * feat(parse/html/vue): parse v-slot shorthand syntax by @dyc3 in https://github.com/biomejs/biome/pull/8226
  139. * ci: fix regression in benchmark workflows by @ematipico in https://github.com/biomejs/biome/pull/8244
  140. * fix(formatter): align conditional type formatting with Prettier by @ongyuxing in https://github.com/biomejs/biome/pull/8225
  141. * fix(cli): revert some of PR #7531 to re-enable logging by @cormacrelf in https://github.com/biomejs/biome/pull/8256
  142. * fix(noParameterAssign): prevent false positive when parameter is used as R-value by @hirokiokada77 in https://github.com/biomejs/biome/pull/8259
  143. * ci: restore WASM build in release by @ematipico in https://github.com/biomejs/biome/pull/8264
  144. * chore: add flags to regex literals by @arendjr in https://github.com/biomejs/biome/pull/8279
  145. * feat(biome_js_analyze): implement `noProto` rule by @hirokiokada77 in https://github.com/biomejs/biome/pull/8276
  146. * chore(test infra): record parsing errors for analyze crates by @dyc3 in https://github.com/biomejs/biome/pull/8268
  147. * ci: release by @github-actions[bot] in https://github.com/biomejs/biome/pull/8263
  148. * chore: refactor global type system to accommodate further extensions by @tidefield in https://github.com/biomejs/biome/pull/8253
  149. ## New Contributors
  150. * @JeremyMoeglich made their first contribution in https://github.com/biomejs/biome/pull/8172
  151. * @brandonmcconnell made their first contribution in https://github.com/biomejs/biome/pull/8007
  152. * @ruidosujeira made their first contribution in https://github.com/biomejs/biome/pull/8213
  153. * @ongyuxing made their first contribution in https://github.com/biomejs/biome/pull/8225
  154. * @cormacrelf made their first contribution in https://github.com/biomejs/biome/pull/8256
  155. **Full Changelog**: https://github.com/biomejs/biome/compare/@biomejs/biome@2.3.7...@biomejs/biome@2.3.8

view on githubimported 2026-09-28 via npm