Azure / Azure/typespec-azure

Enforce .NET Mgmt SDK naming conventions via TypeSpec linters

Open
#4,442 8 comments 0 reactions 0 assignees View on GitHub
feature lib:tcgc
Dominant language
TypeScript
Stars
27
Forks
90
Avg merge
1d 22h
Merged PRs (30d)
156

Description

## Summary

The Azure SDK for .NET SDK has a documented set of [naming conventions](https://github.com/Azure/azure-sdk-for-net/blob/main/doc/dev/Mgmt-Naming-Conventions.md). Today these conventions are enforced **after** the SDK is generated, via `@@clientName(..., "csharp")` decorators added during SDK review in the TypeSpec spec. This is reactive and error-prone — names that don't follow the conventions can slip through whenever a reviewer misses them.

We should enforce these rules **on the spec side** via TypeSpec linters (TCGC / typespec-azure-resource-manager rules) so that:

- Authors get immediate, actionable feedback while writing the spec.
- Generated SDKs are .NET-convention-compliant by default.
- The need for hand-authored `@@clientName(..., "csharp")` overrides drops dramatically.

This is the **parent issue** tracking a family of linter rules, one per naming convention. Each sub-issue below covers one specific rule.

Contributor guide

Open the contributing guide

Research direction

Start with the linked Mgmt-Naming-Conventions.md document, then inspect the TCGC and typespec-azure-resource-manager linter entry points. This parent issue covers a family of rules rather than naming one implementation target; completion would require defining and enforcing the individual conventions, with sub-issues providing the actionable scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
developer-experience, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.