Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 78 additions & 0 deletions .changeset/strict-sides-hang.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
---
"@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
---

Migrate from ESLint to oxlint
6 changes: 0 additions & 6 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,6 @@
"editor.trimAutoWhitespace": true,
"editor.insertSpaces": true,
"editor.tabSize": 2,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
// Use the OXC formatter as the default formatter which matches what yarn format will do
"editor.defaultFormatter": "oxc.oxc-vscode",

Expand All @@ -16,9 +13,6 @@
"prettier.printWidth": 140,
"prettier.trailingComma": "all",

"eslint.enable": true,
"eslint.workingDirectories": [{ "pattern": "./packages/framework/eslint-config-rules" }], // use the common eslint config file

"explorer.fileNesting.enabled": true,
"explorer.fileNesting.patterns": {
"*.js": "${capture}.js.map, ${capture}.d.ts, ${capture}.d.ts.map",
Expand Down
7 changes: 4 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,9 +56,10 @@ The project uses **Yarn 4** (Berry) in **pnpm mode** with **Lage** as the task r
```bash
yarn build # TypeScript build for all packages (outputs to lib/ and lib-commonjs/)
yarn test # Build, lint, and run tests across all packages
yarn lint # ESLint across all packages
yarn bundle # Bundle all packages
yarn buildci # Full CI pipeline: build + test + lint + bundle + depcheck + check-publishing
yarn lint # Lint across all packages
yarn lage bundle # Bundle all packages
yarn bundle:repo # Convenience wrapper for the repo bundle graph
yarn lage buildci # Configured CI graph alias from lage.config.mjs
yarn clean # Clean build artifacts
```

Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,9 @@ For running tasks the repo has switched to using [Lage](https://github.com/micro

- `yarn build` - does the typescript build for all packages in the repository
- `yarn test` - will build, lint, and run any applicable tests on all packages in the repo
- `yarn bundle` - will bundle all packages in the repo
- `yarn buildci` - will build, lint, run tests, and bundle everything in the repo
- `yarn lage bundle` - will bundle all packages in the repo
- `yarn bundle:repo` - convenience wrapper for `yarn lage bundle`
- `yarn lage buildci` - will build, lint, run tests, and run the configured repo checks

Note that Lage uses caching to avoid redundant steps and has very minimal output. To avoid caching add `--no-cache` as a command line argument. Similarly adding `--verbose` will give more detailed output.

Expand Down
11 changes: 0 additions & 11 deletions apps/E2E/eslint.config.js

This file was deleted.

12 changes: 12 additions & 0 deletions apps/E2E/oxlint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import baseConfig from '@fluentui-react-native/lint-config-rules';
import { defineConfig } from 'oxlint';

export default defineConfig({
extends: [baseConfig],
rules: {
'@rnx-kit/no-export-all': 'off',
'typescript/class-literal-property-style': 'off',
'typescript/no-duplicate-enum-values': 'off',
'typescript/no-invalid-void-type': 'off',
},
});
4 changes: 2 additions & 2 deletions apps/E2E/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
"e2etest:macos": "cross-env APPIUM_HOME=.appium wdio run wdio.conf.macos.js",
"e2etest:win32": "cross-env APPIUM_HOME=.appium wdio run wdio.conf.win32.js",
"e2etest:windows": "rimraf errorShots reports && cross-env APPIUM_HOME=.appium wdio run wdio.conf.windows.js",
"lint": "fluentui-scripts eslint",
"lint": "fluentui-scripts lint",
"lint-package": "fluentui-scripts lint-package"
},
"dependencies": {
Expand All @@ -47,9 +47,9 @@
"devDependencies": {
"@babel/core": "catalog:",
"@babel/runtime": "catalog:",
"@fluentui-react-native/eslint-config-rules": "workspace:*",
"@fluentui-react-native/focus-zone": "workspace:*",
"@fluentui-react-native/kit-config": "workspace:*",
"@fluentui-react-native/lint-config-rules": "workspace:*",
"@fluentui-react-native/scripts": "workspace:*",
"@office-iss/react-native-win32": "^0.81.0",
"@react-native/metro-babel-transformer": "^0.81.0",
Expand Down
3 changes: 1 addition & 2 deletions apps/E2E/wdio.conf.android.js
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ exports.config = {
bail: 1, // If you only want to run your tests until a specific amount of tests have failed use bail (default is 0 - don't bail, run all tests).
waitforTimeout: defaultWaitForTimeout, // Default timeout for all waitForXXX commands.
connectionRetryTimeout: defaultConnectionRetryTimeout, // Timeout for any WebDriver request to a driver or grid.
connectionRetryCount: 2, // Maximum count of request retries to the Selenium server.
specFileRetries: 2, // The number of times to retry the entire spec file when it fails as a whole.

port: 4723, // default appium port
Expand Down Expand Up @@ -141,7 +140,7 @@ exports.config = {
/**
* Function to be executed after a test (in Mocha/Jasmine).
*/
afterTest: (test, context, results) => {
afterTest: (test, _context, results) => {
const resultString = results.passed ? 'Passed' : 'Failed';
console.log('\n Test Case: ' + test.description + '. Result: ' + resultString + '\n');

Expand Down
3 changes: 1 addition & 2 deletions apps/E2E/wdio.conf.ios.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ exports.config = {
bail: 1, // If you only want to run your tests until a specific amount of tests have failed use bail (default is 0 - don't bail, run all tests).
waitforTimeout: defaultWaitForTimeout, // Default timeout for all waitForXXX commands.
connectionRetryTimeout: defaultConnectionRetryTimeout, // Timeout for any WebDriver request to a driver or grid.
connectionRetryCount: 2, // Maximum count of request retries to the Selenium server.
specFileRetries: 2, // The number of times to retry the entire spec file when it fails as a whole.

port: 4723, // default appium port
Expand Down Expand Up @@ -139,7 +138,7 @@ exports.config = {
/**
* Function to be executed after a test (in Mocha/Jasmine).
*/
afterTest: (test, context, results) => {
afterTest: (test, _context, results) => {
const resultString = results.passed ? 'Passed' : 'Failed';
console.log(`\nTest Case: "${test.description}".\nResult: "${resultString}".\nDuration: "${(results.duration / 600).toFixed(2)}s". \n`);

Expand Down
3 changes: 1 addition & 2 deletions apps/E2E/wdio.conf.macos.js
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ exports.config = {
bail: 1, // If you only want to run your tests until a specific amount of tests have failed use bail (default is 0 - don't bail, run all tests).
waitforTimeout: defaultWaitForTimeout, // Default timeout for all waitForXXX commands.
connectionRetryTimeout: defaultConnectionRetryTimeout, // Timeout for any WebDriver request to a driver or grid.
connectionRetryCount: 2, // Maximum count of request retries to the Selenium server.
specFileRetries: 1, // The number of times to retry the entire spec file when it fails as a whole.

port: 4723, // default appium port
Expand Down Expand Up @@ -154,7 +153,7 @@ exports.config = {
/**
* Function to be executed after a test (in Mocha/Jasmine).
*/
afterTest: (test, context, results) => {
afterTest: (test, _context, results) => {
const resultString = results.passed ? 'Passed' : 'Failed';
console.log(`\nTest Case: "${test.description}".\nResult: "${resultString}".\nDuration: "${(results.duration / 600).toFixed(2)}s". \n`);

Expand Down
3 changes: 1 addition & 2 deletions apps/E2E/wdio.conf.win32.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ exports.config = {
bail: 1, // If you only want to run your tests until a specific amount of tests have failed use bail (default is 0 - don't bail, run all tests).
waitforTimeout: defaultWaitForTimeout, // Default timeout for all waitForXXX commands.
connectionRetryTimeout: defaultConnectionRetryTimeout, // Timeout for any WebDriver request to a driver or grid.
connectionRetryCount: 2, // Maximum count of request retries to the Selenium server.
specFileRetries: 1, // The number of times to retry the entire spec file when it fails as a whole.

port: 4723, // default appium port
Expand Down Expand Up @@ -147,7 +146,7 @@ exports.config = {
/**
* Function to be executed after a test (in Mocha/Jasmine).
*/
afterTest: async (test, context, results) => {
afterTest: async (test, _context, results) => {
const resultString = results.passed ? 'Passed' : 'Failed';
console.log(`\nTest Case: "${test.description}".\nResult: "${resultString}".\nDuration: "${(results.duration / 600).toFixed(2)}s". \n`);

Expand Down
3 changes: 1 addition & 2 deletions apps/E2E/wdio.conf.windows.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ exports.config = {
bail: 1, // If you only want to run your tests until a specific amount of tests have failed use bail (default is 0 - don't bail, run all tests).
waitforTimeout: defaultWaitForTimeout, // Default timeout for all waitForXXX commands.
connectionRetryTimeout: defaultConnectionRetryTimeout, // Timeout for any WebDriver request to a driver or grid.
connectionRetryCount: 2, // Maximum count of request retries to the Selenium server.
specFileRetries: 1, // The number of times to retry the entire spec file when it fails as a whole.

port: 4723, // default appium port
Expand Down Expand Up @@ -161,7 +160,7 @@ exports.config = {
/**
* Function to be executed after a test (in Mocha/Jasmine).
*/
afterTest: (test, context, results) => {
afterTest: (test, _context, results) => {
const resultString = results.passed ? 'Passed' : 'Failed';
console.log(`\nTest Case: "${test.description}".\nResult: "${resultString}".\nDuration: "${(results.duration / 600).toFixed(2)}s". \n`);

Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"clean": "fluentui-scripts clean",
"depcheck": "fluentui-scripts depcheck",
"just": "fluentui-scripts",
"lint": "fluentui-scripts eslint",
"lint": "fluentui-scripts lint",
"lint-package": "fluentui-scripts lint-package",
"test": "fluentui-scripts jest",
"update-snapshots": "fluentui-scripts jest -u",
Expand All @@ -28,7 +28,7 @@
"dependencies": {},
"devDependencies": {
"@fluentui-react-native/babel-config": "workspace:*",
"@fluentui-react-native/eslint-config-rules": "workspace:*",
"@fluentui-react-native/lint-config-rules": "workspace:*",
"@fluentui-react-native/jest-config": "workspace:*",
"@fluentui-react-native/kit-config": "workspace:*",
"@fluentui-react-native/scripts": "workspace:*",
Expand Down
3 changes: 0 additions & 3 deletions apps/fluent-tester/eslint.config.js

This file was deleted.

6 changes: 3 additions & 3 deletions apps/fluent-tester/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@
"build": "fluentui-scripts build",
"build-cjs": "tsgo --outDir lib-commonjs",
"build-core": "tsgo --outDir lib --module esnext --moduleResolution bundler",
"bundle": "rnx-cli bundle --dev false",
"bundle": "yarn bundle:android && yarn bundle:ios && yarn bundle:macos",
"bundle:android": "rnx-cli bundle --dev false --platform android",
"bundle:ios": "rnx-cli bundle --dev false --platform ios",
"bundle:macos": "rnx-cli bundle --dev false --platform macos",
"bundle:windows": "rnx-cli bundle --dev false --platform windows",
"clean": "fluentui-scripts clean",
"depcheck": "fluentui-scripts depcheck",
"ios": "rnx-cli run --platform ios",
"lint": "fluentui-scripts eslint",
"lint": "fluentui-scripts lint",
"lint-package": "fluentui-scripts lint-package",
"macos": "rnx-cli run --platform macos",
"format": "fluentui-scripts format",
Expand All @@ -55,7 +55,6 @@
"@babel/runtime": "catalog:",
"@fluentui-react-native/babel-config": "workspace:*",
"@fluentui-react-native/callout": "workspace:*",
"@fluentui-react-native/eslint-config-rules": "workspace:*",
"@fluentui-react-native/experimental-appearance-additions": "workspace:*",
"@fluentui-react-native/experimental-avatar": "workspace:*",
"@fluentui-react-native/experimental-checkbox": "workspace:*",
Expand All @@ -65,6 +64,7 @@
"@fluentui-react-native/experimental-shimmer": "workspace:*",
"@fluentui-react-native/focus-zone": "workspace:*",
"@fluentui-react-native/kit-config": "workspace:*",
"@fluentui-react-native/lint-config-rules": "workspace:*",
"@fluentui-react-native/menu-button": "workspace:*",
"@fluentui-react-native/radio-group": "workspace:*",
"@fluentui-react-native/scripts": "workspace:*",
Expand Down
3 changes: 0 additions & 3 deletions apps/tester-core/eslint.config.js

This file was deleted.

12 changes: 12 additions & 0 deletions apps/tester-core/oxlint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import baseConfig from '@fluentui-react-native/lint-config-rules';
import { defineConfig } from 'oxlint';

export default defineConfig({
extends: [baseConfig],
rules: {
'@rnx-kit/no-export-all': 'off',
'@rnx-kit/no-foreach-with-captured-variables': 'off',
'react-hooks/exhaustive-deps': 'off',
'typescript/array-type': 'off',
},
});
4 changes: 2 additions & 2 deletions apps/tester-core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"clean": "fluentui-scripts clean",
"depcheck": "fluentui-scripts depcheck",
"format": "fluentui-scripts format",
"lint": "fluentui-scripts eslint",
"lint": "fluentui-scripts lint",
"lint-package": "fluentui-scripts lint-package"
},
"dependencies": {
Expand Down Expand Up @@ -95,8 +95,8 @@
"@babel/core": "catalog:",
"@babel/runtime": "catalog:",
"@fluentui-react-native/babel-config": "workspace:*",
"@fluentui-react-native/eslint-config-rules": "workspace:*",
"@fluentui-react-native/kit-config": "workspace:*",
"@fluentui-react-native/lint-config-rules": "workspace:*",
"@fluentui-react-native/scripts": "workspace:*",
"@office-iss/react-native-win32": "^0.81.0",
"@react-native-community/cli": "^20.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ const CustomText = Text.customize({ fontSize: 'header', color: '#ad0258' });
const CustomButton = Button.customize({ backgroundColor: 'pink' });
const CustomIconButton = Button.customize({ iconColor: 'yellow' });
const ComposedButton = Button.compose({
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore Not all slots have to be overridden for compose to work
slots: {
content: CustomText,
},
Expand Down
3 changes: 0 additions & 3 deletions apps/win32-81/eslint.config.js

This file was deleted.

4 changes: 2 additions & 2 deletions apps/win32-81/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
"clean": "fluentui-scripts clean",
"depcheck": "fluentui-scripts depcheck",
"format": "fluentui-scripts format",
"lint": "fluentui-scripts eslint",
"lint": "fluentui-scripts lint",
"lint-package": "fluentui-scripts lint-package",
"run-win32": "rex-win32 --bundle index.win32 --component FluentTester --basePath ./dist --useDirectDebugger --windowTitle \"FluentUI Tester\" --pluginProps --debugBundlePath index --jsEngine v8",
"run-win32-dev": "rex-win32 --bundle index --component FluentTester --basePath ./dist --useDirectDebugger --windowTitle \"FluentUI Tester\" --pluginProps --debugBundlePath index --jsEngine v8 --useFastRefresh",
Expand All @@ -48,8 +48,8 @@
"@babel/core": "catalog:",
"@babel/runtime": "catalog:",
"@fluentui-react-native/babel-config": "workspace:*",
"@fluentui-react-native/eslint-config-rules": "workspace:*",
"@fluentui-react-native/kit-config": "workspace:*",
"@fluentui-react-native/lint-config-rules": "workspace:*",
"@fluentui-react-native/scripts": "workspace:*",
"@office-iss/rex-win32": "0.81.0-preview.0",
"@react-native-community/cli": "^20.0.0",
Expand Down
3 changes: 0 additions & 3 deletions apps/win32/eslint.config.js

This file was deleted.

Loading
Loading