Skip to content

Make Oxlint the primary linter - #8208

Open
gonzaloriestra wants to merge 3 commits into
gonzalo/oxlint-02-nativefrom
gonzalo/oxlint-03-primary
Open

gonzaloriestra wants to merge 3 commits into
gonzalo/oxlint-02-nativefrom
gonzalo/oxlint-03-primary

Conversation

@gonzaloriestra

@gonzaloriestra gonzaloriestra commented Jul 30, 2026 •

Copy link
Copy Markdown
Contributor

WHY are these changes introduced?

This is the third step of the ESLint-to-Oxlint migration. After establishing native Oxlint parity in CI, this layer makes Oxlint authoritative for migrated rules and leaves ESLint responsible only for compatibility gaps.

WHAT is this pull request doing?

  • derive an ESLint disable layer from enabled rules in oxlint.json, avoiding duplicated checks and rule drift
  • map Oxlint TypeScript, import, and Node plugin names back to their ESLint equivalents
  • retain ESLint checks that Oxlint cannot yet replace, including Nx boundaries, local CLI rules, import ordering, naming conventions, and unsupported JSDoc/TSDoc rules
  • label ESLint explicitly as a compatibility check in scripts, CI, and contributor documentation
  • run Oxlint fixes before ESLint compatibility fixes
  • preserve the full ESLint autofix configuration used to make generated GraphQL output deterministic
  • suppress ESLint unused-disable reporting because directives can now target rules owned by Oxlint

How to test your changes?

  • pnpm lint:eslint --output-style=static
  • pnpm lint
  • pnpm graphql-codegen with no generated-file changes
  • verified representative ESLint effective config disables Oxlint-owned rules while retaining compatibility rules
  • git diff --check

The compatibility-only ESLint pass decreased locally from approximately 19.8 seconds to 16.2 seconds; plugin and parser startup now dominate its remaining runtime.

@github-actions github-actions Bot added the no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. label Jul 30, 2026

gonzaloriestra commented Jul 30, 2026 •

Copy link
Copy Markdown
Contributor Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

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

@github-actions

Copy link
Copy Markdown
Contributor

This PR seems inactive. If it's still relevant, please add a comment saying so. Otherwise, take no action.
→ If there's no activity within a week, then a bot will automatically close this.
Thanks for helping to improve Shopify's dev tooling and experience.

@github-actions github-actions Bot closed this Sep 6, 2026
@gonzaloriestra gonzaloriestra reopened this Sep 9, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from 4fc3b01 to b6d506b Compare September 9, 2026 11:05
@gonzaloriestra
gonzaloriestra added this pull request to stack #8508 September 9, 2026 11:05
@github-actions github-actions Bot closed this Sep 17, 2026
@gonzaloriestra gonzaloriestra added stale-exempt If added, the PR/issue won't be closed by stale-bot and removed no-pr-activity labels Sep 22, 2026
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from b6d506b to 256a658 Compare September 22, 2026 09:04
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from 256a658 to ef0dd63 Compare October 1, 2026 12:22
@gonzaloriestra
gonzaloriestra removed this pull request from stack #8508 October 1, 2026 12:23
@gonzaloriestra
gonzaloriestra added this pull request to stack #8726 October 1, 2026 12:23
@gonzaloriestra
gonzaloriestra marked this pull request as ready for review October 2, 2026 08:03
@gonzaloriestra
gonzaloriestra requested a review from a team as a code owner October 2, 2026 08:03
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from ef0dd63 to 59717ce Compare October 2, 2026 08:07
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from 59717ce to eaffd3c Compare October 6, 2026 08:05
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from 541d8a6 to 5580a00 Compare October 9, 2026 11:00
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch 3 times, most recently from 1863fb1 to eb5a8ae Compare October 15, 2026 14:50
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from eb5a8ae to db9dac6 Compare October 15, 2026 14:51
@gonzaloriestra
gonzaloriestra force-pushed the gonzalo/oxlint-03-primary branch from db9dac6 to afc2961 Compare October 15, 2026 16:01
@github-actions

Copy link
Copy Markdown
Contributor

Differences in type declarations

We detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:

  • Some seemingly private modules might be re-exported through public modules.
  • If the branch is behind main you might see odd diffs, rebase main into this branch.

New type declarations

We found no new type declarations in this PR

Existing type declarations

packages/cli-kit/dist/public/node/session.d.ts
@@ -151,15 +151,6 @@ export interface EnsureAuthenticatedBusinessPlatformOptions extends EnsureAuthen
  * @returns The access token for the Business Platform API.
  */
 export declare function ensureAuthenticatedBusinessPlatform(scopes?: BusinessPlatformScope[], options?: EnsureAuthenticatedBusinessPlatformOptions): Promise<string>;
-/**
- * Whether SHOPIFY_SERVICE_ACCOUNT_TOKEN is set, which makes it the automation token the CLI authenticates with.
- *
- * True even when it's empty or set together with another automation token variable. Commands use this to skip logins
- * saved on this machine, and authentication then reports any problem with the variables.
- *
- * @returns True when SHOPIFY_SERVICE_ACCOUNT_TOKEN is set.
- */
-export declare function isServiceAccountTokenSet(): boolean;
 /**
  * Fails when SHOPIFY_SERVICE_ACCOUNT_TOKEN is set, for commands that can't run with that token.
  *

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

no-changelog This PR doesn't include a changeset entry. Is an internal only change not relevant to end users. stale-exempt If added, the PR/issue won't be closed by stale-bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant