Skip to content

chore(KNO-14398): migrate example apps to the oxc toolchain - #1048

Draft
kylemcd wants to merge 2 commits into
kyle-kno-14398-chore-adopt-the-oxc-toolchain-oxlint-oxfmt-and-typescript-7from
kyle-kno-14398-migrate-examples-to-oxc
Draft

chore(KNO-14398): migrate example apps to the oxc toolchain#1048
kylemcd wants to merge 2 commits into
kyle-kno-14398-chore-adopt-the-oxc-toolchain-oxlint-oxfmt-and-typescript-7from
kyle-kno-14398-migrate-examples-to-oxc

Conversation

@kylemcd

@kylemcdkylemcd commented Jul 24, 2026

Copy link
Copy Markdown
Member

Description

Stacked on #1047 — review that first; this PR's diff is only the example-app migration.

Moves the example apps off ESLint/Prettier onto the same oxc toolchain (oxlint + oxfmt) the packages now use, completing the repo-wide migration and orphaning the shared config packages.

What changed

  • oxlint/oxfmt for examples — un-ignored examples/** in .oxlintrc.json; each example's lint / format / format:check now runs oxlint/oxfmt (replacing next lint, eslint, expo lint, and prettier). Deleted the 7 example ESLint configs and the root .eslintrc.js; removed the eslint/prettier/next-lint devDependencies.
  • next build no longer lints — the 5 Next examples set eslint.ignoreDuringBuilds: true, since linting now runs via yarn lint (oxlint), not next build. This keeps the Vercel preview deploys green.
  • Findings fixed — oxlint surfaced unused vars/imports and a missing <html lang> in slack-kit; fixed. react-hooks/exhaustive-deps is turned off for examples/** — it was never enforced as an error before (the two eslint --max-warnings 0 examples were already green with these present), so this is parity, and rewriting demo hook deps risks changing behavior I can't exercise.
  • Config cleanup — removed the now-dead root prettier config key and the @knocklabs/eslint-config / @knocklabs/prettier-config devDependencies.

Follow-up

@knocklabs/eslint-config and @knocklabs/prettier-config now have zero consumers in the repo. They can be deprecated / removed as a final step — left in place here since dropping published packages is a separate decision.

Verification — all green locally on the stacked tree: yarn lint (13/13), yarn format:check (12/12), yarn type:check (6/6), yarn build:packages (5/5), yarn test (1007 tests).

Todos

  • Deprecate/remove @knocklabs/eslint-config and @knocklabs/prettier-config (now unused).

Checklist

  • No new features; example apps have no unit tests. The package suite (1007 tests) still passes.

@linear-code

Copy link
Copy Markdown

KNO-14398

@vercel

vercelBot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

ProjectDeploymentActionsUpdated (UTC)
javascript-ms-teams-connect-exampleReadyReadyPreview, CommentJul 24, 2026 3:46pm
javascript-nextjs-exampleReadyReadyPreview, CommentJul 24, 2026 3:46pm
javascript-slack-connect-exampleReadyReadyPreview, CommentJul 24, 2026 3:46pm
javascript-slack-kit-exampleReadyReadyPreview, CommentJul 24, 2026 3:46pm

Request Review

@changeset-bot

changeset-botBot commented Jul 24, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 648e623

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

Comment threadpackage.json
Move the example apps off ESLint/Prettier onto oxlint/oxfmt, matching the
packages. Completes the toolchain migration and orphans the shared config
packages.
- Un-ignore examples in .oxlintrc.json; disable react-hooks/exhaustive-deps for
examples only (never enforced as an error before — the two `eslint
--max-warnings 0` examples were already green with these present).
- Switch each example's lint/format scripts to oxlint/oxfmt; delete the 7 example
ESLint configs and the root .eslintrc.js; remove eslint/prettier/next lint
devDependencies.
- Set eslint.ignoreDuringBuilds in the 5 Next examples so `next build` (Vercel)
no longer lints — oxlint handles it via `yarn lint`.
- Fix findings oxlint surfaced: unused vars/imports and a missing `<html lang>`.
- Remove the now-dead root prettier config key + @knocklabs/eslint-config /
@knocklabs/prettier-config devDeps. Those two published packages now have zero
consumers and can be deprecated as a follow-up.
@kylemcd
kylemcdforce-pushed the kyle-kno-14398-migrate-examples-to-oxc branch from 39eecee to 8711c4dCompareJuly 24, 2026 15:18
@codecov

codecovBot commented Jul 24, 2026

Copy link
Copy Markdown

Bundle Report

Bundle size has no change ✅

@cursorcursorBot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 8711c4d. Configure here.

Comment threadexamples/guide-example/package.json
Addresses BugBot comment by @cursor: `globals` was only used by the deleted
ESLint flat config (eslint.config.js) and is now an unused leftover.
@codecov

codecovBot commented Jul 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 66.90%. Comparing base (9e5fdd6) to head (648e623).
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@ Coverage Diff @@## kyle-kno-14398-chore-adopt-the-oxc-toolchain-oxlint-oxfmt-and-typescript-7 #1048 +/- ##
===========================================================================================================
Coverage 66.90% 66.90% ===========================================================================================================
Files 213 213 Lines 10489 10489 Branches 1532 1532 ===========================================================================================================
Hits 7018 7018 Misses 3446 3446 Partials 25 25 

Sign up for freeto 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

@kylemcd