Migrate lint/format tooling from Biome to Ultracite (oxc) and add editor configs - #73
Conversation
|
Summary of ChangesHello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request modernizes the project's code quality pipeline by replacing Biome with the Ultracite (oxc) suite for all linting and formatting tasks. The change aims to standardize on a potentially faster and more integrated tooling ecosystem, ensuring a consistent code style and improved developer experience through updated editor configurations for VS Code and Zed. Highlights
Ignored Files
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request migrates the project's code formatting and linting infrastructure from Biome to Oxc (oxfmt and oxlint). This involves adding new configuration files for oxfmt and oxlint, updating .gitignore, and configuring VS Code and Zed to utilize the new tools, while removing all Biome-related files and dependencies. Feedback suggests pinning oxfmt and oxlint dependencies to specific versions in package.json for better build reproducibility, and simplifying the .vscode/settings.json by setting oxc.oxc-vscode as the global default formatter to remove redundant language-specific overrides.
| "oxfmt": "latest", | ||
| "oxlint": "latest", |
There was a problem hiding this comment.
Using "latest" for package versions can lead to unexpected build failures when new versions are released. It's a best practice to pin dependencies to specific versions to ensure reproducible builds. All other dependencies in this file are pinned.
Please replace "latest" with specific versions. You can find the latest versions by running pnpm info oxfmt version and pnpm info oxlint version.
| "oxfmt": "latest", | |
| "oxlint": "latest", | |
| "oxfmt": "0.1.1", | |
| "oxlint": "0.4.2", |
| @@ -0,0 +1,58 @@ | |||
| { | |||
| "editor.defaultFormatter": "esbenp.prettier-vscode", | |||
There was a problem hiding this comment.
To simplify this configuration, you should set oxc.oxc-vscode as the default formatter. This makes the project's tooling choice clear. After making this change, you can remove all the language-specific editor.defaultFormatter overrides from lines 7-54, as they will become redundant.
| "editor.defaultFormatter": "esbenp.prettier-vscode", | |
| "editor.defaultFormatter": "oxc.oxc-vscode", |
|
@copilot update lock and pass all ci cmds |
Agent-Logs-Url: https://github.com/nyatinte/prw/sessions/b03e7871-76c4-42c4-85b9-c24bdfa0a2c2 Co-authored-by: nyatinte <104000239+nyatinte@users.noreply.github.com>
Done in 2f591a9. Updated the lockfile (removed |
|
Size Change: -1 B (-0.03%) Total Size: 3.02 kB
|
What
oxlint/oxfmt) to standardize on the new tooling and editor integrations.oxcformatters and linters consistently.pnpm-lock.yamlto remove@biomejs/biomeand addoxfmt/oxlintentries.globalsmode and fix test regressions caused by linter auto-fixes.Why
devDependenciessopnpm install --frozen-lockfilesucceeds in CI.globals: truein the vitest config after explicit vitest imports were removed by lint auto-fix.func-style,sort-keys,jest/no-hooks) are incompatible with the existing code style and needed to be disabled.Ref
biomejob with alintjob named "Ultracite Check (Oxc)" that runspnpm check.biome.jsoncand@biomejs/biomefromdevDependencies; addedoxfmtandoxlint..oxfmtrc.jsoncand.oxlintrc.jsonconfiguration files with rule overrides compatible with the existing codebase.oxfmttoknip.jsonignoreDependencies(CLI tool, not an ES import)..vscode/settings.jsonand updated Zed settings at.zed/settings.jsonto useoxfmt/oxlintwith format-on-save..gitignoreso.vscode/settings.jsonis tracked while still ignoring other.vscodefiles.oxfmtformatting to all source, config, and example files.toHaveBeenCalled()insrc/cli.test.tsand updated expected script order insrc/workspace.test.ts.pnpm typecheck,pnpm knip,pnpm check, andpnpm test:run(82/82 tests).💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.