Skip to content

chore(lint): migrate repo to oxlint and stabilize validation#4075

Open
Saadnajmi wants to merge 5 commits intomicrosoft:mainfrom
Saadnajmi:chore/oxlint-migration-review
Open

chore(lint): migrate repo to oxlint and stabilize validation#4075
Saadnajmi wants to merge 5 commits intomicrosoft:mainfrom
Saadnajmi:chore/oxlint-migration-review

Conversation

@Saadnajmi
Copy link
Copy Markdown
Collaborator

@Saadnajmi Saadnajmi commented Mar 26, 2026

Summary

This PR replaces the repo ESLint-based lint workflow with oxlint, fixes the violations surfaced by that migration, and closes the validation issue that was still breaking the full Lage run.

What changed

1. Migrate the repo from ESLint to oxlint

  • replace package-level eslint.config.js usage with oxlint config entrypoints
  • rename the shared config package to @fluentui-react-native/lint-config-rules
  • update workspace package manifests to use fluentui-scripts lint
  • switch the shared scripts task from eslint to lint
  • add targeted local oxlint overrides where packages need exceptions

2. Fix oxlint violations across the repo

  • replace broad export-all re-exports with explicit exports where required
  • tighten hook dependency lists and callback captures
  • replace ts-ignore with ts-expect-error where the suppression is intentional
  • remove forEach patterns that capture mutable variables
  • fix smaller rule violations across components, deprecated packages, theming, framework, and experimental packages

3. Stabilize full repo validation

  • update Fluent Tester bundling to run platform bundles sequentially
  • rename the root bundle convenience script to bundle:repo
  • avoid the recursive root bundle task that caused the full Lage validation run to exhaust heap
  • align repo docs with the actual supported root commands

Why this is split this way

The commit history is organized to make review easier:

  • chore(lint): migrate repo from eslint to oxlint
  • fix(lint): resolve oxlint violations across packages
  • fix(build): stabilize repo bundle validation

This lets the tooling migration, rule-compliance changes, and validation fix be reviewed independently.

Validation

  • yarn lage build ci-test lint bundle depcheck check-publishing

@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Mar 26, 2026

🦋 Changeset detected

Latest commit: 9fad281

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 74 packages
Name Type
@uifabricshared/foundation-composable Patch
@fluentui-react-native/experimental-appearance-additions Patch
@uifabricshared/theming-react-native Patch
@uifabricshared/foundation-settings Patch
@fluentui-react-native/experimental-activity-indicator Patch
@fluentui-react-native/experimental-native-font-metrics Patch
@uifabricshared/foundation-compose Patch
@fluentui-react-native/experimental-native-date-picker Patch
@uifabricshared/foundation-tokens Patch
@fluentui-react-native/themed-stylesheet Patch
@uifabricshared/themed-settings Patch
@fluentui-react-native/contextual-menu Patch
@fluentui-react-native/lint-config-rules Patch
@uifabricshared/theme-registry Patch
@fluentui-react-native/vibrancy-view Patch
@fluentui-react-native/focus-trap-zone Patch
@fluentui-react-native/notification Patch
@uifabricshared/theming-ramp Patch
@fluentui-react-native/experimental-menu-button Patch
@fluentui-react-native/interactive-hooks Patch
@fluentui-react-native/persona-coin Patch
@fluentui-react-native/menu-button Patch
@fluentui-react-native/radio-group Patch
@fluentui-react-native/experimental-checkbox Patch
@fluentui-react-native/dropdown Patch
@fluentui-react-native/experimental-expander Patch
@fluentui-react-native/overflow Patch
@fluentui-react-native/composition Patch
@fluentui-react-native/use-styling Patch
@fluentui-react-native/android-theme Patch
@fluentui-react-native/default-theme Patch
@fluentui-react-native/theming-utils Patch
@fluentui-react-native/focus-zone Patch
@fluentui-react-native/pressable Patch
@fluentui-react-native/separator Patch
@fluentui-react-native/popover Patch
@fluentui-react-native/experimental-shimmer Patch
@fluentui-react-native/spinner Patch
@fluentui-react-native/tooltip Patch
@fluentui-react-native/use-tokens Patch
@fluentui-react-native/theme-tokens Patch
@fluentui-react-native/checkbox Patch
@fluentui-react-native/experimental-avatar Patch
@fluentui-react-native/drawer Patch
@fluentui-react-native/experimental-shadow Patch
@fluentui-react-native/framework Patch
@fluentui-react-native/use-slots Patch
@fluentui-react-native/apple-theme Patch
@fluentui-react-native/theme-types Patch
@fluentui-react-native/win32-theme Patch
@fluentui-react-native/callout Patch
@fluentui-react-native/divider Patch
@fluentui-react-native/persona Patch
@fluentui-react-native/tablist Patch
@fluentui-react-native/use-slot Patch
@fluentui-react-native/avatar Patch
@fluentui-react-native/button Patch
@fluentui-react-native/switch Patch
@fluentui-react-native/badge Patch
@fluentui-react-native/input Patch
@fluentui-react-native/stack Patch
@fluentui-react-native/chip Patch
@fluentui-react-native/icon Patch
@fluentui-react-native/link Patch
@fluentui-react-native/menu Patch
@fluentui-react-native/text Patch
@fluentui-react-native/theme Patch
@fluentui-react-native/framework-base Patch
@fluentui/react-native Patch
@fluentui-react-native/adapters Patch
@fluentui-react-native/styling-utils Patch
@fluentui-react-native/tokens Patch
@fluentui-react-native/tester Patch
@fluentui-react-native/codemods Patch

Not sure what this means? Click here to learn what changesets are.

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

@Saadnajmi Saadnajmi force-pushed the chore/oxlint-migration-review branch from ba05514 to 7ce82c8 Compare March 26, 2026 00:24
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