Skip to content

Migrate to oxc from Biome#2115

Merged
tdeekens merged 4 commits intomainfrom
chore/migrate-biome-to-oxc
Feb 21, 2026
Merged

Migrate to oxc from Biome#2115
tdeekens merged 4 commits intomainfrom
chore/migrate-biome-to-oxc

Conversation

@tdeekens
Copy link
Owner

Summary

@changeset-bot
Copy link

changeset-bot bot commented Feb 21, 2026

⚠️ No Changeset found

Latest commit: 4f4874b

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Replace Biome with OXC toolchain for linting and formatting:
- oxlint for linting with rules mirroring the existing Biome config
- oxfmt for formatting with matching style (single quotes, 80 width, trailing commas)
- Enable suspicious category at warn level for additional code quality checks
- Add eqeqeq (smart mode for null checks), no-console, import/no-duplicates
- Disable react-in-jsx-scope (React 19 JSX transform)
- Configure no-unused-vars to allow _ prefixed params (convention)
- Convert 25 biome-ignore comments to oxlint equivalents (7 removed as unneeded)
- Update CI, lint-staged, VS Code settings accordingly
@tdeekens tdeekens force-pushed the chore/migrate-biome-to-oxc branch from 30c9a6b to 1e9b690 Compare February 21, 2026 20:14
@socket-security
Copy link

socket-security bot commented Feb 21, 2026

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedoxfmt@​0.34.0901008996100
Addedoxlint@​1.49.0921009196100

View full report

@socket-security
Copy link

socket-security bot commented Feb 21, 2026

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: npm oxlint is 97.0% likely obfuscated

Confidence: 0.97

Location: Package overview

From: package.jsonnpm/oxlint@1.49.0

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore npm/oxlint@1.49.0. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

@codecov
Copy link

codecov bot commented Feb 21, 2026

Codecov Report

❌ Patch coverage is 92.00000% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 92.95%. Comparing base (68e96f8) to head (4f4874b).
⚠️ Report is 1 commits behind head on main.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
packages/react-broadcast/src/configure.tsx 0.00% 2 Missing ⚠️
Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #2115      +/-   ##
==========================================
- Coverage   92.96%   92.95%   -0.01%     
==========================================
  Files          73       73              
  Lines        1478     1477       -1     
  Branches      259      256       -3     
==========================================
- Hits         1374     1373       -1     
  Misses         94       94              
  Partials       10       10              
Files with missing lines Coverage Δ
packages/adapter-utilities/src/normalize-flag.ts 100.00% <ø> (ø)
packages/adapter-utilities/src/normalize-flags.ts 100.00% <100.00%> (ø)
packages/cache/src/cache.ts 91.66% <ø> (ø)
packages/combine-adapters/src/adapter.ts 91.11% <100.00%> (ø)
packages/graphql-adapter/src/adapter.ts 83.20% <ø> (-0.14%) ⬇️
packages/http-adapter/src/adapter.ts 82.78% <ø> (ø)
packages/launchdarkly-adapter/src/adapter.ts 94.54% <100.00%> (ø)
packages/localstorage-adapter/src/adapter.ts 92.63% <ø> (ø)
packages/memory-adapter/src/adapter.ts 97.36% <ø> (ø)
...s/react-broadcast/src/branch-on-feature-toggle.tsx 100.00% <ø> (ø)
... and 40 more
🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

- Change `import type React` to `import React` in 7 files across
  react-broadcast and react-redux where React is used as a JSX value
- Format tooling/test-utils/package.json with oxfmt (key reordering)
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request migrates the project's linting and formatting infrastructure from Biome to oxc (oxlint and oxfmt). The changes include removing Biome configuration, adding oxc configuration files, updating all lint directive comments throughout the codebase, applying consistent formatting changes, and reordering package.json fields to match oxfmt's conventions.

Changes:

  • Replaced Biome with oxc tooling (oxlint and oxfmt)
  • Updated all lint suppression comments from biome-ignore to oxlint-disable syntax
  • Applied consistent formatting changes (trailing commas, blank lines, quote normalization)
  • Reordered package.json fields across all packages for consistency
  • Updated scripts, workflows, and IDE configuration

Reviewed changes

Copilot reviewed 142 out of 143 changed files in this pull request and generated no comments.

Show a summary per file
File Description
biome.json Removed Biome configuration
.oxlintrc.json Added oxlint configuration with rules and plugins
.oxfmtrc.json Added oxfmt formatting configuration
.vscode/settings.json Updated to use oxc-vscode extension
lint-staged.config.mjs Updated to use oxlint and oxfmt instead of biome
package.json Updated scripts and dependencies; reordered fields
packages/*/package.json Standardized field ordering across all packages
packages//src/.ts(x) Updated lint comments; added trailing commas and blank lines
packages//test/.js(x) Updated lint comments; formatting adjustments
packages/splitio-adapter/src/adapter.ts Simplified conditional logic in normalizeFlag function
packages/react-broadcast/src/use-all-feature-toggles.ts Changed .reverse() to .toReversed()
packages/react-redux/src/use-all-feature-toggles.ts Changed .reverse() to .toReversed()
packages/react-broadcast/src/test-provider.tsx Removed unnecessary spread operator
packages/graphql-adapter/src/adapter.ts Simplified optional chaining
readme.md Quote style normalization; table formatting
openspec/*.md Markdown formatting adjustments
Files not reviewed (1)
  • pnpm-lock.yaml: Language not supported

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@tdeekens tdeekens merged commit 40c4eb8 into main Feb 21, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants