Skip to content

Conversation

@tylerbutler
Copy link
Member

@tylerbutler tylerbutler commented Nov 18, 2025

Summary

This PR upgrades the ESLint configuration across all server/routerlicious packages and implements workarounds for compatibility issues.

ESLint Configuration Upgrade

  • Upgraded @fluidframework/eslint-config-fluid from ^6.1.0 to ^8.1.0 across all packages
  • Updated ESLint rule names to use import-x prefix (e.g., import/no-nodejs-modulesimport-x/no-nodejs-modules)
  • Updated import/namespace to import-x/namespace in inline eslint-disable comments
  • Fixed deprecated API warnings and other ESLint violations

Build Configuration Workarounds

  • Added exclusion pattern ^server/routerlicious/packages/.*/package.json to fluid-build for both tsc-multi and fluid-build-tasks-tsc tasks
  • Addresses compatibility issues between updated ESLint config and server package structure

Type Compatibility

  • Added @types/node@>=22 override to force Node.js v20 types, working around incompatibilities with packages using different type versions
  • Updated pnpm overrides documentation to reflect the type version constraints

Code Quality Improvements

  • Fixed JSDoc links to use proper markdown link format in nexus/index.ts
  • Added missing @typescript-eslint/return-await suppression for false positive in localOrdererSetup.ts
  • Maintained existing rule overrides for areas requiring further cleanup (strict null checks, deprecated API usage)

All changes maintain backward compatibility while modernizing the linting infrastructure.

@github-actions github-actions bot added the base: main PRs targeted against main branch label Nov 18, 2025
@github-actions github-actions bot added the area: server Server related issues (routerlicious) label Nov 18, 2025
@tylerbutler tylerbutler changed the title build(server): disable script-related policies build(server): upgrade eslint config and add compatibility workarounds Nov 18, 2025
@tylerbutler tylerbutler marked this pull request as ready for review November 18, 2025 18:11
Copy link
Contributor

@znewton znewton left a comment

Choose a reason for hiding this comment

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

Thank you!

'@fluid-tools/build-cli':
specifier: ^0.60.0
version: 0.60.0(@types/node@22.10.7)([email protected])([email protected])
version: 0.60.0(@types/node@18.19.39)([email protected])([email protected])
Copy link
Contributor

Choose a reason for hiding this comment

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

I'm a bit unsure the pnpm override actually had an effect here. I suspect something like what we've seen happen with Typescript 5.4.5 and 5.9.2; in this case it feels like the expected resolution would be v18 and some previous lockfile update incorrectly pushed it to 22, and this PR managed to correct that (which it probably would have done even without the override?).

It does make me wonder if the override should also clamp >22 to 18 instead of 20.

Copy link
Member Author

Choose a reason for hiding this comment

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

It definitely did not work without the override.

@tylerbutler tylerbutler merged commit fa022b2 into microsoft:main Nov 18, 2025
52 checks passed
@tylerbutler tylerbutler deleted the server-workaround branch November 18, 2025 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: server Server related issues (routerlicious) base: main PRs targeted against main branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants