Skip to content

Update C# client emitter TCGC dependency to 0.71.2 - #11748

Closed
Dapeng Zhang (ArcturusZhang) wants to merge 2 commits into
microsoft:mainfrom
ArcturusZhang:deps/csharp-tcgc-0.71.2
Closed

Update C# client emitter TCGC dependency to 0.71.2#11748
Dapeng Zhang (ArcturusZhang) wants to merge 2 commits into
microsoft:mainfrom
ArcturusZhang:deps/csharp-tcgc-0.71.2

Conversation

@ArcturusZhang

@ArcturusZhang Dapeng Zhang (ArcturusZhang) commented Aug 24, 2026

Copy link
Copy Markdown
Member

Summary

  • update the C# client emitter TCGC dev dependency and peer lower bound to 0.71.2
  • scope affected @convenientAPI test fixtures to C# for the new TCGC validation
  • regenerate emitter documentation for TCGC 0.71.2's nested service namespace configuration

Validation

  • npm install
  • npm run gen-extern-signature
  • npm run regen-docs
  • eng/scripts/Generate.ps1
  • npm run build
  • npm run test:emitter (239 passed, 2 skipped)
  • npm run test:generator
  • npm run cop
  • pnpm chronus verify
  • changed files pass Prettier

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

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

Updates the C# client emitter to TCGC 0.71.2 and adapts affected test fixtures.

Changes:

  • Updates TCGC dependency ranges and lockfile.
  • Scopes @convenientAPI fixtures to C#.
  • Adds a Chronus dependency entry.

Reviewed changes

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

Show a summary per file
File Description
packages/http-client-csharp/package.json Updates TCGC dependency constraints.
packages/http-client-csharp/package-lock.json Locks TCGC 0.71.2.
packages/http-client-csharp/emitter/test/Unit/usage.test.ts Scopes convenience API fixtures to C#.
packages/http-client-csharp/emitter/test/Unit/operation-paging.test.ts Scopes paging fixtures to C#.
.chronus/changes/deps-csharp-tcgc-0.71.2-2026-08-24.md Records the dependency update.
Files not reviewed (1)
  • packages/http-client-csharp/package-lock.json: Generated file
Suppressed comments (2)

packages/http-client-csharp/emitter/test/Unit/usage.test.ts:636

  • @protocolAPI(false) is still unscoped at lines 617 and 623 in this same TCGC fixture. In 0.71.2, decorator-requires-scope applies to @protocolAPI as well as @convenientAPI, so this compile still emits validation diagnostics even though these adjacent convenience decorators are scoped. Please change both calls to @protocolAPI(false, "csharp").
    @convenientAPI(false, "csharp")

packages/http-client-csharp/package.json:75

  • The C# generator fixtures are not covered by this scoping update: generator/TestProjects/Local/Sample-TypeSpec/Sample-TypeSpec.tsp and generator/TestProjects/Plugin/Sample-TypeSpec/Sample-TypeSpec.tsp still contain unscoped @convenientAPI(true/false) calls (and unscoped @protocolAPI(false)). TCGC 0.71.2 requires these decorators to carry the "csharp" scope, so the generator inputs still produce decorator-requires-scope diagnostics. Please update those fixtures before accepting the dependency bump.
    "@azure-tools/typespec-client-generator-core": "0.71.2",

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@azure-sdk-automation

azure-sdk-automation Bot commented Aug 24, 2026

Copy link
Copy Markdown

You can try these changes here

🛝 Playground 🌐 Website 🛝 VSCode Extension

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings August 25, 2026 02:31
@microsoft-github-policy-service microsoft-github-policy-service Bot added the meta:website TypeSpec.io updates label Aug 25, 2026
@JoshLove-msft

Copy link
Copy Markdown
Contributor

There is a PR out for this here #11739

@pkg-pr-new

pkg-pr-new Bot commented Aug 25, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@typespec/http-client-csharp@11748

commit: db8c526

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

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

Files not reviewed (1)
  • packages/http-client-csharp/package-lock.json: Generated file
Suppressed comments (2)

Previously missed (1) — in code that hasn't changed since the last review.

packages/http-client-csharp/readme.md:60

  • The package-local docs/emitter.md still describes api-version as only a string and omits multi-service/nested namespace selection, so this update leaves the package references contradictory to this README and the generated website page. Please update that reference alongside the new schema documentation.
Use this flag if you would like to generate the sdk only for a specific version. Default value is the latest version. Also accepts values `latest` and `all`. For multi-service packages, provide a map from each service namespace to its desired version. Nested namespaces must be represented as nested objects in `tspconfig.yaml`; services not listed default to their latest version.

packages/http-client-csharp/readme.md:60

  • The generated contract now documents nested namespace objects, but the exported CSharpEmitterOptions still types api-version as string | Record<string, string> (emitter/src/options.ts:12). A TypeScript consumer cannot pass the documented nested form without a cast, so the public type diverges from the runtime schema. Update this to a recursive map type and cover the shape in the options test.
Use this flag if you would like to generate the sdk only for a specific version. Default value is the latest version. Also accepts values `latest` and `all`. For multi-service packages, provide a map from each service namespace to its desired version. Nested namespaces must be represented as nested objects in `tspconfig.yaml`; services not listed default to their latest version.

"@azure-tools/azure-http-specs": "0.1.0-alpha.44",
"@azure-tools/typespec-azure-core": "0.71.0",
"@azure-tools/typespec-client-generator-core": "0.71.1",
"@azure-tools/typespec-client-generator-core": "0.71.2",
**Type:** `string | object`

Use this flag if you would like to generate the sdk only for a specific version. Default value is the latest version. Also accepts values `latest` and `all`. For multi-service packages, provide a map from each service namespace's full name to its desired version; services not listed default to their latest version.
Use this flag if you would like to generate the sdk only for a specific version. Default value is the latest version. Also accepts values `latest` and `all`. For multi-service packages, provide a map from each service namespace to its desired version. Nested namespaces must be represented as nested objects in `tspconfig.yaml`; services not listed default to their latest version.
@github-actions

Copy link
Copy Markdown
Contributor

No changes needing a change description found.

@ArcturusZhang

Copy link
Copy Markdown
Member Author

Closing this in favor of #11739

@ArcturusZhang
Dapeng Zhang (ArcturusZhang) deleted the deps/csharp-tcgc-0.71.2 branch August 25, 2026 02:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

emitter:client:csharp Issue for the C# client emitter: @typespec/http-client-csharp meta:website TypeSpec.io updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants