Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
87 commits
Select commit Hold shift + click to select a range
3c8203b
fix(ROME_CHANGELOG.md): grammar and typo error (#7992)
WuMingDao Nov 5, 2025
47dfc9a
chore(parser): increase size of SyntaxKindSet bitfield (#7994)
ryan-m-walker Nov 5, 2025
549bcd4
fix(RELEASES.md): grammar and typo error (#7993)
WuMingDao Nov 5, 2025
42a1007
fix(html): fix comment detection in Astro frontmatter (#7989)
alissonlauffer Nov 5, 2025
a688e62
feat: support html.experimentalFullSupportEnabled for vue with jsx/ts…
lisiur Nov 5, 2025
9f0dd8e
ci: release (#7965)
github-actions[bot] Nov 5, 2025
e56cda2
feat(html/svelte): key blocks (#8001)
ematipico Nov 5, 2025
15ff612
chore(parser): increase size of TokenSet (#7997)
ryan-m-walker Nov 5, 2025
84360d3
feat(html/svelte): parsing of new blocks (#8023)
ematipico Nov 6, 2025
0fdc25e
fix(useArrowFunction): make useArrowFunction rule fixer safer (#8009)
tmcw Nov 6, 2025
eadcaff
fix(deps): update rust crates (#7889)
renovate[bot] Nov 7, 2025
9a74045
feat(cli): add format errors to GitLab reporter (#8028)
fmajestic Nov 7, 2025
30360ed
fix(html/astro): don't indent Astro frontmatter (#8037)
PFiS1737 Nov 8, 2025
7b2708f
fix(html/astro): keep a blank after the frontmatter (#8039)
PFiS1737 Nov 8, 2025
99441aa
fix(parse/tailwind): fix lexing `inset-x`, `border-slate-500`, and ot…
dyc3 Nov 8, 2025
227019c
fix(parse/css/tailwind): make `@custom-variant` accept selector lists…
dyc3 Nov 8, 2025
ce2f813
docs: rules.rs cleanup (#8044)
Netail Nov 9, 2025
eb4f400
docs: update documentation + diagnostic for `noBannedTypes` descripti…
Bertie690 Nov 9, 2025
90283ad
refactor(deserialize): exact allocation for arrays and maps (#8040)
Conaclos Nov 9, 2025
a6337db
feat(parse/tailwind): add benchmark (#7976)
dyc3 Nov 9, 2025
528df11
feat(html/svelte): `if/else` syntax (#8031)
ematipico Nov 9, 2025
0c2030e
fix(parse/css/tailwind): make `@custom-variant` accept at-rules like …
dyc3 Nov 9, 2025
d2c7e96
chore: enable more rustc lints (#8047)
Conaclos Nov 9, 2025
c213d42
ci: trigger benches when formatter changes (#8046)
ematipico Nov 9, 2025
64f1bac
chore(deps): update github-actions (#8048)
renovate[bot] Nov 10, 2025
43e43a6
chore(deps): update dependency eslint to v9.39.1 (#8049)
renovate[bot] Nov 10, 2025
1f77f57
chore(deps): update rust crate jiff to 0.2.16 (#8050)
renovate[bot] Nov 10, 2025
78d9005
chore(deps): update rust crate quote to 1.0.42 (#8051)
renovate[bot] Nov 10, 2025
b1ee9ed
chore(deps): update rust crate ureq to 3.1.4 (#8052)
renovate[bot] Nov 10, 2025
3a73252
chore(deps): update rust docker tag to v1.91.0 (#8056)
renovate[bot] Nov 10, 2025
8c1d190
chore(deps): update typescript-eslint monorepo to v8.46.3 (#8057)
renovate[bot] Nov 10, 2025
3af667c
feat(parse/html): support vue directive syntax (#7673)
dyc3 Nov 10, 2025
ced55ae
fix(lsp): biome project watcher (#8058)
ematipico Nov 10, 2025
0513f6b
fix(no_unknown_attribute): added support for new dom attributes (#8064)
dibashthapa Nov 10, 2025
6333003
feat(biome_js_analyze): implement useArraySortCompare (#8065)
Netail Nov 10, 2025
ee4c890
ci: release (#8003)
github-actions[bot] Nov 11, 2025
0b248e3
refactor(cli/logging): removed duplication in setup_cli_subscriber(..…
JadKHaddad Nov 11, 2025
206dac0
perf(parse/tailwind): use compact trie for lexing base names instead …
dyc3 Nov 11, 2025
18c129c
feat(biome_graphql_analyze): implement `useConsistentGraphqlDescripti…
Netail Nov 11, 2025
c19bcde
fix: remove unexpected new line when adding a readonly class property…
YTomm Nov 11, 2025
3256a98
feat(html/analyze): add useVueValidVBind (#8060)
dyc3 Nov 11, 2025
c68c0f2
fix(noDuplicateTestHook): detect more test function defintions (#7287)
ToBinio Nov 11, 2025
e60ade8
fix(noParametersOnlyUsedInRecursion): compare bindings for recursion …
matanshavit Nov 12, 2025
5e5b45e
feat(html/analyze): add `useVueValidVIf`, `useVueValidVElseIf`, `useV…
dyc3 Nov 12, 2025
96a8051
refactor(lint): refactor NoParametersOnlyUsedInRecursion (#7970)
matanshavit Nov 12, 2025
b86bd62
fix(parse/html/vue): fix modifier list parser aggressively parsing to…
dyc3 Nov 12, 2025
9851fda
feat(js_analyze): implement noForIn (#8085)
Netail Nov 12, 2025
ac86030
fix(noNestedTernary): detect nested ternaries wrapped in parentheses …
matanshavit Nov 12, 2025
2db05b2
refactor: migrate to schemars v1 (#8087)
ematipico Nov 12, 2025
7675e12
feat(graphql_analyze): add `useUniqueGraphqlOperationName` (#8013)
Jayllyz Nov 12, 2025
fa94f9c
chore: regression schemars v1 (#8092)
ematipico Nov 13, 2025
42c3020
refactor(core): actions and pull diagnostics (#8082)
ematipico Nov 13, 2025
60a25f8
chore: enable oidc publishing (#8074)
ematipico Nov 13, 2025
503e6fc
chore: expose schema generation function (#8093)
ematipico Nov 13, 2025
b89a205
feat: add useSpread rule (#7681)
kedevked Nov 13, 2025
aaa7896
chore(core): add CSS variant information to the source file (#8095)
ematipico Nov 13, 2025
0bb1d63
feat(schema): add docs URLs to rule description (#8098)
Jayllyz Nov 13, 2025
5a184d1
feat(js_analyze): implement useFind (#8100)
Netail Nov 14, 2025
b768b0e
feat(biome_js_analyze): align no_unused_private_class_members_with_se…
vladimir-ivanov Nov 14, 2025
741aad4
feat(analyze): implement `noSyncScripts` (#8108)
Netail Nov 15, 2025
084c1dd
fix(noInvalidUseBeforeDeclaration): don't report use before ambient v…
Conaclos Nov 15, 2025
b74bdc5
fix(noInvalidUseBeforeDeclaration): handle class, enum, import-equals…
Conaclos Nov 15, 2025
72dfab0
fix(useReactFunctionComponents): handle class expressions with compon…
lucasweng Nov 15, 2025
79040d0
feat(lint/vue): add `noVueVIfWithVFor`, `useVueHyphenatedAttributes` …
dyc3 Nov 16, 2025
1fbed61
chore(deps): update github-actions (#8121)
renovate[bot] Nov 17, 2025
0862af3
chore(deps): update dependency @types/node to v22.19.1 (#8122)
renovate[bot] Nov 17, 2025
1d68b90
chore(deps): update dependency rust to v1.91.1 (#8123)
renovate[bot] Nov 17, 2025
9fe5a73
chore(deps): update taiki-e/install-action action to v2.62.52 (#8126)
renovate[bot] Nov 17, 2025
be60066
chore(deps): update typescript-eslint monorepo to v8.46.4 (#8127)
renovate[bot] Nov 17, 2025
154b87a
fix(biome_js_analyze): fix useValidLang rejecting BCP 47 language tag…
Nov 17, 2025
93140a2
fix(deps): update @biomejs packages (#8129)
renovate[bot] Nov 17, 2025
3a90fa4
fix(deps): update rust crates (#8130)
renovate[bot] Nov 17, 2025
c0131ea
chore(deps): update rust crate schemars to 1.1.0 (#8124)
renovate[bot] Nov 17, 2025
ef55974
chore(deps): update rust crate windows to 0.62.2 (#8053)
renovate[bot] Nov 17, 2025
523a6e4
chore(deps): update @biomejs packages (major) (#8131)
renovate[bot] Nov 17, 2025
970d0e2
chore(deps): update dependency @types/node to v24 (#8132)
renovate[bot] Nov 17, 2025
da56e13
chore: schema regression rule domains (#8133)
ematipico Nov 17, 2025
08731c2
chore: disable docstrings in coderabbit (#8134)
ematipico Nov 17, 2025
7cbb600
ci: release (#8076)
github-actions[bot] Nov 17, 2025
9d7af12
chore: remove gold sponsor (#8135)
ematipico Nov 17, 2025
0342459
fix: next namespace (#8142)
Netail Nov 17, 2025
902f57e
fix(schema): domains and feature kind (#8147)
ematipico Nov 18, 2025
c79d865
docs(lint/html): fix some html rule docs that mess up markdown render…
dyc3 Nov 18, 2025
e5a66f5
fix(noInvalidUseBeforeDeclaration): ignore valid use before declarati…
Conaclos Nov 18, 2025
3a995fc
feat: sort interface members
hamirmahal Nov 16, 2025
8800fa0
make sort interface members an assist action, not
hamirmahal Nov 19, 2025
1eabb32
rebase and fix changeset
ematipico Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 14 additions & 0 deletions .changeset/bright-tires-report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
"@biomejs/biome": patch
---

Fixed [#8148](https://github.com/biomejs/biome/issues/8148). [`noInvalidUseBeforeDeclaration`](https://biomejs.dev/linter/rules/no-invalid-use-before-declaration/) no longer reports some valid use before declarations.

The following code is no longer reported as invalid:

```ts
class classA {
C = C;
}
const C = 0;
```
29 changes: 29 additions & 0 deletions .changeset/chilly-jokes-decide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
"@biomejs/biome": minor
---

Added a new assist action `useSortedInterfaceMembers` that sorts TypeScript interface members, for readability.

It includes an autofix.
Comment on lines +5 to +7
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion | 🟠 Major

Improve changeset description for end-user clarity.

The current description is vague. Per past feedback, add the rule/assist name and brief explanation so end users understand what changed. Include a code example showing the behaviour.

Reference the .changeset/bright-tires-report.md format as a good example.

🤖 Prompt for AI Agents
.changeset/chilly-jokes-decide.md around lines 5-7: the changeset message is too
vague for end users; update it to explicitly name the new assist
`useSortedInterfaceMembers`, add a short one-line explanation that it sorts
TypeScript interface members for readability and has an autofix, and include a
small before/after code example showing an unsorted interface and the sorted
result (use fenced examples like "before:" and "after:"), following the style of
.changeset/bright-tires-report.md so the changeset clearly communicates the
change to users.


Invalid example.

```ts,expect_diagnostic
interface MixedMembers {
z: string;
a: number;
(): void;
y: boolean;
}
```

Valid example (after using the assist).

```ts
interface MixedMembers {
a: number;
y: boolean;
z: string;
(): void;
}
```
11 changes: 0 additions & 11 deletions .changeset/lemon-planes-knock.md

This file was deleted.

72 changes: 0 additions & 72 deletions .changeset/mighty-bats-grow.md

This file was deleted.

10 changes: 0 additions & 10 deletions .changeset/nine-bottles-float.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/ten-ears-stand.md

This file was deleted.

31 changes: 0 additions & 31 deletions .changeset/yellow-crews-guess.md

This file was deleted.

7 changes: 5 additions & 2 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,17 +24,20 @@ reviews:
- "!**/backend-jsonrpc/src/workspace.ts"
auto_review:
enabled: true
base_branches: ["main", "next"]
base_branches: [ "main", "next" ]
drafts: false
tools:
biome:
enabled: false # We use our own Biome workflow :)
clippy:
enabled: false # Same for Clippy
finishing_touches:
docstrings:
enabled: false
tone_instructions: "Please keep it short and to the point. Be patient, especially with new contributors. Feel free to be witty with maintainers."
knowledge_base:
code_guidelines:
enabled: true
filePatterns: ["**/CLAUDE.md", "**/CONTRIBUTING.md"]
filePatterns: [ "**/CLAUDE.md", "**/CONTRIBUTING.md" ]
chat:
auto_reply: false
2 changes: 2 additions & 0 deletions .github/workflows/benchmark_css.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- 'crates/biome_css_formatter/**/*.rs'
- 'crates/biome_css_parser/**/*.rs'
- 'crates/biome_css_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'
push:
Expand All @@ -25,6 +26,7 @@ on:
- 'crates/biome_css_formatter/**/*.rs'
- 'crates/biome_css_parser/**/*.rs'
- 'crates/biome_css_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/benchmark_graphql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ on:
- 'crates/biome_graphql_formatter/**/*.rs'
- 'crates/biome_graphql_parser/**/*.rs'
- 'crates/biome_graphql_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'
push:
Expand All @@ -23,6 +24,7 @@ on:
- 'crates/biome_graphql_formatter/**/*.rs'
- 'crates/biome_graphql_parser/**/*.rs'
- 'crates/biome_graphql_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/benchmark_js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- 'crates/biome_js_formatter/**/*.rs'
- 'crates/biome_js_parser/**/*.rs'
- 'crates/biome_js_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'
push:
Expand All @@ -25,6 +26,7 @@ on:
- 'crates/biome_js_formatter/**/*.rs'
- 'crates/biome_js_parser/**/*.rs'
- 'crates/biome_js_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'

Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/benchmark_json.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ on:
- 'crates/biome_json_formatter/**/*.rs'
- 'crates/biome_json_parser/**/*.rs'
- 'crates/biome_json_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'
push:
Expand All @@ -25,6 +26,7 @@ on:
- 'crates/biome_json_formatter/**/*.rs'
- 'crates/biome_json_parser/**/*.rs'
- 'crates/biome_json_*/**/*.rs'
- 'crates/biome_formatter/**/*.rs'
- 'crates/biome_rowan/**/*.rs'
- 'crates/biome_parser/**/*.rs'

Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/benchmark_tailwind.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Benchmarks Tailwind

on:
workflow_dispatch:
pull_request:
types: [opened, synchronize]
branches:
- main
- next
paths:
- "Cargo.lock"
- "crates/biome_tailwind_parser/**/*.rs"
- "crates/biome_tailwind_*/**/*.rs"
- "crates/biome_rowan/**/*.rs"
- "crates/biome_parser/**/*.rs"
push:
branches:
- main
- next
paths:
- "Cargo.lock"
- "crates/biome_tailwind_parser/**/*.rs"
- "crates/biome_tailwind_*/**/*.rs"
- "crates/biome_rowan/**/*.rs"
- "crates/biome_parser/**/*.rs"

env:
RUST_LOG: info

jobs:
bench:
permissions:
contents: read
pull-requests: write
name: Bench
runs-on: depot-ubuntu-24.04-arm-16
strategy:
matrix:
package:
- biome_tailwind_parser

steps:
- name: Checkout PR Branch
uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0
with:
ref: ${{ github.event.pull_request.head.sha || github.sha }}

- name: Install toolchain
uses: moonrepo/setup-rust@ede6de059f8046a5e236c94046823e2af11ca670 # v1.2.2
with:
channel: stable
cache-target: release
bins: cargo-codspeed
cache-base: main
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Compile
timeout-minutes: 20
run: cargo codspeed build -p ${{ matrix.package }}
env:
CARGO_BUILD_JOBS: 3 # Default is 4 (equals to the vCPU count of the runner), which leads OOM on cargo build

- name: Run the benchmarks
uses: CodSpeedHQ/action@76578c2a7ddd928664caa737f0e962e3085d4e7c # v3.8.1
timeout-minutes: 50
with:
run: cargo codspeed run
token: ${{ secrets.CODSPEED_TOKEN }}
12 changes: 5 additions & 7 deletions .github/workflows/beta.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ jobs:
sudo apt-get install -y musl-tools

- name: Install cargo-audit
uses: taiki-e/install-action@81ee1d48d9194cdcab880cbdc7d36e87d39874cb # v2.62.45
uses: taiki-e/install-action@537c30d2b45cc3aa3fb35e2bbcfb61ef93fd6f02 # v2.62.52
if: matrix.code-target == 'linux-x64-musl'
with:
tool: cargo-audit
Expand Down Expand Up @@ -124,7 +124,7 @@ jobs:
name: Package ${{ matrix.code-target }}
runs-on: ${{ matrix.os }}
container:
image: rust:1.89.0-bullseye@sha256:8f72d971a31b278cebdb2eb64a44c3900ff27c716a4ef6f4db05946d10c9ae4e
image: rust:1.91.1-bullseye@sha256:8d9b5e80062dcdb7f037b4eef92a6649632034d6811652e028706ea93db64159

env:
version: ${{ needs.version.outputs.version }}
Expand Down Expand Up @@ -220,7 +220,7 @@ jobs:
- name: Install Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: 20.19.5
node-version: 24.11.1
registry-url: 'https://registry.npmjs.org'

- name: Pin Corepack 0.20
Expand All @@ -241,14 +241,12 @@ jobs:
run: |
for package in packages/@biomejs/*; do
if [ $package != "packages/@biomejs/js-api" ] && [ $package != "packages/@biomejs/plugin-api" ]; then
npm publish $package --tag beta --access public --provenance
npm publish $package --tag beta --access public
fi
done
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}

- name: Create GitHub release and tag
uses: softprops/action-gh-release@6da8fa9354ddfdc4aeace5fc48d7f679b5214090 # v2.4.1
uses: softprops/action-gh-release@5be0e66d93ac7ed76da52eca8bb058f665c3a5fe # v2.4.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
Expand Down
Loading