Skip to content

chore(lint): collapse minimalDeprecated config into base#26801

Open
ChumpChief-bot wants to merge 8 commits intomicrosoft:mainfrom
ChumpChief-bot:lint/remove-minimal-deprecated
Open

chore(lint): collapse minimalDeprecated config into base#26801
ChumpChief-bot wants to merge 8 commits intomicrosoft:mainfrom
ChumpChief-bot:lint/remove-minimal-deprecated

Conversation

@ChumpChief-bot
Copy link
Contributor

@ChumpChief-bot ChumpChief-bot commented Mar 20, 2026

Summary

Merges the minimalDeprecated ESLint configuration into the base config, eliminating the minimalDeprecated layer from the config hierarchy. No consumers reference minimalDeprecated directly anymore (all were upgraded to recommended in #26772).

The config hierarchy is now: base → recommended → strict → strictBiome

Changes

  • Merged all minimalDeprecated rules into base rules
  • Removed minimalDeprecated config, export, and rules file
  • Added new base export from eslint-config-fluid (baseConfig + sharedConfigs) as a safe replacement
  • Updated server config to use base directly
  • Updated build-tools to use base instead of minimalDeprecated (AB#58054 remains open for upgrading to recommended)
  • Removed minimal.json printed config

Rule migration details

12 rules from minimalDeprecated were not explicitly added to the base rules file because they are already covered by other mechanisms:

  • 8 deprecated formatting rules (array-bracket-spacing, arrow-spacing, block-spacing, dot-location, jsx-quotes, key-spacing, space-unary-ops, switch-colon-spacing): all set to "off" in minimalDeprecated, and eslint-config-prettier (included in base) also sets them to "off"
  • no-multi-spaces: re-enabled in a separate config block after prettierConfig to preserve the override ordering
  • 3 TypeScript rules (@typescript-eslint/prefer-includes, @typescript-eslint/prefer-nullish-coalescing, @typescript-eslint/prefer-optional-chain): already enabled at "error" by the typescript-eslint/stylistic-type-checked preset included in base

All printed configs are verified identical before and after the change (excluding the removed minimal.json).

Test plan

  • Verify pnpm build passes in common/build/eslint-config-fluid
  • Verify printed configs are unchanged
  • Spot-check lint on downstream packages

🤖 Generated with Claude Code

ChumpChief-bot and others added 5 commits March 20, 2026 21:02
Merges the minimalDeprecated ESLint configuration into the base config,
eliminating the minimalDeprecated layer from the config hierarchy.
No consumers reference minimalDeprecated directly anymore (all were
upgraded to recommended in microsoft#26772).

The config hierarchy is now: base → recommended → strict → strictBiome

Changes:
- Merged all minimalDeprecated rules into base rules
- Removed minimalDeprecated config, export, and rules file
- Updated server config to use base directly
- Updated build-tools to use recommended instead of minimalDeprecated
- Removed minimal.json printed config

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove duplicate unified-signatures rule (was set to both error and off)
- Add missing no-member-release-tags and no-unchecked-record-access rules
- Remove empty region block
- Update doc comments to remove minimalDeprecated references

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Move no-multi-spaces after prettierConfig so it isn't overridden
- Keep max-len config object to avoid unnecessary printed config churn

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Build-tools now uses recommended, so the TODO is resolved.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@ChumpChief ChumpChief marked this pull request as ready for review March 20, 2026 22:57
Copilot AI review requested due to automatic review settings March 20, 2026 22:57
Copy link
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 PR simplifies the ESLint flat-config hierarchy in @fluidframework/eslint-config-fluid by folding the former minimalDeprecated layer into the base configuration, removing the deprecated config export and its printed output, and updating remaining internal consumers accordingly.

Changes:

  • Merged minimalDeprecated rules and composition into the base config (including depend plugin + post-prettier no-multi-spaces ordering).
  • Removed the minimalDeprecated config export and the library/rules/minimal-deprecated.mts rules module.
  • Updated downstream/internal usage: server config now composes baseConfig + sharedConfigs, build-tools now uses recommended, and the minimal printed config is removed.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
File Description
common/build/eslint-config-fluid/server.mts Switches server config from minimalDeprecated to composing baseConfig + sharedConfigs + server overrides.
common/build/eslint-config-fluid/scripts/print-configs.ts Stops printing the removed minimal config.
common/build/eslint-config-fluid/printed-configs/minimal.json Removes the tracked printed minimal config output.
common/build/eslint-config-fluid/library/rules/recommended.mts Updates docstring to reflect extending base (not minimalDeprecated).
common/build/eslint-config-fluid/library/rules/minimal-deprecated.mts Deletes the deprecated rule set module.
common/build/eslint-config-fluid/library/rules/base.mts Incorporates former minimalDeprecated rules into base rules (imports, TS, jsdoc/tsdoc, unicorn, etc.).
common/build/eslint-config-fluid/library/configs/factory.mts Removes minimalDeprecated config assembly; recommended now builds from base directly.
common/build/eslint-config-fluid/library/configs/base.mts Adds depend config, TS overrides previously in minimalDeprecated, and re-enables no-multi-spaces after prettier.
common/build/eslint-config-fluid/flat.mts Removes the minimalDeprecated export from the flat-config entrypoint.
build-tools/eslint.config.base.mts Updates build-tools shared config to re-export/extend recommended rather than minimalDeprecated.

… and server

The previous commits switched build-tools to recommended, but that adds
unicorn/recommended and other rules beyond what minimalDeprecated provided.
Export a new base config (baseConfig + sharedConfigs) from flat.mts as the
direct replacement for minimalDeprecated, and use it in build-tools and
server configs.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ChumpChief
Copy link
Contributor

/azp run Build - api-markdown-documenter, Build - benchmark-tool, Build - build-common, Build - build-tools, Build - client packages, Build - common-utils, Build - eslint-config-fluid

@ChumpChief
Copy link
Contributor

/azp run Build - eslint-plugin-fluid, Build - protocol-definitions, Build - test-tools, repo-policy-check, server-gitrest, server-gitssh, server-historian, server-routerlicious

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ChumpChief
Copy link
Contributor

/azp run Build - api-markdown-documenter, Build - benchmark-tool, Build - build-common, Build - build-tools, Build - client packages, Build - common-utils, Build - eslint-config-fluid

@ChumpChief
Copy link
Contributor

/azp run Build - eslint-plugin-fluid, Build - protocol-definitions, Build - test-tools, repo-policy-check, server-gitrest, server-gitssh, server-historian, server-routerlicious

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@ChumpChief
Copy link
Contributor

/azp run Build - api-markdown-documenter, Build - benchmark-tool, Build - build-common, Build - build-tools, Build - client packages, Build - common-utils, Build - eslint-config-fluid

@ChumpChief
Copy link
Contributor

/azp run Build - eslint-plugin-fluid, Build - protocol-definitions, Build - test-tools, repo-policy-check, server-gitrest, server-gitssh, server-historian, server-routerlicious

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@azure-pipelines
Copy link

Azure Pipelines successfully started running 4 pipeline(s).

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