Skip to content

build(eslint-config-fluid): remove ESLint 8/9 compatibility layer#26272

Merged
tylerbutler merged 3 commits intomicrosoft:mainfrom
tylerbutler:eslint-config-remove-compat
Jan 26, 2026
Merged

build(eslint-config-fluid): remove ESLint 8/9 compatibility layer#26272
tylerbutler merged 3 commits intomicrosoft:mainfrom
tylerbutler:eslint-config-remove-compat

Conversation

@tylerbutler
Copy link
Copy Markdown
Member

Summary

Removes the ESLint 8/9 hybrid compatibility layer from eslint-config-fluid's print-configs script now that the migration to ESLint 9 flat config is complete.

  • Delete .eslint-print-configs/ directory containing wrapper config files that were needed to bridge multi-export flat configs with ESLint's single-config-per-file requirement
  • Remove cross-env dependency (no longer needed for ESLINT_USE_FLAT_CONFIG environment variable)
  • Simplify print-configs.ts to import flat configs directly from flat.mjs and pass them via overrideConfig instead of using file paths
  • Remove all conditional logic for legacy vs flat config formats

Simplify print-configs.ts by removing the hybrid ESLint 8/9 migration
code. The script now imports flat configs directly and passes them via
overrideConfig instead of using separate wrapper config files.

- Remove .eslint-print-configs/ directory with wrapper config files
- Remove cross-env dependency (no longer needed for ESLINT_USE_FLAT_CONFIG)
- Import configs directly from flat.mjs instead of via config file paths
Copilot AI review requested due to automatic review settings January 23, 2026 23:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This pull request successfully removes the ESLint 8/9 hybrid compatibility layer from eslint-config-fluid, completing the migration to ESLint 9's flat config format. The changes eliminate temporary bridging infrastructure that was needed during the transition period.

Changes:

  • Simplified print-configs.ts to import flat configs directly from flat.mjs and pass them via overrideConfig instead of using wrapper config files
  • Removed cross-env dependency and ESLINT_USE_FLAT_CONFIG environment variable that were needed for dual ESLint 8/9 support
  • Deleted .eslint-print-configs/ directory containing wrapper config files that bridged multi-export flat configs with ESLint's single-config-per-file requirement

Reviewed changes

Copilot reviewed 6 out of 7 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
common/build/eslint-config-fluid/scripts/print-configs.ts Refactored to directly import and use flat config arrays instead of loading config files via paths; removed all conditional ESLint 8/9 compatibility logic
common/build/eslint-config-fluid/package.json Removed cross-env dependency and simplified print-configs script to remove ESLINT_USE_FLAT_CONFIG environment variable
common/build/eslint-config-fluid/pnpm-lock.yaml Removed cross-env and its dependency @epic-web/invariant from lock file; added libc annotations to resolver bindings (unrelated maintenance)
common/build/eslint-config-fluid/.eslint-print-configs/strict.mjs Deleted wrapper config file (no longer needed with direct imports)
common/build/eslint-config-fluid/.eslint-print-configs/recommended.mjs Deleted wrapper config file (no longer needed with direct imports)
common/build/eslint-config-fluid/.eslint-print-configs/minimal.mjs Deleted wrapper config file (no longer needed with direct imports)
common/build/eslint-config-fluid/.eslint-print-configs/README.md Deleted documentation for wrapper configs (no longer applicable)
Files not reviewed (1)
  • common/build/eslint-config-fluid/pnpm-lock.yaml: Language not supported

Copy link
Copy Markdown
Contributor

@jason-ha jason-ha left a comment

Choose a reason for hiding this comment

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

No root pnpm-lock.yaml update? (I thought we had a temp funky config where root was also impacted by changes here.)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I expected the removal to just show removals.
What are the libc additions?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I don't know - maybe because I ran install on macOS? Regardless, I manually cleaned up the lockfile changes to remove other unrelated changes and they're still considered up-to-date now so further evidence those other changes were unnecessary. But a fresh re-resolve still brings them back. 😕

tylerbutler and others added 2 commits January 23, 2026 16:11
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  252163 links
    1804 destination URLs
    2045 URLs ignored
       0 warnings
       0 errors


@tylerbutler tylerbutler requested review from a team and jason-ha January 24, 2026 00:56
@tylerbutler tylerbutler merged commit 8c1cba1 into microsoft:main Jan 26, 2026
40 checks passed
@tylerbutler tylerbutler deleted the eslint-config-remove-compat branch January 26, 2026 17:21
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.

3 participants