Repository navigation
chore(deps): @biomejs/biome ^ 2.6.3 - #9
Open
floatpanebot wants to merge 1 commit into
Open
floatpanebot wants to merge 1 commit into
floatpanebot wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
June 23, 2026 09:54
01733ef to
1d5dde3
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
July 1, 2026 12:44
1d5dde3 to
da48ecc
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
July 8, 2026 10:25
da48ecc to
364df3f
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
July 15, 2026 06:21
364df3f to
ef15766
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
July 21, 2026 10:31
ef15766 to
75ef465
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
July 28, 2026 11:25
75ef465 to
e796b47
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
August 4, 2026 14:28
e796b47 to
df446a7
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
August 11, 2026 09:04
df446a7 to
0b161f9
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
August 17, 2026 23:28
0b161f9 to
39f5708
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
August 21, 2026 18:43
39f5708 to
281b8ab
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
August 28, 2026 04:07
281b8ab to
a42a789
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
September 3, 2026 08:48
a42a789 to
f4166c3
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
September 10, 2026 14:11
f4166c3 to
cfffb5d
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
September 16, 2026 11:13
cfffb5d to
3141bc7
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
September 30, 2026 18:59
3141bc7 to
9df87c7
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
October 21, 2026 09:55
9df87c7 to
852a853
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
October 21, 2026 14:59
852a853 to
06ea9cb
Compare
floatpanebot
force-pushed
the
renovate/biomejs-biome-2.x-lockfile
branch
from
October 24, 2026 14:23
06ea9cb to
98134a9
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What?
This PR contains the following updates:
2.4.16→2.6.3Release Notes
biomejs/biome (@biomejs/biome)
v2.6.3Compare Source
Patch Changes
#12275
807e616Thanks @dyc3! - Added the new nursery rulenoArraySortForMinMax, which reports sorting an array only to read its smallest or largest value. UseMath.min()orMath.max()instead.#12432
cf61682Thanks @dyc3! - Added the nursery rulenoBooleanSortComparator, which reports sort comparators that return a boolean instead of a number. For example,array.sort((a, b) => a > b)never puts the first item before the second, so the array isn't sorted correctly.#12304
b4654c5Thanks @dyc3! - Added the new nursery rulenoEagerArrayMethodsInLoops, which reports.map()and.filter()calls in the header offor...ofloops. These calls build a new array that is only used by the loop.#12121
66c3791Thanks @dyc3! - Added the nursery rulenoNewRequire, which disallows callingrequirewithnew, such asnew require("app-header").#12316
34b520dThanks @dyc3! - Added the new nursery rulenoObsoleteAttributes, which disallows obsolete attributes on HTML elements and suggests what to use instead.#12258
cce2385Thanks @dyc3! - Added the nursery rulenoPathConcat, which disallows building file paths and URLs by joining strings to__dirname,__filename,import.meta.dirname,import.meta.filename, orimport.meta.url.#12287
e12ad78Thanks @dyc3! - Added the new nursery rulenoPlaywrightNthMethods, which disallows selecting Playwright elements by position withfirst(),last(), andnth(). A test that relies on the position of an element can act on a different element when the page changes.#12343
62ad123Thanks @vibbix! - Added the nursery rulenoSelfNestedLayer, which disallows nesting a cascade layer inside a layer with the same name. Layer names inside an@layerblock are relative to it, so the inner layer below creates the sublayercomponents.componentsinstead of adding tocomponents.#12289
bbbd95dThanks @dyc3! - Added the nursery rulenoShortTimeValues, which reports CSS animation and transition times that are shorter than the configuredminimumnumber of milliseconds. The rule does nothing untilminimumis set.For example, the following code is invalid when
minimumis100:#12431
f748ec0Thanks @dyc3! - Added the nursery rulenoSvelteInternal, which disallows importing fromsvelte/internaland its submodules. These modules are private to Svelte and can change or disappear in any release.#12270
8ae35c4Thanks @dyc3! - Added the nursery rulenoTanstackQueryRestDestructuring, which disallows rest destructuring and object spread on TanStack Query results. Both read every property of the result, so the component updates on every change to the query.The rule belongs to the new
tanstackQuerydomain.#12308
372af2aThanks @dyc3! - Added the new nursery rulenoUnreadableForOfExpression, which reportsfor...ofandfor await...ofloops that go through the result of a complex expression instead of a variable, a property, or a short call.#12422
0be8d10Thanks @dyc3! - Added the new nursery rulenoUnsafeReturn, which disallows returning a value typed asanyfrom a function.#12311
8434c92Thanks @dyc3! - Added the nursery rulenoUselessSplice, which reportssplice()calls that have a simpler alternative. For example,array.splice(0, 1)can be written asarray.shift().#12293
eaa4a2bThanks @dyc3! - Added the nursery rulenoVueUnusedEmitDeclarations, which reports events that a Vue component declares but never emits.For example, the following component never emits
close:#12386
f01ebb0Thanks @dyc3! - Added the nursery rulenoVueVTextVHtmlOnComponent, which disallowsv-textandv-htmlon Vue components. These directives replace everything inside the component's root element instead of filling its slot.#12385
7bd38b7Thanks @dyc3! - Added the new nursery rulenoVueWatchAfterAwait, which disallows creating watchers after anawaitin a Vue component'ssetup()function. Vue doesn't stop these watchers when the component is removed. A watcher is allowed when the function it returns is stored, so that function can be called later to stop the watcher.#12286
50d2a4eThanks @dyc3! - Added the nursery rulenoZeroLengthUnit, which disallows units on zero lengths in CSS. Biome can remove the unit.#12300
ab2eb9eThanks @dyc3! - Added the nursery ruleuseBlockStatementOverIife, which reports functions that are called immediately when a block statement can replace them. Biome can replace these functions with a block statement.Invalid:
#12421
1c2cac0Thanks @dyc3! - Added the nursery ruleuseConsistentLightnessNotation, which enforces writing the lightness oflab(),lch(),oklab(), andoklch()colors as a percentage, or as a number with thenotationoption. For example, with the default options,oklch(0.85 0.17 88)is reported and can be fixed tooklch(85% 0.17 88).#12224
fef7ed4Thanks @dyc3! - Added the nursery ruleuseExpectToContain, which reports tests that compare the result ofincludes()to a boolean, and suggests usingtoContain()instead.#12299
0d5025dThanks @dyc3! - Added the new nursery ruleuseIteratorZip, which reportsforloops that use an index only to read the same position from several arrays. Such loops can useIterator.zip()instead.#12298
a234d2fThanks @dyc3! - Added the nursery ruleuseMathAbs, which reports manual absolute value calculations and range checks that can useMath.abs(). For example,value < 0 ? -value : valuecan be written asMath.abs(value), andvalue > limit || value < -limitcan be written asMath.abs(value) > limit.#12499
bd024ccThanks @dyc3! - Added the nursery ruleuseMathTrunc, which requiresMath.trunc()instead of bitwise operations orparseInt(String(x), 10)for removing the decimal part of a number. For example,const result = value | 0;andconst result = ~~value;are now reported.#12314
9e875a4Thanks @dyc3! - Added the new nursery ruleusePackageJsonValidCpu, which reports acpufield inpackage.jsonthat isn't an array of known processor types. Thecpufield lists the processor types that the package supports.For example, the rule reports the following
package.jsonfile becausex86isn't a processor type that package managers recognize:{ "name": "my-package", "cpu": ["x86"] }#12315
cb30544Thanks @dyc3! - Added the nursery ruleusePackageJsonValidEngines, which reports an invalidenginesfield inpackage.json. The field must be an object, and each of its values must be a non-empty string.For example, the following
enginesfield is reported because the version ofnodeis a number:{ "engines": { "node": 24 } }#12400
407604dThanks @dyc3! - Added the nursery ruleuseVueComponentIs, which requires Vue<component>elements to bind theisattribute with:isorv-bind:is. Without it, Vue has no component to render.#12337
c371520Thanks @dyc3! - Added the nursery ruleuseVueToggleInsideTransition, which requires the element inside a Vue<Transition>to be shown and hidden withv-iforv-show. Without one of them, the element is always shown and the transition never plays.#12387
64472e9Thanks @dyc3! - Added the nursery ruleuseVueTypedRef, which reportsref()andshallowRef()calls in TypeScript that have no type argument and no initial value other thannullorundefined. Without a type, TypeScript can't tell which values these refs are meant to hold.#12423
bf1a55aThanks @dyc3! - Added the nursery ruleuseVueVOnExact, which requires the.exactmodifier on av-onlistener when another listener for the same event on the element needs more modifier keys, such as.ctrl. Without.exact, both listeners run when those keys are held down. The rule accepts the following code:#12418
208730eThanks @latin-1! - Fixed #12417:useSortedPropertiescould produce invalid CSS when sorting properties without a final semicolon. Comments attached to reordered properties are preserved.#12216
f2a3c71Thanks @dyc3! - Added the new nursery rulenoDanglingUnderscore, which disallows variable names, function names, and property accesses that start or end with an underscore.#12536
438997fThanks @vidigoat! - Fixed the formatter removing the parentheses around an instantiation expression before+,-,<,>,>=,>>and>>>. TypeScript readsmake<T> + yasmake < T > +y, andmake<T> >> ydoesn't parse.#12540
7d3e8a1Thanks @vidigoat! - Fixed the formatter removing the parentheses around an instantiation expression before a non-null assertion or type arguments of a class heritage, which produced code that doesn't parse.#12496
09d89b9Thanks @vidigoat! - Fixed the formatter removing the parentheses around binary, logical, type-cast and instantiation operands of an instantiation expression. The type arguments then applied to the last operand only, and a nested instantiation expression didn't parse.#12526
dbcdab1Thanks @dyc3! - Fixed #12524: the Markdown formatter no longer removes the blank line between a paragraph and the list that follows it. Removing it could change the document, because an ordered list that doesn't start at1can't interrupt a paragraph and became part of the paragraph text.#12509
470018bThanks @dyc3! - Fixed #12507: the Markdown formatter no longer drops the>markers after an empty quote line whenproseWrapis"always"or"never". Previously, the text after the empty line was moved out of the blockquote.#12598
5699601Thanks @vidigoat! - Fixed the formatter removing the parentheses around the callee of anewexpression when it contains a dynamicimport()call, which produced code that doesn't parse.#12508
87d9e6bThanks @dyc3! - Fixed #12502:noInvalidGridAreasnow counts the cells in each row ofgrid-template-areasinstead of comparing the length of the row text. Rows such as"a" "bb"are no longer reported, and rows such as"abc" "d e"are now reported.#12530
7f467b2Thanks @dyc3! - Fixed #12529:noUselessElseno longer reports anelseclause when theifblock ends with aswitchstatement that has nodefaultclause. If no case matches, such aswitchdoesn't exit, so theelseclause is needed.#12511
d4ea663Thanks @dyc3! - Fixed #12505:useDomNodeTextContentno longer reportsinnerTexton values whose type annotation shows they aren't DOM nodes. The following code is now valid:#12588
e262362Thanks @ematipico! - FixednoDescendingSpecificityto compare resolved nested selector targets. Biome no longer reports nested selectors that resolve to different targets, detects equivalent explicit and nested targets, and emits one diagnostic when a parent selector list expands the same nested selector multiple times.For example, the following selectors are no longer reported because their final targets are
.columnandcode, respectively:#12534
e59a324Thanks @Netail! - Improved the diagnostics ofnoIdenticalTestTitle. Biome now reports one diagnostic per repeated title, pointing at the first occurrence and at every later occurrence, instead of one diagnostic per duplicate.#12528
a3132dcThanks @ff1451! - Fixed #12503:noUnknownPropertynow checks SCSS nested properties by the name Sass emits for them. For example,radiusinborder: { radius: 4px; }is checked asborder-radiusand is no longer reported, whilecolorinfont: { color: red; }is checked asfont-colorand is now reported.#12113
ec4eb2dThanks @dyc3! - Added the nursery ruleuseConsistentUnicodeBom, which disallows a leading Unicode byte order mark by default and can require one withbom: "always". The rule supports JavaScript, TypeScript, JSON, CSS, GraphQL, HTML, and Markdown, provides a fix, and preserves theunicode-bomoption during ESLint migration.The following example is invalid by default because it starts with an invisible U+FEFF character:
#12248
afbc81eThanks @dyc3! - Added the nursery ruleuseReactNativeValidPlatformColors, which requiresPlatformColor()andDynamicColorIOS()calls to use values written directly in the call, so React Native can optimize them.#12599
b62494aThanks @dyc3! - Fixed #12532: checking the project root no longer appliesfiles.includesexclusions to directories above the project.#12578
6162922Thanks @ematipico! - Fixed GraphQL parsing and formatting for executable descriptions and legacy fragment variables. Biome now formats inputs such as"Description" query { field }without panicking and removes insignificant commas consistently.#12593
35c69adThanks @dyc3! - Fixed #12555: the default reporter now prints the command summary, the--max-diagnosticswarning, and the skipped-fixes notice to stderr instead of stdout. Diagnostics already go to stderr, so the summary can no longer get mixed into the middle of a diagnostic when a tool reads the two streams separately.#12415
9520907Thanks @latin-1! - Fixed #12412:useSortedPropertiesnow sorts properties inside@keyframesanimations in CSS and SCSS.v2.6.2Compare Source
Minor Changes
#11479
5c60ba8Thanks @nhedger! - Added a--gitflag tobiome init. The flag enables Git VCS integration and setsvcs.useIgnoreFiletotruein the generated configuration, even when the command runs outside a Git repository.#11742
3a1356dThanks @Netail! - Added thebiome migrate stylelintcommand. It imports a Stylelint configuration and its ignore settings into your Biome configuration, mapping Stylelint rules to their Biome equivalents. Pass--writeto apply the changes, and--include-inspiredor--include-nurseryto migrate additional rules.#12318
774b5b5Thanks @Netail! - Added the new assist actionuseGraphqlSortedDefinitions, which sorts the named definitions of a GraphQL document, such as types, type extensions, directives, fragments, and operations.Invalid:
#6886
3479d15Thanks @christymcgrory! -biome ragenow shows the resolvedfiles.includesandfiles.ignoreUnknownconfiguration.#11102
0874b7fThanks @gameroman! - Added support foruseTailwindSortedClassesrule in HTML-ish files.#10711
40de5a0Thanks @soconnor-seeq! - Adds a newresolutionKindoption for object-syntax plugin entries.This allows shared Biome configs in monorepos to load local Grit plugins from the package that declares them instead of resolving plugin paths from the consuming project.
{ "plugins": [ { "path": "./grit/no-debugger.grit", "resolutionKind": "config" }, { "path": "local-plugin.grit", "resolutionKind": "project" }, { "path": "local-plugin.grit" } ] }Use
resolutionKind: "config"to resolve the plugin from the configuration file that declares it. UseresolutionKind: "project"to resolve the plugin from the consuming project. When omitted,resolutionKinddefaults toproject. This only affects plugin resolution;includesstill apply to end-user project files as usual.#11432
4befd08Thanks @ematipico! - Addedbiome inspect configto show resolved configuration values and their origins as human-readable diagnostics, including matching overrides.Configuration files can also extend other configurations up to ten levels deep. Repeated references to the same resolved file are ignored with an information diagnostic, while resolving multiple versions of one extended package produces an error.
#11477
ab05554Thanks @nhedger! - Added automatic Git VCS integration when runningbiome initinside a Git repository, including from nested directories and Git worktrees. The generated configuration setsvcs.enabledandvcs.useIgnoreFiletotrue, withvcs.clientKindset to"git".#11451
1ac4b09Thanks @ematipico! - #### YAML is now supportedAdded support for formatting YAML files, both
.yamland.ymlextensions#11432
4befd08Thanks @ematipico! - Configuration files can now recursively extend local files and npm package configurations up to ten levels. Every repeated reference participates in the merge, while resolving multiple versions of one extended package produces an error.#11713
ac6a640Thanks @dyc3! - Added support for Gritrange()patterns, addressing #8454. Plugins can filter syntax nodes by optionalstart_line,start_column,end_line, andend_columnbounds.For example, this pattern matches function calls contained entirely on line 2.
#11244
0628b53Thanks @ematipico! - Added the new CLI option--profile-type-inferenceto the commandslintandcheck.The profiler is designed to track the execution time of internal queries and operations, group them by file, and sort them from the most expensive to the least expensive.
Use
--verboseto include detailed timings, attribution, breadth, and implementation references for the top source records in each file.#12108
4fcb880Thanks @ematipico! - Promoted 59 nursery rules to stable groups.Correctness
Promoted the following rules to the
correctnessgroup with error severity. All of them are recommended:noDuplicateFieldDefinitionNamesnoVueRefAsOperandnoVueImportCompilerMacrosnoVueVOnNumberValuesuseVueValidVFornoComponentHookFactoriesnoJsxNamespaceuseReactAsyncServerFunctionnoReactNativeRawTextuseReactNativePlatformComponentsuseQwikLoaderLocationnoPlaywrightMissingAwaitusePlaywrightValidDescribeCallbackSuspicious
Promoted the following rules to the
suspiciousgroup:noLoopFuncnoJsxLeakedDollarnoReactStringRefs(recommended)useScopedStyles(recommended)noReactNativeDeepImports(recommended, error severity)noDrizzleDeleteWithoutWhere(recommended, error severity)noDrizzleUpdateWithoutWhere(recommended, error severity)noConditionalExpectuseExpectnoIdenticalTestTitle(recommended)noPlaywrightForceOptionnoPlaywrightNetworkidlenoPlaywrightPagePausenoPlaywrightWaitForNavigationnoPlaywrightWaitForTimeoutnoDuplicateSelectorsnoEmptyObjectKeysuseBaselinenoUntrustedLicensesSecurity
Promoted
useIframeSandboxto thesecuritygroup with error severity.Performance
Promoted the recommended rule
useDomNodeTextContentto theperformancegroup with warning severity.Complexity
Promoted the following rules to the
complexitygroup:useArraySomeuseRegexpTestnoUnnecessaryTemplateExpressionnoPlaywrightUselessAwaitnoExcessiveSelectorClassesuseMathMinMax(recommended, warning severity)noExcessiveNestedCallbacksStyle
Promoted the following rules to the
stylegroup with information severity:useVueConsistentDefinePropsDeclarationuseVueNextTickPromise(recommended)noReactNativeLiteralColorsuseConsistentTestItuseTestHooksInOrderuseTestHooksOnTopnoPlaywrightEvalnoPlaywrightElementHandlenoPlaywrightWaitForSelectoruseReduceTypeParameteruseNamedCaptureGroupuseUnicodeRegexuseImportsFirstuseVarsOnTopuseThisInClassMethodsnoInlineStylesuseDomQuerySelectornoTopLevelLiterals#12206
0f984fbThanks @dyc3! - Added theignoreUsingDeclarationsoption tonoUnusedVariables. When enabled, the rule no longer reports unused variables declared withusingorawait using, because these declarations clean up their value automatically even when the code never reads it.{ "linter": { "rules": { "correctness": { "noUnusedVariables": { "options": { "ignoreUsingDeclarations": true } } } } } }#12424
6a41490Thanks @siketyan! - Removed thejavascript.parser.gritMetavariablesoption. It was intended for internal use only and had no effect on how Biome parses JavaScript and TypeScript files. Biome now reports it as an unknown key and exits with a configuration error, so remove it from your configuration file.#12055
54870c0Thanks @ff1451! - Added the new assist actionuseGraphqlSortedVariables, which sorts the variable definitions of GraphQL operations.Invalid:
#12149
83df808Thanks @dyc3! - Added thetailwind.stylesheetoption, which points Biome at the CSS file that holds your Tailwind CSS configuration.useTailwindSortedClassesreads the@theme,@utility, and@custom-variantrules in that file and in the local files it imports, so your own theme values, utilities, and variants sort correctly.#12206
0f984fbThanks @dyc3! - Added migration of theignoreRestSiblingsandignoreUsingDeclarationsoptions ofno-unused-vars,@typescript-eslint/no-unused-vars, andunused-imports/no-unused-varstonoUnusedVariablesinbiome migrate eslint. Options that the ESLint configuration omits are set to ESLint's defaults, so the migrated rule reports the same variables. For example,"no-unused-vars": "error"now migratesignoreRestSiblingsasfalse.#11709
32d12cbThanks @ematipico! - Added the new commandbiome inspect file, which returns developer information for the given file.By default, the command returns the CST of the file. The command accepts the following arguments:
--ast, which returns the AST of a file.--ir, which returns the formatting IR of a file.--semantic, which returns the semantic model information of a file, if available.#12221
cb571afThanks @dyc3! - The rulenoEmptySourcenow supports Markdown files. It reports files that contain only blank lines and HTML comments. For example, the following file is now reported:<!-- TODO -->#12214
8955b56Thanks @dyc3! - The rulenoEmptySourcenow supports YAML files. It reports files with no documents and each document that has no content. For example, the second document in the following code is now reported:#12033
8669e53Thanks @dyc3! - Added theignoreElementsoption tonoRedundantRoles. Elements listed in this option are not checked by the rule.{ "linter": { "rules": { "a11y": { "noRedundantRoles": { "options": { "ignoreElements": ["button"] } } } } } }#12084
04e3750Thanks @dyc3! - The rulenoRestrictedElementsnow supports HTML, Vue, Svelte, and Astro files. For example, with{ "elements": { "marquee": "Use CSS animations instead." } }, the following code is now reported:#11408
5a870f2Thanks @ematipico! - Added support for distributing named Grit rules, rule presets, and configurations through packages that have a manifest file.The field
pluginsis used to export named Grit plugins, andconfigsis used to export named configurations.Package entries must select a named export:
package/rule,package/presets/preset, orpackage/configs/config. Bare package entries aren't supported.Rules consumed from another package are exposed under the consuming package's name, while package authors continue to reference them by their source package inside the manifest.
Configurations consumed from another package are also exposed under the consuming package's name.
The package must publish the manifest and every referenced file, for example, through the
filesfield inpackage.json.Plugin authors can expose their manifest through the
biomecondition with./biome-manifest.jsonas its value.And then, you can load the rules in your
biome.json:For more information on how to create a plugin to distribute via npm, check the relative guide.
#12264
90f2eafThanks @dyc3! - Fixed #11082: glob patterns in theincludesoption of a plugin are now matched against file paths relative to the directory of the configuration file, the same asfiles.includesandoverrides[].includes.Previously, the patterns were matched against the absolute file path, so a pattern such as
packages/**/src/**matched no files and the plugin never ran.{ "plugins": [ { "path": "./my-plugin.grit", "includes": ["packages/**/src/**"] } ] }Patterns that start with
**/keep working. Patterns that contain the absolute path of the project no longer match, and must be rewritten as relative patterns.#11133
1df00deThanks @dlecan! - Added Android (Termux) support to the npm distribution (#1340).npm install @​biomejs/biomenow works on Termux through the new@biomejs/cli-android-arm64and@biomejs/cli-android-x64packages, which reuse the static musl binaries.#12132
c5fadc4Thanks @ematipico! - Added SCSS support throughout the toolchain. Biome can now format and lint.scssfiles, and recognizes.module.scssfiles as CSS Modules.#10837
754432cThanks @JamBalaya56562! - Added support for Google Apps Script (.gs) files.They are parsed as JavaScript scripts, so ES module
import/exportstatements are reported as errors (Apps Script has no module system). Common Apps Script service globals (e.g.SpreadsheetApp,DriveApp,Logger) are recognized bynoUndeclaredVariablesandnoGlobalAssign, and the list can be extended through thejavascript.globalsoption.#11126
fa63050Thanks @Punisheroot! - Biome now recognizes files with the.htmextension as HTML.#12291
6c6619eThanks @dyc3! - Changed the dependency that enables thetailwinddomain automatically. The domain is now enabled whenpackage.jsondeclarestailwindcssv4 or later, instead of v3 or later, because we are currently targeting Tailwind v4 support. The domain can always be enabled manually.#11394 [
de1ad4c](https://redirect.github.com/biomejs/biome/commit/de1ad4c4c5898524d7Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.