Skip to content

Upgrade xo/xo 0.60.0 -> 4.0.0#372

Open
github-actions[bot] wants to merge 1 commit into
masterfrom
renovate/xo-4.x
Open

Upgrade xo/xo 0.60.0 -> 4.0.0#372
github-actions[bot] wants to merge 1 commit into
masterfrom
renovate/xo-4.x

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change
xo devDependencies major 0.60.0 -> 4.0.0

Release Notes

xojs/xo (xo)

v4.0.0

Compare Source

Improvements
  • Lint node:test files with the new eslint-node-test plugin
  • Recognize any tool's *-ignore/*:ignore comment (like svelte-ignore), not just a hardcoded list, for capitalized-comments
New rules

v3.0.2

Compare Source

  • Fix --fix corrupting TypeScript files outside the tsconfig 7baa7f2

v3.0.1

Compare Source

  • Fix type resolution for TypeScript files outside the tsconfig 91d3e6d

v3.0.0

Compare Source

Breaking
  • Requires Node.js 22
  • Removed built-in React support.
    • Add eslint-config-xo-react to your config instead. Learn more
    • It was removed to keep XO's core lean and framework-agnostic. Bundling eslint-plugin-react for everyone held XO back by its slow ESLint-major support, and there's now a competing plugin, @eslint-react, so picking one for all users no longer makes sense.
  • The bundled rules now live in a single eslint-config-xo package. The separate eslint-config-xo-typescript package is merged into it.
    • If you prefer using ESLint directly, you can get all the rules there now.
  • Replaced the xoToEslintConfig export with the xo/eslint-adapter import for editor/ESLint integration. For example, xoToEslintConfig([{space: true, prettier: true}]) becomes eslintConfigXo({space: true, prettier: true}) from eslint-config-xo, or simply export {default} from 'xo/eslint-adapter';.
Improvements
  • Lint CSS, Markdown, HTML, JSDoc comments, and regular expressions out of the box
  • Add --max-warnings flag to treat warnings as errors (#​724)
  • Add ESLint bulk suppression support (#​826)
  • Hide warnings when there are errors, so you can focus on what matters (#​507)
  • Respect the global gitignore (#​803)
  • Allow overriding default ignores with negation patterns (#​65)
  • Throw when no files match explicitly provided patterns
New rules

v2.0.2

Compare Source

  • Fix react and prettier: 'compat' configs failing when files is not specified bde9854

v2.0.1

Compare Source


v2.0.0

Compare Source

Breaking
  • Requires Node.js 20.19
  • Requires ESLint 10
  • Removed CommonJS config file support (use .js/.mjs/.ts/.mts instead)
  • Temporarily removed eslint-plugin-promise rules (pending ESLint 10 compatibility)
Improvements
  • Default to content-based cache strategy for faster re-linting
  • Show warning when explicitly specified files are ignored
  • Accept ESLint-native files format in config
  • Simplified TypeScript handling by using in-memory programs
  • Fix linting of files starting with a dot
  • Fix cwd for case-sensitive filesystems
New rules

v1.2.3

Compare Source

  • Add support for Vue, Svelte, and Astro file extensions (#​845) d1aea04
  • Fix prettier integration being broken due to nullish coalescing misuse (#​836) b41471f

v1.2.2

Compare Source


v1.2.1

Compare Source


v1.2.0

Compare Source


v1.1.1

Compare Source

  • Fix: Behaviour of print-config option with relative file path (#​816) b538cf7

v1.1.0

Compare Source


v1.0.5

Compare Source


v1.0.4

Compare Source

  • Fix: Error while loading configs with custom plugins (#​805) 32960d3

v1.0.3

Compare Source


v1.0.2

Compare Source

v1.0.1

Compare Source

  • Fix: Ensure lint text does not strip rules between runs (#​802) e63d7a5

v1.0.0

Compare Source

Breaking
  • Requires ESLint flat config
  • Requires Node.js 20.17
  • Configuration now only through package.json and xo.config.{js,cjs,mjs,ts,cts,mts} files
  • Switched from eslint-plugin-import to eslint-plugin-import-x (since it's better maintained)
    • You will have to update ignore comments and config from import to import-x
  • CLI flags removed:
    • --plugin: Configurable via config file
    • --extend: Configurable via config file
    • --global: Configurable via config file
    • --extension: Configurable via config file
    • --env: No longer relevant with new config system
    • --node-version: Removed as it only affected unsupported Node.js versions
    • --reporter: Removed due to potential lookup reliability issues
  • Node.js engines check removed
    • Was only active in unsupported Node.js versions
  • Webpack lookup and import resolution removed
    • Considered too niche for core functionality
Improvements
  • React support
  • Prettier compatibility mode with {prettier: 'compat'} option
    • Disables all Prettier-affected stylistic rules, and maintains existing Prettier functionality otherwise
  • Enhanced stdin handling:
    • --stdin-filename now optional
    • Supports TypeScript files via stdin
New rules
Thanks

Huge thanks to @​spence-s for doing most of the work for this 🎉


v0.61.1

Compare Source

v0.61.0

Compare Source


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@github-actions github-actions Bot added the dependencies Pull requests that update a dependency file label Jul 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants