Skip to content

chore: replace Biome with Oxfmt and Oxlint - #33

Merged
elierotenberg merged 2 commits into
mainfrom
chore/replace-biome-with-oxc
Oct 25, 2026
Merged

elierotenberg merged 2 commits into
mainfrom
chore/replace-biome-with-oxc

Conversation

@elierotenberg

Copy link
Copy Markdown
Member

The JavaScript tooling ecosystem is adopting Oxc, and the maintainers'
other projects are moving their formatting and linting to it. Staying on
Biome here would keep a separate toolchain, configuration, and editor
setup to maintain. Separately, several release control tests accept
any failure: the publication checks search the whole error message,
which also contains the script text with every expected ::error::
line, and the tag checks accept any rejection or the fixture's own
catch-all error.

Replace Biome with Oxfmt for formatting and Oxlint with type-aware rules
for linting, keep the rules Biome enforced, and adapt the code and tests
to the stricter checks. Assert the exact errors the release controls
report.

repository:

  • Format TypeScript, JSON, Markdown, and YAML with Oxfmt, keeping the
    previous line width and import grouping.
  • Sort the top-level keys of the package manifest with the formatter.
  • Lint with the correctness, suspicious, perf, and pedantic categories
    plus Oxlint equivalents of Biome's recommended rules.
  • Give extension host tests a nested TypeScript project so type-aware
    rules resolve their Mocha types.
  • Run both tools through the existing check, fix, and format scripts.
  • Describe the new tools in the agent guide and the coding style
    skill.
  • Adjust sources to the new rules without changing behavior.
  • Type test mocks with their real contracts and assert the exact
    errors thrown.
  • Read registered callbacks from mocks instead of no-op placeholders.
  • Run the packed CLI's signal check as its own POSIX-only test.

devcontainer:

  • Use the Oxc extension for formatting and fixes on save.

extension:

  • Mark the queue poll interval callback as intentionally unawaited.

release:

  • Anchor publication step errors to the annotation line they print.
  • Assert the exit status of steps that fail without output.
  • Assert the exact tag verification failures, including a synthetic
    history check failure.
  • Validate GitHub response chunks before counting them.

Several release control tests accept any failure. The publication checks
search the whole error message, which also contains the script text with
every expected `::error::` line, and the tag checks accept any rejection
or the fixture's own catch-all error.

Assert the exact error each failing step reports, matching printed
annotations from the start of an output line, and make the tag fixture
fail the history check explicitly.

release:
  - Anchor publication step errors to the annotation line they print.
  - Assert the exit status of steps that fail without output.
  - Assert the exact tag verification failures, including a synthetic
    history check failure.
The JavaScript tooling ecosystem is adopting Oxc, and the maintainers'
other projects are moving their formatting and linting to it. Staying on
Biome here would keep a separate toolchain, configuration, and editor
setup to maintain.

Replace it with Oxfmt for formatting and Oxlint with type-aware rules
for linting, keep the rules Biome enforced, and adapt the code and tests
to the stricter checks.

repository:
  - Format TypeScript, JSON, Markdown, and YAML with Oxfmt, keeping the
    previous line width and import grouping.
  - Sort the top-level keys of the package manifest with the formatter.
  - Lint with the correctness, suspicious, perf, and pedantic categories
    plus Oxlint equivalents of Biome's recommended rules.
  - Give extension host tests a nested TypeScript project so type-aware
    rules resolve their Mocha types.
  - Run both tools through the existing check, fix, and format scripts.
  - Describe the new tools in the agent guide and the coding style
    skill.
  - Adjust sources to the new rules without changing behavior.
  - Type test mocks with their real contracts and assert the exact
    errors thrown.
  - Read registered callbacks from mocks instead of no-op placeholders.
  - Run the packed CLI's signal check as its own POSIX-only test.

devcontainer:
  - Use the Oxc extension for formatting and fixes on save.

extension:
  - Mark the queue poll interval callback as intentionally unawaited.

release:
  - Validate GitHub response chunks before counting them.
@elierotenberg elierotenberg self-assigned this Oct 25, 2026
@elierotenberg
elierotenberg merged commit 83e385c into main Oct 25, 2026
6 checks passed
@elierotenberg
elierotenberg deleted the chore/replace-biome-with-oxc branch October 25, 2026 17:27
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.

1 participant