Skip to content

Switch CSpell to distributed form#2958

Open
chidozieononiwu wants to merge 1 commit into
mainfrom
cspell-distributed
Open

Switch CSpell to distributed form#2958
chidozieononiwu wants to merge 1 commit into
mainfrom
cspell-distributed

Conversation

@chidozieononiwu

@chidozieononiwu chidozieononiwu commented Jun 26, 2026

Copy link
Copy Markdown
Member

This pull request adds a spell checking workflow to the repository and introduces per-project spell check configuration files to improve spelling validation and maintainability across the codebase. The main changes are the addition of a GitHub Actions workflow for spell checking on pull requests, a compatibility configuration file, and new or updated cspell.yaml files for individual servers and tools.

CI/CD and Spell Checking Infrastructure:

  • Added a new GitHub Actions workflow (.github/workflows/spelling.yaml) that runs a spell check on pull requests targeting the main branch, ensuring spelling errors are caught automatically in changed files.
  • Added a cspell.json compatibility file at the root to support older spell check versions and specify files to lint, importing the main cspell.yaml.

Per-Project Spell Check Configuration:

  • Introduced or updated cspell.yaml files for various servers and tools (e.g., Azure.Mcp.Server, Fabric.Mcp.Server, Template.Mcp.Server, and multiple under tools/Azure.Mcp.Tools.*). These files inherit from the root config and allow for project-specific spelling overrides, improving accuracy and maintainability of spell checking. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]

Project-specific Word Lists:

  • Populated the words section in each cspell.yaml with terms relevant to that specific project or tool, while leaving the section empty for projects without unique terms. This helps prevent false positives from domain-specific terminology. [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13]

These changes together establish a robust, maintainable spell checking process that is both automated and customizable per project.

Addresses #89

Copilot AI left a comment

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.

Pull request overview

This PR switches the repository’s spell-checking setup to a distributed CSpell configuration model by introducing a root cspell.yaml (plus a compatibility cspell.json), adding a PR-triggered GitHub Actions workflow, and adding per-project cspell.yaml files for servers/toolsets to hold local spelling overrides.

Changes:

  • Added a GitHub Actions workflow to run spell checking on PRs against main.
  • Introduced root CSpell configuration (cspell.yaml) plus a compatibility cspell.json.
  • Added per-project cspell.yaml files under servers/** and tools/** for project-scoped word lists/overrides.

Reviewed changes

Copilot reviewed 67 out of 67 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/workflows/spelling.yaml New PR workflow that runs spell-checking for changed files.
cspell.yaml New root CSpell configuration and shared dictionaries/ignore paths.
cspell.json Compatibility config intended to import the root YAML config.
.vscode/cspell.json Removed legacy VS Code-scoped CSpell configuration.
servers/Azure.Mcp.Server/cspell.yaml Adds server-scoped spelling overrides importing the root config.
servers/Fabric.Mcp.Server/cspell.yaml Adds server-scoped spelling overrides importing the root config.
servers/Template.Mcp.Server/cspell.yaml Adds server-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Acr/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Advisor/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Aks/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AppConfig/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AppLens/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ApplicationInsights/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AppService/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Authorization/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureBackup/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureBestPractices/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureIsv/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureMigrate/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureTerraform/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureTerraformBestPractices/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.AzureTerraformBestPractices/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.BicepSchema/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.CloudArchitect/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Communication/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Compute/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ConfidentialLedger/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ContainerApps/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Cosmos/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Deploy/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.DeviceRegistry/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.EventGrid/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.EventHubs/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Extension/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.FileShares/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.FoundryExtensions/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.FunctionApp/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Functions/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Grafana/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.KeyVault/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Kusto/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.LoadTesting/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ManagedLustre/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Marketplace/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Monitor/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.MySql/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Policy/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Postgres/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Pricing/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Quota/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Redis/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ResourceHealth/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Search/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ServiceBus/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.ServiceFabric/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.SignalR/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Speech/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Sql/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.SreAgent/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Storage/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.StorageSync/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.VirtualDesktop/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.WellArchitectedFramework/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Azure.Mcp.Tools.Workbooks/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Fabric.Mcp.Tools.Core/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Fabric.Mcp.Tools.DataFactory/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Fabric.Mcp.Tools.Docs/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
tools/Fabric.Mcp.Tools.OneLake/cspell.yaml Adds toolset-scoped spelling overrides importing the root config.
Comments suppressed due to low confidence (2)

servers/Template.Mcp.Server/cspell.yaml:10

  • words: is currently set with no value, which makes this config ambiguous (null) and may cause CSpell to fail to load the per-project config. Use an explicit empty list for consistency with the other per-project configs (or remove the key entirely).
  - ../../cspell.yaml
words:

tools/Azure.Mcp.Tools.WellArchitectedFramework/cspell.yaml:10

  • words: is currently declared with no list items, which results in a null value and can break/disable the per-project overrides. Prefer an explicit empty list (words: []) for a valid, consistent config.

- name: Run spelling check
run: |
./eng/common/scripts/check-spelling-in-changed-files.ps1 `
-CSpellConfigPath './cspell.yaml' `
Comment thread cspell.json
Comment on lines +1 to +6
{
"//purpose": "This file is needed for older spell check versions to specify the files to lint",
"version": "0.2",
"import": [
"cspell.yaml"
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants