Releases: biomejs/biome
Biome CLI v2.0.5
2.0.5
Patch Changes
-
#6461
38862e6Thanks @ematipico! - Fixed #6419, a regression where stdin mode would create a temporary new file instead of using the one provided by the user. This was an intended regression.Now Biome will use the file path passed via
--std-file-path, and apply the configuration that matches it. -
#6480
050047fThanks @Conaclos! - Fixed #6371.
useNamingConvention now checks the string case of objects' property shorthand. -
#6477
b98379dThanks @ematipico! - Fixed an issue where Biome formatter didn't format consistently CSS value separated by commas..font-heading { - font-feature-settings: var(--heading-salt), var(--heading-ss06), - var(--heading-ss11), var(--heading-cv09), var(--heading-liga), - var(--heading-calt); + font-feature-settings: + var(--heading-salt), var(--heading-ss06), var(--heading-ss11), + var(--heading-cv09), var(--heading-liga), var(--heading-calt); } -
#6248
ec7126cThanks @fireairforce! - Fixed grit pattern matching for different kinds of import statements.The grit pattern
import $imports from "foo"will match the following code:import bar from "foo"; import { bar } from "foo"; import { bar, baz } from "foo";
What's Changed
- chore: fix release tag name by @SuperchupuDev in #6456
- ci: fix tag name on creating a release by @siketyan in #6457
- fix(cli): don't use temporary file in stdin by @ematipico in #6461
- chore: update vscode badges by @ematipico in #6468
- fix(lint/useNamingConvention): check property shorthand by @Conaclos in #6480
- fix: gritql mismatch import pattern by @fireairforce in #6248
- fix(format): css comma separated values by @ematipico in #6477
- chore(deps): update @biomejs packages by @renovate in #6489
- chore(deps): update dependency @types/node to v22.15.32 by @renovate in #6493
- chore(deps): update rust crate mimalloc to 0.1.47 by @renovate in #6496
- chore(deps): update dependency @changesets/cli to v2.29.5 by @renovate in #6490
- ci: release by @github-actions in #6467
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]
@biomejs/[email protected]
2.0.4
Patch Changes
- #6450
7472d9eThanks @ematipico! - Fixed an issue where the binary wasn't correctly mapped.
What's Changed
- ci: add permissions to release actions by @ematipico in #6436
- ci: release by @github-actions in #6437
- ci: use changests action for publishing by @ematipico in #6440
- ci: manually push tags and create release by @ematipico in #6439
- feat(biome_js_analyze): adds new lint rule useReadonlyClassProperties by @vladimir-ivanov in #6297
- chore: update changeset to patch by @siketyan in #6449
- ci: release by @github-actions in #6444
- ci: skip release step if version not bumped by @siketyan in #6451
- fix: binary mapping by @ematipico in #6450
- ci: release by @github-actions in #6454
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]
@biomejs/[email protected]
Warning
Biome v2.0.1 and v2.0.2 are currently broken, please use v2.0.0 in the meantime. See #6435 for details.
Patch Changes
-
#6425
00e97adThanks @siketyan! - Fixed #6391: the rulenoUselessFragmentsno longer reports a fragment that contains whitespaces which aren't trimmed by the runtime. -
#6417
dd88565Thanks @ematipico! - Fixed #6360: The following pseudo classes and elements are no longer reported bynoUnknownPseudoClassornoUnknownPseudoElementrules.:open::details-content::prefix::search-text::suffix
-
#6417
dd88565Thanks @ematipico! - Fixed #6357, where the boolean values weren't correctly merged when using theextendsfunctionality. Now Biome correctly merges the values. -
#6417
dd88565Thanks @ematipico! - Fixed #6341: Fixed an issue where Biome would throw an error for the language tagsnbandnn. -
#6385
94142ddThanks @siketyan! - Fixed #6377: The rule noSelfCompare now correctly compares two function calls with different arguments. -
#6417
dd88565Thanks @ematipico! - Fixed #6278:useExhaustiveDependenciesno longer adds duplicated dependencies into the list. -
#6417
dd88565Thanks @ematipico! - Fix #6396, wherevi.useFakeTimers()andvi.useRealTimers()incorrectly triggered React Hooks-related rules -
#6417
dd88565Thanks @ematipico! - Fixed a bug where Biome didn't correctly discover nested configuration files when using thelintcommand and the linter is disabled in the root configuration. -
#6422
594ec50Thanks @ematipico! - Removed the experimental rename feature from Biome LSP, which caused some issues inside existing editors such as Zed. -
#6388
c6942d2Thanks @siketyan! - Fixed #6375: the formatter no longer inserts an extra empty line before a semicolon when it has leading comments.
@biomejs/js-api v1.0.0
@biomejs/[email protected] chore: cleanup CHANGELOG
Biome CLI v2.0.0
Major Changes
-
Biome now resolves globs and paths from the configuration. Before, paths and globs were resolved from the working directory.
-
Biome now raises a warning diagnostic for suppression comments that have
<explanation>as reason.<explanation>is provided as a placeholder when applying the suppression code fix from LSP editors. -
Removed the
--config-pathargument from thebiome lsp-proxyandbiome startcommands.The option was overriding the configuration path for all workspaces opened in the Biome daemon, which led to a configuration mismatch problem when multiple projects are opened in some editors or IDEs.
If you are using one of our official plugins for IDEs or editors, it is recommended to update it to the latest version of the plugin, or you will get unexpected behavior.
If you are a developer of a plugin, please update your plugin to use the
workspace/configurationresponse instead of using the--config-pathargument. Biome's LSP will resolve a configuration in the workspace automatically, so it is recommended to keep it empty unless you are using a custom configuration path. -
Downgraded some code fixes to unsafe which were previously safe.
The following rules have now a unsafe fix:
If you want to keep applying these fixes automatically, configure the rule fix as safe:
{ "linter": { "rules": { "correctness": { "noFlatMapIdentity": { "level": "error", "fix": "safe" }, "noUnusedImports": { "level": "error", "fix": "safe" } } } } } -
Previously the lint rules
noControlCharactersInRegexandnoMisleadingCharacterClasschecked both regular expression literals like/regex/and dynamically built regular expressions likenew RegExp("regex").Checking dynamically built regular expressions has many limitations, edge cases, and complexities.
In addition, other rules that lint regular expressions don't check dynamically built regular expressions.Rather than add support for other rules and have half-baked checking, we decided to remove support for dynamically built regular expressions.
Now the lint rules
noControlCharactersInRegexandnoMisleadingCharacterClassonly check literals of regular expressions. -
The lint rule
noRestrictedGlobalsnow supports customizing message for each global name.For example, the following configuration:
{ "options": { "deniedGlobals": { "$": "jQuery is not allowed. Use native DOM manipulation instead." } } }emits a diagnostic:
index.js:1:13 lint/style/noRestrictedGlobals ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ⚠ Do not use the global variable $. > 1 │ console.log($) │ ^ 2 │ ℹ jQuery is not allowed. Use native DOM manipulation instead.Breaking Change: The option
deniedGlobalsis now a record instead of an array. Runbiome migrateto migrate the configuration automatically. -
Removed
includeandignorefields in favor of the new fieldincludes.The Biome configuration file allows users to specify which files should be processed using glob patterns.
Prior to Biome 2.0, this was done using theincludeandignorefields.
In Biome 2.0,includeandignoreare removed and replaced byincludes.
You can runbiome migrateto convertincludeandignoreintoincludesautomatically.includesuses a different glob pattern format that fixes many issues and many other limitations that Biome users reported.includesaccepts an array of glob patterns.
A glob pattern starting with a!is a negated pattern also called exception.
This replacesignorepatterns and allows users to create chains of include and ignore patterns.
Thus, it is now possible to include again a file previously ignored.
This was not possible withincludeandignore, becauseignorehas priority overinclude.The semantics of
*and**/*have changed too.
Before, withincludeandignore, the glob*was interpreted as**/*.
Now, withincludes, the globs*and**/*are interpreted differently.
The first pattern matches all files that are inside a folder.
The second pattern recursively matches all files and sub-folders inside a folder.Let's take an example.
Given the following file hierarchy of a project...├── biome.json ├── src │ ├── file.js │ ├── file.ts │ ├── out.gen.js │ ├── file.test.js │ └── test │ └── special.test.js └── test ......we want:
- Ignore all files ending with
.test.js, exceptspecial.test.ts. - Ignore all files of the
testdirectory.
Thetestdirectory is located at the root of the project. - Execute the linter on files in the
srcdirectory, that don't end with.gen.js.
Thesrcdirectory is located at the root of the project. - Enable the
noDefaultExportlint rule on files ending with.ts.
Prior to Biome 2.0, the configuration might look like:
{ "files": { "ignore": ["*.test.js", "test"] }, "linter": { "include": ["src/**"], "ignore": ["*.gen.js"], "enabled": true }, "overrides": [ { "include": ["*.ts"], "linter": { "rules": { "style": { "noDefaultExport": "on" } } } } ] }Unfortunately, the configuration doesn't quite fit what we want:
- There is no way to ignore files and unignore one of them.
Thus, we ignore all files ending with.test.js, includingspecial.test.ts. - The configuration ignores all directories named
test, includingsrc/test. - The linter is executed on all files of all directories named
src
All these issues and limitations are fixed with
includes.
Here the migrated configuration:{ "files": { "includes": ["**", "!**/*.test.js", "**/special.test.ts", "!test"] }, "linter": { "includes": ["src/**", "!**/*.gen.js"], "enabled": true }, "overrides": [ { "includes": ["**/*.ts"], "linter": { "rules": { "style": { "noDefaultExport": "on" } } } } ] }- All files named
special.test.tsare unignored because the pattern appear after the pattern that ignore files ending with.test.js. - Only the
testdirectory at the project's root is ignored because the pattern doesn't start with**/. - The linter is executed on the
srcdirectory at the project's root only.
Because
includespattern have a different pattern format thanincludeandignorewe made some adjustments:- We added the pattern
**infiles.includesto ensure that all files are included before ignoring some of them. - We added the prefix
**/for patterns that must match at any level of the file hierarchy.
- Ignore all files ending with
-
noUndeclaredVariablesno longer reports TypeScript types.In TypeScript projects, developers often use global declaration files to declare global types.
Biome is currently unable to detect these global types.
This creates many false positives fornoUndeclaredVariables.TypeScript is better suited to perform this kind of check.
As proof of this, TypeScript ESLint doesn't provide any rule that extends theno-undefESLint rule.This is why Biome 1.9 introduced a new option
checkTypeswhich, when it is set to false, ignores undeclared type references.
The option was set totrueby default.This option is now set to
falseby default.
To get the previous behavior, you have to setcheckTypestotrue:{ "linter": { "rules": { "correctness": { "noUndeclaredVariables": { "level": "on", "options": { "checkTypes": true } } } } } } -
The rule
noUnusedVariablesno longer reports unused function parameters. UsenoUnusedFunctionParameters. -
Fixed #5564.
noTypeOnlyImportAttributesnow ignores files ending with the extension.tswhen the type field ofpackage.jsonis set tocommonjs. -
The Biome formatter no longer adds a trailing comma in
.jsonfiles, even whenjson.formatter.trailingCommasis set totrue. -
Prettier 3.4 introduced a change in their normalization process of string literals: it no longer unescapes useless escape sequences.
Biome now matches the new behavior of Prettier when formatting code.
This affects the JSON and JavaScript formatters. -
Reduced accepted values for formatter options:
- The option
--quote-styledoesn't acceptSingleandDoubleanymore. - The option
--quote-propertiesdoesn't acceptAsNeededandPreserveanymore. - The option
--semicolonsdoesn't acceptAsNeededandAlwaysanymore. - The option
--arrow-parenthesisdoesn't acceptAsNeededandAlwaysanymore. - The option
--trailing-commasdoesn't acceptES5,AllandNoneanymore. - The option
--attribute-positiondoesn't acceptSingleandMultilineanymore.
...
- The option
JavaScript APIs v0.8.0-beta.3
What's Changed
Other changes
- docs: update contribution guides by @ematipico in #6087
- refactor(lint): move noArguments and noCommaOperator to complexity by @Conaclos in #6090
- fix(core): recommended and domains by @ematipico in #6094
- refactor(lint/useLiteralKeys): handle numeric keys by @Conaclos in #6092
- test: cover domains case by @ematipico in #6096
- feat(core): resolve type definitions by @arendjr in #6097
- fix(core): don't ignore required files by @arendjr in #6098
- chore: rename
spec_test.rs=>spec_tests.rsby @arendjr in #6102 - refactor: module type and type member refactoring by @arendjr in #6103
- perf(lsp): scan project based on
ScanKindby @ematipico in #6099 - fix(core): process root ignore first by @ematipico in #6109
- fix(analyzer): provide syntax rule suppression actions by @ematipico in #6113
- fix(cli): diagnostic category in explain by @ematipico in #6114
- feat(core): improve inference on
.d.tsfiles by @arendjr in #6115 - feat(lint): implement useUniqueElementIds by @mehm8128 in #6082
- feat(core): populate members of namespaces and modules by @arendjr in #6120
- refactor: abstract/reuse react component detection logic by @mdevils in #6124
- feat(linter): implement useConsistentResponse by @minht11 in #5960
- docs: fix typos in RELEASES & ROME_CHANGELOG by @noritaka1166 in #6126
- docs(useNamingConvention): improve description of conventions by @Conaclos in #6123
- fix(linter): change default syntax from explicit to shorthand for useConsistentObjectDefinition by @minht11 in #6127
- chore(deps): update @biomejs packages by @renovate in #6137
- chore(deps): update rust:1.87.0-bullseye docker digest to eb80936 by @renovate in #6136
- chore(deps): update rust crate tokio to 1.45.1 by @renovate in #6139
- chore(deps): update rust crate bpaf to 0.9.20 by @renovate in #6138
- fix(useArrayLiterals): preserve array type by @simon-paris in #6116
- fix(analyzer): useSortedProperties should skip unknown properties by @fireairforce in #6132
- fix(lsp): custom configuration path should not override the working directory by @siketyan in #6125
- feat(core): resolve nested type qualifiers + improve type/value duality handling by @arendjr in #6143
- chore: add React test case by @arendjr in #6149
- fix: mark noFlatMapIdentity fix as unsafe by @ethanniser in #6146
- feat(cli): add
__where_am_icommand by @nhedger in #6151 - refactor: avoid unnecessary document retrieval by @arendjr in #6155
- feat(biome_js_analyze): useIndexOf by @vladimir-ivanov in #6121
- perf: don't call
update_service_data()unnecessarily by @arendjr in #6156 - feat(lint): implement
useObjectSpreadrule by @mdevils in #6129 - perf(core): don't save content of d.ts files by @ematipico in #6154
- feat: add plugins to override config by @wanghaoPolar in #6117
- fix(js-semantic): don't bind the parameter to its parameter by @Conaclos in #6158
- feat: monorepo support by @ematipico in #6164
- chore(format/html): remove dead code around comment formatting by @dyc3 in #6169
- chore: tweak monorepo changelog by @arendjr in #6170
- feat(core): infer interfaces by @arendjr in #6153
- chore: upgrade to rust 1.87.0 by @ematipico in #6168
- fix(core): use single ignore list for scanner by @arendjr in #6174
- fix: resolve settings based on path by @ematipico in #6175
- refactor(js_type_info): avoid allocating a String upon number parsing by @Conaclos in #6176
- feat(core): allowing overriding scanner ignore entries by @arendjr in #6177
- fix(core): fix extending nested configs by @arendjr in #6179
- perf: perform fewer clones for ignore checks by @arendjr in #6180
- fix(cli): pick up
BIOME_CONFIG_PATHby @ematipico in #6181 - fix(useExplicitType): rewrite top-level variables checking by @sterliakov in #5935
- fix: accumulate spread performance linting with object.assign by @emilyinure in #6171
- feat(core): improved namespace merging by @arendjr in #6173
- feat(biome_js_analyze): noReactPropAssign by @vladimir-ivanov in #6157
- fix: rule
useHookAtTopLevelissues, improve react components detection by @mdevils in #6185 - docs(contributing): biome.lspBin to biome.lsp.bin by @Conaclos in #6190
- fix(lsp): always identify .cjs files as CommonJS by @Conaclos in #6189
- fix(deps): update @biomejs packages by @renovate in #6194
- chore(deps): update dependency eslint to v9.28.0 by @renovate in #6196
- fix(deps): update rust crates by @renovate in #6195
- chore(deps): update rust crate hashbrown to 0.15.3 by @renovate in #6193
- chore(deps): update rust docker tag to v1.87.0 by @renovate in #6198
- feat(biome_js_analyze): useJsonImportAttribute by @Jordanh1996 in #6184
- chore(deps): update taiki-e/install-action action to v2.52.4 by @renovate in #6199
- chore(deps): update typescript-eslint monorepo to v8.33.0 by @renovate in #6200
- fix(cli): prevent panic when searching across different file types by @unvalley in #6192
New Contributors
- @noritaka1166 made their first contribution in #6126
- @ethanniser made their first contribution in #6146
- @sterliakov made their first contribution in #5935
- @emilyinure made their first contribution in #6171
- @Jordanh1996 made their first contribution in #6184
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]
CLI v2.0.0-beta.6
What's Changed
Other changes
- docs: update contribution guides by @ematipico in #6087
- refactor(lint): move noArguments and noCommaOperator to complexity by @Conaclos in #6090
- fix(core): recommended and domains by @ematipico in #6094
- refactor(lint/useLiteralKeys): handle numeric keys by @Conaclos in #6092
- test: cover domains case by @ematipico in #6096
- feat(core): resolve type definitions by @arendjr in #6097
- fix(core): don't ignore required files by @arendjr in #6098
- chore: rename
spec_test.rs=>spec_tests.rsby @arendjr in #6102 - refactor: module type and type member refactoring by @arendjr in #6103
- perf(lsp): scan project based on
ScanKindby @ematipico in #6099 - fix(core): process root ignore first by @ematipico in #6109
- fix(analyzer): provide syntax rule suppression actions by @ematipico in #6113
- fix(cli): diagnostic category in explain by @ematipico in #6114
- feat(core): improve inference on
.d.tsfiles by @arendjr in #6115 - feat(lint): implement useUniqueElementIds by @mehm8128 in #6082
- feat(core): populate members of namespaces and modules by @arendjr in #6120
- refactor: abstract/reuse react component detection logic by @mdevils in #6124
- feat(linter): implement useConsistentResponse by @minht11 in #5960
- docs: fix typos in RELEASES & ROME_CHANGELOG by @noritaka1166 in #6126
- docs(useNamingConvention): improve description of conventions by @Conaclos in #6123
- fix(linter): change default syntax from explicit to shorthand for useConsistentObjectDefinition by @minht11 in #6127
- chore(deps): update @biomejs packages by @renovate in #6137
- chore(deps): update rust:1.87.0-bullseye docker digest to eb80936 by @renovate in #6136
- chore(deps): update rust crate tokio to 1.45.1 by @renovate in #6139
- chore(deps): update rust crate bpaf to 0.9.20 by @renovate in #6138
- fix(useArrayLiterals): preserve array type by @simon-paris in #6116
- fix(analyzer): useSortedProperties should skip unknown properties by @fireairforce in #6132
- fix(lsp): custom configuration path should not override the working directory by @siketyan in #6125
- feat(core): resolve nested type qualifiers + improve type/value duality handling by @arendjr in #6143
- chore: add React test case by @arendjr in #6149
- fix: mark noFlatMapIdentity fix as unsafe by @ethanniser in #6146
- feat(cli): add
__where_am_icommand by @nhedger in #6151 - refactor: avoid unnecessary document retrieval by @arendjr in #6155
- feat(biome_js_analyze): useIndexOf by @vladimir-ivanov in #6121
- perf: don't call
update_service_data()unnecessarily by @arendjr in #6156 - feat(lint): implement
useObjectSpreadrule by @mdevils in #6129 - perf(core): don't save content of d.ts files by @ematipico in #6154
- feat: add plugins to override config by @wanghaoPolar in #6117
- fix(js-semantic): don't bind the parameter to its parameter by @Conaclos in #6158
- feat: monorepo support by @ematipico in #6164
- chore(format/html): remove dead code around comment formatting by @dyc3 in #6169
- chore: tweak monorepo changelog by @arendjr in #6170
- feat(core): infer interfaces by @arendjr in #6153
- chore: upgrade to rust 1.87.0 by @ematipico in #6168
- fix(core): use single ignore list for scanner by @arendjr in #6174
- fix: resolve settings based on path by @ematipico in #6175
- refactor(js_type_info): avoid allocating a String upon number parsing by @Conaclos in #6176
- feat(core): allowing overriding scanner ignore entries by @arendjr in #6177
- fix(core): fix extending nested configs by @arendjr in #6179
- perf: perform fewer clones for ignore checks by @arendjr in #6180
- fix(cli): pick up
BIOME_CONFIG_PATHby @ematipico in #6181 - fix(useExplicitType): rewrite top-level variables checking by @sterliakov in #5935
- fix: accumulate spread performance linting with object.assign by @emilyinure in #6171
- feat(core): improved namespace merging by @arendjr in #6173
- feat(biome_js_analyze): noReactPropAssign by @vladimir-ivanov in #6157
- fix: rule
useHookAtTopLevelissues, improve react components detection by @mdevils in #6185 - docs(contributing): biome.lspBin to biome.lsp.bin by @Conaclos in #6190
- fix(lsp): always identify .cjs files as CommonJS by @Conaclos in #6189
- fix(deps): update @biomejs packages by @renovate in #6194
- chore(deps): update dependency eslint to v9.28.0 by @renovate in #6196
- fix(deps): update rust crates by @renovate in #6195
- chore(deps): update rust crate hashbrown to 0.15.3 by @renovate in #6193
- chore(deps): update rust docker tag to v1.87.0 by @renovate in #6198
- feat(biome_js_analyze): useJsonImportAttribute by @Jordanh1996 in #6184
- chore(deps): update taiki-e/install-action action to v2.52.4 by @renovate in #6199
- chore(deps): update typescript-eslint monorepo to v8.33.0 by @renovate in #6200
- fix(cli): prevent panic when searching across different file types by @unvalley in #6192
New Contributors
- @noritaka1166 made their first contribution in #6126
- @ethanniser made their first contribution in #6146
- @sterliakov made their first contribution in #5935
- @emilyinure made their first contribution in #6171
- @Jordanh1996 made their first contribution in #6184
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]
CLI v2.0.0-beta.5
What's Changed
Other changes
- fix(reporter): fixed paths are relative by @ematipico in #6015
- feat(cli): support rule without group in
--onlyand--skipby @Conaclos in #6004 - fix(noDuplicateProperties): don't track
@keyframesby @ematipico in #6024 - refactor(migrate): handle assist actions in rule mover by @Conaclos in #6027
- feat: added an option to files - maxSize see [#5295](https://github.c… by @vladimir-ivanov in #6010
- fix(core): only trigger on ServiceDataNotification per scan by @arendjr in #6032
- feat(yaml): parse implicit block mapping by @vohoanglong0107 in #6000
- fix(analyzer): fix plugin diagnostic suppression + resolve double diagnostics by @arendjr in #6035
- chore: remove log by @ematipico in #6041
- fix(lint/noUselessEscapeInString): avoid false positive for
\${escape in template literals by @lucasweng in #6042 - feat(lint): implement
useAdjacentGetterSetterrule by @mdevils in #5964 - chore: change version of
useAdjacentGetterSetterby @mdevils in #6046 - fix(lsp): scope
workspace/configurationrequest to workspace folder by @nhedger in #6047 - fix(lint/noUselessEscapeInString): flag useless escapes after skipping ${ in template literals by @lucasweng in #6044
- fix(formatter): keep newline before semicolon in the previous statement by @siketyan in #6048
- feat(yaml): allows omitting value in explicit mapping by @vohoanglong0107 in #6054
- refactor(xtask): promote-rule to move-rule by @Conaclos in #6057
- refactor(lint): move noFlatMapIdentity, useArrayLiterals, noWith by @Conaclos in #6059
- refactor(lint): move useValidTypeof, noNamespaceImport, useNumericLiterals by @Conaclos in #6061
- refactor(lint/useConst): recommend the rule by @Conaclos in #6062
- refactor(lint): upgrade some unsafe fixes to safe fixes by @Conaclos in #6063
- refactor(lint/noUselessContinue): move rule to complexity by @Conaclos in #6068
- feat(lint): implement
noNestedComponentDefinitionsrule by @mdevils in #6053 - chore(deps): update github-actions by @renovate in #6070
- chore(deps): update dependency @changesets/cli to v2.29.4 by @renovate in #6069
- fix(deps): update @biomejs packages by @renovate in #6071
- chore(renovate): ignore rust in the github-actions group by @siketyan in #6073
- fix(deps): update rust crate ascii_table to 4.0.7 by @renovate in #6072
- chore(deps): update dependency dprint to v0.50.0 by @renovate in #6074
- chore(deps): update dependency eslint to v9.27.0 by @renovate in #6075
- fix(core/lsp): correctly compute ignored files by @ematipico in #6052
- fix(linter): noFloatingPromises detects "maybe" Promises by @arendjr in #6080
- chore: add test case for config
extendsinbiome_cliby @arendjr in #6081
New Contributors
- @vladimir-ivanov made their first contribution in #6010
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]
JavaScript APIs v0.8.0-beta.2
What's Changed
Other changes
- perf(analyzer): reduce use of owned strings by @ematipico in #5997
- fix(reporter): summary with diagnostics by @ematipico in #6002
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]
CLI v2.0.0-beta.4
What's Changed
Other changes
- fix(deps): update @biomejs packages by @renovate in #5968
- fix(deps): update rust crates by @renovate in #5969
- chore(deps): update github-actions by @renovate in #5970
- chore(deps): update dependency @changesets/cli to v2.29.3 by @renovate in #5967
- chore(deps): update rust:1.86.0 docker digest to 300ec56 by @renovate in #5966
- chore(deps): update rust crate tokio to 1.45.0 by @renovate in #5973
- chore(deps): update rust crate quickcheck_macros to 1.1.0 - autoclosed by @renovate in #5972
- fix(lint/useDateNow): add a missing space between words in diagnostic by @siketyan in #5974
- docs: type architecture by @arendjr in #5978
- refactor(migrate): handle already migrated rules by @Conaclos in #5965
- fix(noUselessBackrefInRegex): avoid overflow by @Conaclos in #5992
- refactor(migrate): don't unpromote useNamingConvention by @Conaclos in #5994
- fix(organizeImports): merge default and named imports by @Conaclos in #5993
- feat(migrate): migrate nested configuration files by @ematipico in #5986
- fix(lint): take css modules into consideration by @ematipico in #5988
- fix(cli): correct type for
enforce-assistinciby @ematipico in #5987 - fix(lint):
noUnknownPseudoElementselector check by @ematipico in #5999 - docs: fix various typos by @uncenter in #6001
- fix(lsp): compare only the formatted range on range formatting by @siketyan in #6006
- refactor(css_parser): improved error handling for the supports at rule by @denbezrukov in #5782
Full Changelog: https://github.com/biomejs/biome/compare/@biomejs/[email protected]...@biomejs/[email protected]