Skip to content

feat(oxlint)!: remove oxc_language_server binary#17457

Merged
graphite-app[bot] merged 1 commit intomainfrom
12-29-feat_oxlint_remove_oxc_language_server_binary
Dec 29, 2025
Merged

feat(oxlint)!: remove oxc_language_server binary#17457
graphite-app[bot] merged 1 commit intomainfrom
12-29-feat_oxlint_remove_oxc_language_server_binary

Conversation

@Boshen
Copy link
Member

@Boshen Boshen commented Dec 29, 2025

Given that all IDEs now use --lsp, we can "safely" remove the binary
to reduce the published package size by half.

This is breaking and forces people to upgrade their oxc IDE extensions.

closes #12251
closes #15740

Copilot AI review requested due to automatic review settings December 29, 2025 11:49
Copy link
Member Author

Boshen commented Dec 29, 2025


How to use the Graphite Merge Queue

Add either label to this PR to merge it via the merge queue:

  • 0-merge - adds this PR to the back of the merge queue
  • hotfix - for urgent hot fixes, skip the queue and merge this PR next

You must have a Graphite account in order to use the merge queue. Sign up using this link.

An organization admin has enabled the Graphite Merge Queue in this repository.

Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue.

This stack of pull requests is managed by Graphite. Learn more about stacking.

@Boshen Boshen changed the title feat!(oxlint): remove oxc_language_server binary feat(oxlint)!: remove oxc_language_server binary Dec 29, 2025
@github-actions github-actions bot added the C-enhancement Category - New feature or request label Dec 29, 2025
@Boshen Boshen added the 0-merge Merge with Graphite Merge Queue label Dec 29, 2025
Copy link
Contributor

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 PR removes the oxc_language_server binary from the oxlint npm package to reduce the published package size by approximately half. This is a breaking change that requires users to upgrade their IDE extensions, as all IDEs now use the --lsp flag instead of the separate binary.

  • Removed the oxc_language_server binary and all related build/packaging logic
  • Updated CI/CD workflows to stop building and publishing the language server binary
  • Cleaned up related comments and configuration

Reviewed changes

Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
npm/oxlint/scripts/generate-packages.js Removed constant, binary copying logic, and publishConfig for the language server binary
npm/oxlint/package.json Removed bin entry and file inclusion for oxc_language_server
npm/oxlint/bin/oxc_language_server Deleted the entire language server wrapper script (151 lines)
npm/oxfmt/scripts/generate-packages.js Updated comment to remove outdated reference to oxc_language_server
.github/workflows/release_apps.yml Removed build, archive, and upload steps for the language server binary

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

@graphite-app
Copy link
Contributor

graphite-app bot commented Dec 29, 2025

Merge activity

graphite-app bot pushed a commit that referenced this pull request Dec 29, 2025
Given that all IDEs now use `--lsp`, we can "safely" remove the binary
to reduce the published package size by half.

This is breaking and forces people to upgrade their oxc IDE extensions.

closes #12251
closes #15740
@graphite-app graphite-app bot force-pushed the 12-29-feat_oxlint_remove_oxc_language_server_binary branch from d2a952f to 4327ef3 Compare December 29, 2025 11:56
Given that all IDEs now use `--lsp`, we can "safely" remove the binary
to reduce the published package size by half.

This is breaking and forces people to upgrade their oxc IDE extensions.

closes #12251
closes #15740
@graphite-app graphite-app bot force-pushed the 12-29-feat_oxlint_remove_oxc_language_server_binary branch from 4327ef3 to f7da875 Compare December 29, 2025 11:58
@graphite-app graphite-app bot merged commit f7da875 into main Dec 29, 2025
20 checks passed
@graphite-app graphite-app bot deleted the 12-29-feat_oxlint_remove_oxc_language_server_binary branch December 29, 2025 12:04
@graphite-app graphite-app bot removed the 0-merge Merge with Graphite Merge Queue label Dec 29, 2025
graphite-app bot pushed a commit that referenced this pull request Dec 30, 2025
…ter feature flag (#17462)

> This PR refactors the LSP formatter code by moving it from crates/oxc_language_server to apps/oxfmt, removing the formatter feature flag from the language server crate.

This is now possible, because `oxc_language_server` is not anymore shipped #17457
graphite-app bot pushed a commit that referenced this pull request Dec 30, 2025
…ter feature flag (#17462)

> This PR refactors the LSP formatter code by moving it from crates/oxc_language_server to apps/oxfmt, removing the formatter feature flag from the language server crate.

This is now possible, because `oxc_language_server` is not anymore shipped #17457
graphite-app bot pushed a commit that referenced this pull request Jan 5, 2026
# Oxlint
### 💥 BREAKING CHANGES

- f7da875 oxlint: [**BREAKING**] Remove oxc_language_server binary (#17457) (Boshen)

### 🚀 Features

- 659c23e linter: Init note field boilerplate  (#17589) (Shrey Sudhir)
- 6870b64 parser: Add TS1363 error code (#17609) (Sysix)
- 6154c8c linter/eslint-plugin-vitest: Implemented vitest/warn-todo rule (#17228) (Said Atrahouch)
- 0043cd6 linter/eslint-plugin-vitest: Implement consistent-vitest-vi rule (#17389) (Said Atrahouch)
- a6d773d linter: Add full TS support to eslint/no-useless-constructor (#17592) (camc314)
- f02c0e7 linter/eslint: Implement complexity (#17569) (Nguyen Tran)
- bc7aae7 linter/no-unused-vars: Add fixer to remove unused catch bindings (#17567) (Don Isaac)
- 9e8ec78 linter/only-throw-error rule: Add `allowRethrowing` option for  (#17554) (camc314)
- b67e819 linter: Add fixer for `unicorn/prefer-response-static-json` rule (#17559) (Mikhail Baev)
- 44b0361 linter/vue: Implement no-this-in-before-route-enter (#17525) (yefan)
- ee34716 linter/react: Implement no-will-update-set-state (#17530) (Kenzo Wada)
- 3088e1d linter/react: Implement no-this-in-sfc (#17535) (Kenzo Wada)
- 29a2868 linter/jsx-a11y: Implement no-static-element-interactions (#17538) (Kenzo Wada)
- eadf057 linter: Enable tsconfig auto discovery by default (#17489) (Boshen)
- 12a7d6e website_linter: Add a count of rules with fixes available to rules table. (#17476) (Connor Shea)

### 🐛 Bug Fixes

- a702f13 oxlint/lsp: Correct position for "disable for this file" with shebang (#17613) (Sysix)
- 19fdfb6 linter: Panic in `sort-keys` rule with Unicode numeric characters (#17629) (Adel Rodríguez)
- 2e8f469 vscode: Search for `node_modules/.bin/oxlint.exe` too (bun setup) (#17597) (Sysix)
- be39906 linter/aria-proptypes: Allow template literals with expressions for string-type ARIA props (#17460) (Jökull Sólberg Auðunsson)
- 529901c linter: Include JS plugin rules when calculating total rule count (#17520) (connorshea)
- 96ef2cc linter: Print total rule # when using a single nested config (#17517) (connorshea)
- 9ad0f29 oxlint: Do not enable external plugin store when no external linter is passed (#17498) (Sysix)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)
- ff70fe9 linter/no-standalone-expect: Allows expect in wrapper functions passed to test blocks (#17427) (Copilot)
- dab232f linter/catch-or-return: Handle arrow functions with implicit returns correctly (#17440) (Copilot)
- a38892a linter: Update no-unnecessary-template-expression docs and test case (#17453) (camc314)

### ⚡ Performance

- 605dbf1 vscode: Restrict searching for oxlint/oxfmt binaries only 3 levels deep + 10s timeout (#17345) (Sysix)

### 📚 Documentation

- 884fb63 linter/react: Improve docs for jsx-curly-brace-presence (#17579) (connorshea)
- 1d3ee07 linter: Improve rule explanation for `vue/no-this-in-before-route-enter`. (#17581) (connorshea)
- 5f189f8 linter/arrow-body-style: Correctly document default mode option (#17566) (Rägnar O'ock)
- bb2e8e4 linter: Add a note to the `typescript/no-var-requires` rule about the missing `allow` option (#17551) (connorshea)
- 655afc1 linter: Improve docs for `import/extensions` and add a few more tests (#17539) (connorshea)
- 7e5fc90 linter: Update list of plugins that are reserved. (#17516) (connorshea)
# Oxfmt
### 💥 BREAKING CHANGES

- f7da875 oxlint: [**BREAKING**] Remove oxc_language_server binary (#17457) (Boshen)

### 🚀 Features

- 8fd4ea9 oxfmt: `options.embeddedLanguageFormatting` is now `"auto"` by default (#17649) (leaysgur)

### 🐛 Bug Fixes

- c9b5d7d formatter/sort_imports: Handle alignable_comment correctly (#17646) (leaysgur)
- 453222d formatter: Missing comment handling for end-of-line comments in member chains (#17659) (Dunqing)
- 0805ff2 formatter: Incorrect inline comment placement in try-catch (#17657) (Dunqing)
- 3a0c782 formatter: Don't move comments into optional call parentheses (#17582) (magic-akari)
- 174375d oxfmt,oxlint: Disable mimalloc for 32-bit Arm targets (#17473) (Yaksh Bariya)

### ⚡ Performance

- abb28dc oxfmt: Turn of pretty print from sort-package-json (#17452) (Boshen)
robertkirkman added a commit to robertkirkman/termux-packages that referenced this pull request Jan 5, 2026
- Fixes termux#27918

- `disable-allocator.patch` now upstream in oxc-project/oxc#17473

- `oxc_language_server` executable removed upstream in oxc-project/oxc#17457
robertkirkman added a commit to termux/termux-packages that referenced this pull request Jan 6, 2026
- Fixes #27918

- `disable-allocator.patch` now upstream in oxc-project/oxc#17473

- `oxc_language_server` executable removed upstream in oxc-project/oxc#17457
termux-pacman-bot added a commit to termux-pacman/termux-packages that referenced this pull request Jan 6, 2026
- Fixes termux/termux-packages#27918

- `disable-allocator.patch` now upstream in oxc-project/oxc#17473

- `oxc_language_server` executable removed upstream in oxc-project/oxc#17457
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

C-enhancement Category - New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

oxlint: remove oxc_language_server binary oxlint: Single binary for oxlint and oxc_language_server

2 participants