Skip to content

Issue #432: Migrate linting and formatting to Biome#452

Merged
cameri merged 11 commits intocameri:mainfrom
Priyanshubhartistm:issue-432-biome-migration
Apr 18, 2026
Merged

Issue #432: Migrate linting and formatting to Biome#452
cameri merged 11 commits intocameri:mainfrom
Priyanshubhartistm:issue-432-biome-migration

Conversation

@Priyanshubhartistm
Copy link
Copy Markdown
Collaborator

@Priyanshubhartistm Priyanshubhartistm commented Apr 10, 2026

Description

  • Migrated the linting and formatting toolchain to Biome.
  • Added Biome configuration for linting and formatting behavior.
  • Updated npm scripts for lint, lint report, lint fix, format, and format check to use Biome.
  • Updated CI lint pipeline to run Biome.
  • Updated project documentation to reference Biome workflow.
  • Removed legacy ESLint configuration and ESLint dependencies.
  • Updated lockfile after dependency migration.

Related Issue

Closes #432

Motivation and Context

  • Use a single tool for linting and formatting.
  • Simplify tooling and maintenance.
  • Improve performance compared to separate lint/format tools.

How Has This Been Tested?

  • npm run lint
  • npm run build:check

Screenshots (if appropriate):

N/A

Types of changes

  • Non-functional change (docs, style, minor refactor)
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my code changes.
  • All new and existing tests passed.

Performance & Disk Usage

Metric Before (ESLint + Prettier) After (Biome) Change
Lint time 7.55 seconds 0.97 seconds 7.8x faster (-87%)
node_modules size 268 MB 348 MB +80 MB (+30%)

Summary:
Linting speed improved dramatically (~7.8 times faster).
Note: node_modules size increased slightly due to dependency changes during migration.

@socket-security
Copy link
Copy Markdown

socket-security Bot commented Apr 10, 2026

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

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Addedpg-query-stream@​4.3.01001008785100
Addedramda@​0.28.010010010088100
Addedpg@​8.9.0991009889100
Added@​biomejs/​biome@​2.4.1210010010099100

View full report

@socket-security
Copy link
Copy Markdown

socket-security Bot commented Apr 10, 2026

All alerts resolved. Learn more about Socket for GitHub.

This PR previously contained dependency changes with security issues that have been resolved, removed, or ignored.

View full report

@cameri cameri requested a review from Copilot April 11, 2026 02:11
Copy link
Copy Markdown

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

Migrates the project’s JavaScript/TypeScript linting + formatting workflow from ESLint (and related tooling) to Biome, updating developer docs and CI to use the new toolchain.

Changes:

  • Added biome.json and @biomejs/biome dev dependency; updated npm scripts to run Biome for linting/formatting.
  • Updated GitHub Actions CI checks to run the new lint command.
  • Updated documentation and removed legacy ESLint config/ignore files.

Reviewed changes

Copilot reviewed 7 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
README.md Documents the new Biome lint/format commands under the Tests section.
package.json Replaces ESLint scripts with Biome scripts; adds Biome as a dev dependency; removes ESLint-related deps.
CONTRIBUTING.md Updates contributor guidance to reference Biome for code-quality checks.
biome.json Introduces Biome configuration (formatter + linter rules).
.github/workflows/checks.yml Updates the lint job step name and runs npm run lint (now Biome-based).
.eslintrc.js Removed legacy ESLint configuration.
.eslintignore Removed legacy ESLint ignore file.

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

Comment thread package.json Outdated
Comment thread biome.json Outdated
@Priyanshubhartistm
Copy link
Copy Markdown
Collaborator Author

hi @cameri , @phoenix-server
could you please review this PR whenever you are free
Thank you

@cameri
Copy link
Copy Markdown
Owner

cameri commented Apr 18, 2026

@Priyanshubhartistm since we've upgraded to latest version of ESLint, do you mind addressing conflicts?

…ration

# Conflicts:
#	.eslintrc.js
#	package-lock.json
#	package.json
@cameri
Copy link
Copy Markdown
Owner

cameri commented Apr 18, 2026

@Priyanshubhartistm could you capture the speed and dependency disk cost improvements by migrating to Biome? I'm interested in the absolute values before/after and the % relative change to understand the impact.

If you do, could you update the PR description with it or add it as a comment to the issue? Either works!

Comment thread CONTRIBUTING.md Outdated
@cameri cameri merged commit 842b78e into cameri:main Apr 18, 2026
9 checks passed
phoenix-server pushed a commit that referenced this pull request Apr 18, 2026
* chore(tooling): migrate npm tooling scripts to biome

* chore(biome): add biome configuration

* ci: switch lint workflow to biome

* docs: update contribution and readme for biome

* chore(lint): remove legacy eslint config files

* docs: update lint tooling wording to biome

* fix(lint): address Copilot review feedback
@Priyanshubhartistm
Copy link
Copy Markdown
Collaborator Author

@cameri Here are the before/after measurements:

Performance & Disk Usage

Metric Before (ESLint + Prettier) After (Biome) Change
Lint time 7.55 seconds 0.97 seconds 7.8x faster (-87%)
node_modules size 268 MB 348 MB +80 MB (+30%)

Summary:
Linting speed improved dramatically (~7.8 times faster).
Note: node_modules size increased slightly due to dependency changes during migration.

Linting is now ~7.8x faster. node_modules size increased a bit, likely due to dependency updates. Let me know if anything else is needed!

@cameri
Copy link
Copy Markdown
Owner

cameri commented Apr 18, 2026

@Priyanshubhartistm thank you!

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.

Migrate from ESLint/Prettier to Biome

3 participants