Generate .NET SDK for Microsoft.Insights metric alerts 2024-03-01-preview version#53565
Draft
violetVo wants to merge 3492 commits into
Draft
Generate .NET SDK for Microsoft.Insights metric alerts 2024-03-01-preview version#53565violetVo wants to merge 3492 commits into
violetVo wants to merge 3492 commits into
Conversation
Bumps [postcss](https://github.com/postcss/postcss) from 8.5.8 to 8.5.15. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](postcss/postcss@8.5.8...8.5.15) --- updated-dependencies: - dependency-name: postcss dependency-version: 8.5.15 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…port in CertificateClient (#60115) * Configurations: 'specification/keyvault/data-plane/Certificates/tspconfig.yaml', and CommitSHA: '538e38e10d30e578597d26ae404902bdd331fbe6' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6466299 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * [Azure.Security.KeyVault.Certificates] Adopt TypeSpec-generated transport in CertificateClient Rewires CertificateClient on top of the TypeSpec-emitted KeyVaultCertificatesClient and removes the legacy hand-written transport. Spec-side @@access(KeyVault, Access.internal, "csharp") (azure-rest-api-specs#44139) makes the generated client + spec-defined models internal at emit time. A small post-emit script remains for five emitter-bug workarounds (arg-order swap on UpdateCertificate, trailing-slash bugs on three URL families, missing Accept header on PurgeDeletedCertificate). Each patch is narrowly scoped and idempotent and will be deleted once the upstream emitter is fixed. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Wire Certs post-emit script into AfterTargets="GenerateCode" for CI parity Adds the InternalizeGeneratedCodeAfterGenerate target so CI's "Verify Generated Code" job (which runs dotnet build /t:GenerateCode) re-applies the 5 emitter-bug patches on the freshly regenerated source. Without this hook, the regen produces unpatched emitter output and Verify Generated Code reports a diff against the committed (patched) files. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address CertificateClient review comments Bug fixes: - GetCertificateVersion (sync) now validates �ersion parameter, matching the async overload (Blocker 1: sync/async validation parity). - UpdateCertificatePolicy (sync + async) now asserts policy != null BEFORE the diagnostic scope so the public contract surfaces ArgumentNullException(ParamName="policy") instead of the internal ameof(serializable) from the mapper (Blocker 2). DownloadCertificate: added an explicit by-design comment on why the first call stays on _pipeline (legacy KeyVaultPipeline) - the cassette-recorded /certificates/{name}/ shape would require re-recording every download live test if switched to _generated.GetCertificate. The managed-secret call legitimately stays on _pipeline because it targets the /secrets/ endpoint with outContentType. Internalize-Generated.ps1: each of patches 2-5 now emits a Write-Warning only when the patch failed to apply on freshly emitted code (the buggy pattern is still present after the replace), eliminating false positives on idempotent re-runs over already-patched files. Tests: 14 new argument-validation tests covering GetCertificateVersion (null/empty version), UpdateCertificatePolicy (null name / empty name / null policy with ParamName assertion), GetCertificatePolicy (null/empty), CreateIssuer / UpdateIssuer (null), GetIssuer / DeleteIssuer (null/empty), SetContacts (null). Total: 323 passed / 0 failed / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address Gap-review items A1-A4, B1, B4, C1-C3 A1+A2 (silent regression / public-API drift): generated CertificatePolicyAction now exposes a nullable implicit operator that silently swallows null instead of throwing ArgumentNullException. Patch 6 in eng/Internalize-Generated.ps1 removes the generated overload so the handwritten partial's non-nullable operator stays the only contract. A3 (metadata.json vs ServiceVersion enum mismatch): added CertificateClientOptions.ServiceVersion.V2026_05_01_Preview, routed it through GetVersionString() and MapApiVersion(), bumped LatestVersion. Customers can now opt into the api-version the spec was generated against. A4 (CHANGELOG): documented the new V2026_05_01_Preview enum value, the PlatformManaged MRW additions, and the new AzureSecurityKeyVaultCertificatesContext (all additive). Soften the prior "no public API changes" claim. B1 (Patch 5 CRLF fragility): converted Patch 5 from literal String.Replace to a \r?\n-tolerant regex matching the other patches; the previous LF-only literal would silently no-op on CRLF emitter output. B4 (Stale csproj comment): csproj's $mergeFileNames reference replaced with a pointer to the spec-level @@access decorator and a short explanation of why PlatformManaged / CertificatePolicyAction stay public partial. C1 (no test pinned the 5 wire-shape patches): new CertificateClientWireShapeTests.cs covers all 5 patches via MockTransport assertions (path shape, trailing slash, Accept header, arg order). C2 (no test for MapApiVersion): TestCaseSource over every ServiceVersion enum value asserts construction. C3 (no test for CertificatePolicyAction null): two new tests pin the throw contract Patch 6 restores. Misc: re-exported api/*.cs to reflect the additive surface (V2026_05_01_Preview, MRW on PlatformManaged, AzureSecurityKeyVaultCertificatesContext). Added trailing newlines to DeleteCertificateOperation.cs / RecoverDeletedCertificateOperation.cs. Tests: 340 passed / 0 failed / 716 skipped (was 323; +17 new). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address Gap-report nits: remove dead path constant, fix csproj comment, add V2026_05_01_Preview to GetVersionString test - src/CertificateClient.cs: remove the unused DeletedCertificatesPath constant. The only legacy path still consumed via the constant was CertificatesPath (DownloadCertificate); every deleted-certificate route now goes through the generated client. Dead-code cleanup. - src/Azure.Security.KeyVault.Certificates.csproj: fix the stale comment that said generated CertificatePolicyAction contributes a nullable string implicit cast. After Patch 6 (commit fb710fe), the generated nullable op_Implicit is removed - so generated only contributes additive MRW JSON support. Updated both comment blocks; removed the duplicate that still referenced the non-existent `` variable. - tests/CertificateClientOptionsTests.cs: add the missing explicit V2026_05_01_Preview row to GetVersionString_MatchesWireString. The new default ServiceVersion now has direct test coverage of its wire-version string (was previously only covered by the reflection-based EveryDefinedServiceVersionConstructs). Tests: 341 passed / 0 failed / 716 skipped (+1 new test case). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Reference upstream emitter-bug tracking issues in Internalize-Generated.ps1 header Patches are tracked at #60160 (arg order), #60162 (wire shapes), and #60163 (nullable op_Implicit). Once all three upstream fixes ship and we bump the library-local emitter pin, this script can be deleted. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore no-breaking-change posture for Certificates Per the directive that this rewire must be fully invisible to existing customers, revert the customer-visible behavior changes accumulated across the PR: - src/CertificateClientOptions.cs: remove V2026_05_01_Preview enum value; LatestVersion stays V2026_03_01_Preview. Default `new CertificateClientOptions()` continues to select V2026_03_01_Preview as before. - src/CertificateClient.cs: - MapApiVersion: drop V2026_05_01_Preview case. - Paged operations (GetPropertiesOfCertificates[Versions], GetDeletedCertificates, GetPropertiesOfIssuers, sync + async) drop [ForwardsClientCalls] and now wrap each page-fetch in a per-page-fetch DiagnosticScope using the EXACT legacy scope-name strings (preserving the quirky inconsistencies between sync/async that existed in the hand-written 4.10.0-beta.1 code). Customers filtering OpenTelemetry / DiagnosticListener by the legacy paged names see them unchanged. - src/Internal/ForwardsClientCallsAttribute.cs: deleted (no callers). - tests/CertificateClientForwardsClientCallsTests.cs: deleted (test of removed attribute). - CHANGELOG.md: - Features Added section documents the three additive surface items the new transport contributes (all backwards-compatible: IJsonModel/IPersistableModel on PlatformManaged, AzureSecurityKeyVaultCertificatesContext public, KeyVaultCertificatesModelFactory). Matches the convention every other TypeSpec-emitted Azure SDK library follows (e.g. sibling Azure.Security.KeyVault.Administration). - Removed the entries about behavior changes that no longer apply (V2026_05_01_Preview, the previous note about `KeyVaultCertificatesClient.<Op>` nested span name). - tests/CertificateClientOptionsTests.cs: drop V2026_05_01_Preview row. Tests: 341 passed / 0 failed / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Switch Certificates CHANGELOG to Option B: collapse additive-surface bullets into the internal-rewire Other Changes note Customers see no breaking changes; the additive types (AzureSecurityKeyVaultCertificatesContext, KeyVaultCertificatesModelFactory, IJsonModel/IPersistableModel on PlatformManaged) are now mentioned only as a parenthetical inside the internal-rewire note rather than as separate Features Added entries. Matches Secrets PR #60114 framing and the sibling Azure.Security.KeyVault.Administration convention. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address PR-60115 ship-readiness nits (G2/G3/G9) - G2: Add trailing newline to CertificateClient.cs - G3: Add trailing newline to metadata.json - G9: Move per-page value-mapping inside MappedPageable/MappedAsyncPageable DiagnosticScope try block so deserialization failures from _map(v) are recorded via scope.Failed(ex) instead of leaking past a disposed scope. No public API change. 341 tests pass / 0 fail / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Drop Patch 6 (CertificatePolicyAction nullable op_Implicit removal) Per JoshLove-msft on #60163 (closed as not-a-bug): 'Having an implicit operator throw an exception is against the .NET Framework design guidelines. This doesn't result in a good user experience.' So the emitter-generated nullable op_Implicit(string) -> CertificatePolicyAction? is intentional framework behavior — we should not strip it. Changes: - eng/Internalize-Generated.ps1: drop Patch 6; only Patches 1-5 (UpdateCertificate arg-order #60160 + 4 wire-shape bugs #60162) remain. Script header updated to document why the nullable operator stays. - src/Generated/Models/CertificatePolicyAction.cs: restored to the emitter's original output (re-adds the nullable op_Implicit overload). - src/Azure.Security.KeyVault.Certificates.csproj: comment refreshed. API listing (api/*.cs) is unchanged vs prior HEAD — the C# compiler merges the partial-class operator declarations without producing a new overload visible in the reference assembly. 341 tests pass / 0 fail / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix CI build error: remove stale V2026_05_01_Preview test case When PR-60115 reverted to no-breaking-change posture (commit 358bf81) the V2026_05_01_Preview enum value was removed from CertificateClientOptions.ServiceVersion, but one [TestCase] reference in CertificateClientOptionsTests.GetVersionString_MatchesWireString was missed, causing CS0117 on CI: error CS0117: 'CertificateClientOptions.ServiceVersion' does not contain a definition for 'V2026_05_01_Preview' Remove the stale test case. 337 tests pass / 0 fail / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Restore emitter output for CertificatePolicyAction.cs and metadata.json CI 'Verify Generated Code' compares the committed generated files against the output of 'dotnet build /t:GenerateCode'. Two committed files differed from clean emitter output: 1. src/Generated/Models/CertificatePolicyAction.cs — the prior commit restored it from 'git show' output which collapsed line endings into a single line. Re-emit produces the canonical multi-line file with the nullable op_Implicit overload preserved. 2. metadata.json — earlier nit fix added a trailing newline (audit doc G3), but this file is overwritten by the emitter on every regen and the emitter does not emit a trailing newline. Drop the newline to match emitter output. 337 tests pass / 0 fail / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Address Copilot bot review nits on PR #60115 - src/Azure.Security.KeyVault.Certificates.csproj: move InternalizeGeneratedCode stamp from \ to \ so the post-emit script runs once per build instead of once per target framework (the prior path was TFM- scoped). - src/Internal/KeyVaultCertificatesClient.Customizations.cs: tighten apiVersion validation from AssertNotNull to AssertNotNullOrEmpty so an empty/whitespace value is rejected at construction instead of producing a malformed wire request. The public CertificateClient ctor goes through MapApiVersion which always produces a non-empty constant, so this only hardens the internal ctor against direct DI/test misuse. 337 tests pass / 0 fail / 716 skipped. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add nullable CertificatePolicyAction? op_Implicit to api/*.cs The TypeSpec emitter emits both \op_Implicit(string) -> CertificatePolicyAction\ (handwritten) and \op_Implicit(string) -> CertificatePolicyAction?\ (generated) on the extensible enum struct. On Linux CI both overloads are visible in the reference assembly and end up in api/*.cs. On my local Windows build only one operator was emitted (Roslyn quirk), so the committed api files missed the nullable overload and CI's Verify Generated Code rejected the diff. Add the nullable overload to all 3 framework api files to match CI output. Pure additive surface — no API removal, no behavior change. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Rohit Singhal <singhalrohit@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Bumps [picomatch](https://github.com/micromatch/picomatch) from 2.3.1 to 2.3.2. - [Release notes](https://github.com/micromatch/picomatch/releases) - [Changelog](https://github.com/micromatch/picomatch/blob/master/CHANGELOG.md) - [Commits](micromatch/picomatch@2.3.1...2.3.2) --- updated-dependencies: - dependency-name: picomatch dependency-version: 2.3.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [markdown-it](https://github.com/markdown-it/markdown-it) from 14.1.1 to 14.2.0. - [Changelog](https://github.com/markdown-it/markdown-it/blob/master/CHANGELOG.md) - [Commits](markdown-it/markdown-it@14.1.1...14.2.0) --- updated-dependencies: - dependency-name: markdown-it dependency-version: 14.2.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: azure-sdk <azuresdk@microsoft.com>
…neExperimentation (#60316)
…ute.BulkActions (#60281)
…n - .NET-6442978 (#59969) * Configurations: 'specification/confidentialledger/Microsoft.CodeTransparency/tspconfig.yaml', SDK Release Type: stable, and CommitSHA: 'f2444a9c1e033c9cbde367d7b708eca303311c98' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6442978 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Fix customization drift: add backward-compatible wrapper methods - Add GetEntry/GetEntryAsync/GetEntryStatement/GetEntryStatementAsync/GetOperation/GetOperationAsync wrapper methods that delegate to the V09 generated methods - Fix PipelineMessageClassifier201202 -> ResponseClassifier201202 in CreateCreateEntryRequest Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update API listing to include V09 methods and wrapper methods Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update hardcoded API version in tests from 2025-01-31-preview to 2026-03-26 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add 1.0.0 (Unreleased) entry to CHANGELOG.md for GA release Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Hide V09 methods from public API surface - Change V09 generated methods from public to internal - Add CreateEntry wrapper methods with waitForCommit parameter - Add CodeGenSuppress for V09 methods to prevent regeneration issues - Update API listings to reflect clean public API (no V09 suffix) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Revert V09 hiding: restore public V09 methods and update API listing Remove CodeGenSuppress attributes for V09 methods to keep generated code unmodified, fixing Verify Generated Code CI check. Update API listing to include V09 public methods. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add live recorded tests for all Code Transparency operations Add TestEnvironment, RecordedTestBase, and 8 live tests covering: - GetTransparencyConfigCbor, GetPublicKeys - CreateEntry (handles 201 and 303 responses) - GetOperation, GetEntry, GetEntryStatement - Both convenience and RequestContext overloads Supports canary identity endpoint via CODETRANSPARENCY_IDENTITY_ENDPOINT. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add waitForCommit=true test case Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Mark backward-compatible wrapper methods as [Obsolete] and update internal callers to V09 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update API listing files with [Obsolete] attributes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix TagsSamples.cs from CodeChecks normalization Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Regenerate Azure.ResourceManager.ConfidentialLedger to match latest generator Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Ryan Zhang <ryazhang@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ryan Zhang <112638134+ryazhang-microsoft@users.noreply.github.com>
Bumps the typespec group with 2 updates in the /eng/packages/http-client-csharp-provisioning directory: [@azure-typespec/http-client-csharp](https://github.com/azure-sdk/azure-sdk-for-net) and [@typespec/http-client-csharp](https://github.com/Microsoft/typespec). Updates `@azure-typespec/http-client-csharp` from 1.0.0-alpha.20260629.2 to 1.0.0-alpha.20260630.1 - [Commits](https://github.com/azure-sdk/azure-sdk-for-net/commits) Updates `@typespec/http-client-csharp` from 1.0.0-alpha.20260630.5 to 1.0.0-alpha.20260707.5 - [Release notes](https://github.com/Microsoft/typespec/releases) - [Commits](https://github.com/Microsoft/typespec/commits) --- updated-dependencies: - dependency-name: "@azure-typespec/http-client-csharp" dependency-version: 1.0.0-alpha.20260630.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typespec - dependency-name: "@typespec/http-client-csharp" dependency-version: 1.0.0-alpha.20260707.5 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: typespec ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: azure-sdk <azuresdk@microsoft.com>
…elease 1.0.0-alpha.20260707.3 (#60747) Co-authored-by: azure-sdk <azuresdk@microsoft.com>
* Experiment with FrontDoor custom resource base types Regenerate FrontDoor after removing direct customAzureResource decorators and base alternateType customizations, and add a one-class custom base-type experiment for FrontDoorData. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Regenerate FrontDoor with latest custom base support Regenerate FrontDoor after merging latest main to test the updated custom resource data base-type behavior. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Work around FrontDoorData serialization override Move JsonModelWriteCore into custom code as an override so FrontDoorData can keep its customized TrackedResourceData base type until the generator emits the correct method modifier. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Clarify FrontDoorData serialization workaround Document that the custom JsonModelWriteCore body only changes the generated method modifier from virtual to override and link the tracking issue. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Mitigate FrontDoor resource data compatibility Add custom resource-data base type and serialization shims for FrontDoor models affected by removing legacy spec alternateType customizations, then regenerate with local mgmt generator output. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Mitigate FrontDoor replacement model removal Add custom partials to preserve FrontDoorResourceData base types after removing C# replacement models, suppress duplicate Type properties, and export updated API listings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Keep FrontDoor constructors internal Add internal parameterless constructors in custom code so regenerated FrontDoor models do not expose new public parameterless constructors, and refresh API listings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Refresh FrontDoor generated code after CodeChecks Apply CodeChecks output for FrontDoor after merging latest main, including regenerated model factory, serialization, custom shims, and API listings. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Preserve FrontDoor base serialization Call restored ResourceData and TrackedResourceData base writers from custom JsonModelWriteCore shims so inherited resource fields continue to match recorded request payloads. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update FrontDoor spec commit Point FrontDoor tsp-location.yaml at the merged spec PR commit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update FrontDoor changelog Document the FrontDoor regeneration and compatibility customizations in the unreleased changelog section. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Correct FrontDoor spec commit SHA Use the actual merged azure-rest-api-specs commit SHA for the FrontDoor spec PR so CI can fetch the referenced commit. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Apply FrontDoor CodeChecks output Commit the generated code and API listing updates produced by CodeChecks for the FrontDoor PR branch. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Preserve FrontDoor base deserialization Move static deserializers into custom code so restored ResourceData and TrackedResourceData base fields such as Id, ResourceType, tags, and location are populated during playback and resource wrapper creation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update FrontDoor workaround issue links Point copied serialization workaround comments to the new custom ResourceData base-type serialization tracking issue. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use spec TLS enum names Update FrontDoor to the spec PR head that uses exact TLS enum member names and remove the redundant SDK enum customization. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update FrontDoor TLS spec commit Point FrontDoor tsp-location.yaml at the merged spec commit for exact TLS enum member names. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add TODOs for FrontDoor serialization workarounds Mark copied serialization workaround methods with TODOs pointing to the custom ResourceData base-type generator issue. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Only active SDK review checks should suppress dispatch. Completed review checks can be from prior CI failure analysis on the same commit, so a later successful rerun must still dispatch the normal review and create a fresh in-progress PR-head check. Co-authored-by: live1206 <live1206@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix Redis Enterprise migration API names Rename Redis Enterprise migration validation models and boolean properties from SDK review feedback. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Apply suggestion from @ArcturusZhang --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Port Vally eval CI scripts from PowerShell to JavaScript
Rewrite all eval pipeline glue scripts as dependency-free ESM with node:test unit tests, under eng/common/scripts/eval/:
- collect-stimuli.js (+ lib/glob.js) <- Split-EvalSuite.ps1
- invoke-eval-shard.js + lib/verdict.js <- Invoke-EvalShard.ps1 + EvalVerdict.Helpers.ps1
- build-eval-summary.js <- Build-EvalSummary.ps1
- sync-eval-git-repo.js <- Sync-EvalGitRepo.ps1
- init-eval-git-fixtures.js <- Initialize-EvalGitFixtures.ps1
Delete all .ps1 + Pester tests; rewire vally-eval.yml to invoke the JS via node; update README/.vally.yaml/eval-comment references. 40 node:test cases pass.
* Split Vally eval pipeline into reusable templates
Extract the monolithic vally-eval.yml into modular, parameterized templates under eng/common/pipelines/templates (synced to other repos), leaving a thin repo-local entrypoint:
- steps/vally-build-mock.yml: build + publish the mock MCP DLL
- steps/vally-collect-stimuli.yml: glob eval files -> shard matrix (repo + optional common root)
- steps/vally-run-shard.yml: npm ci + download mock + prime git fixtures + run shard + publish JUnit/transcripts
- steps/vally-summarize.yml: aggregate shard JUnit + gate rollup
- stages/archetype-vally-eval.yml: Eval stage (BuildMock || Detect -> RunShard matrix, customMcpBuildJobs hook) + Summary stage
Drop the redundant global 'npm install -g @github/copilot-sdk': it is a locked transitive dep of @microsoft/vally-cli, so npm ci in eng/skill-eval already installs the executor (D9: pin via lockfile, no global installs).
Migrate all jobs to the managed pool (name: $(LINUXPOOL) / image: $(LINUXVMIMAGE) / os: linux); the repo-local entrypoint supplies the image.yml variables and the variable group.
* Generalize Vally eval templates for skill + live verticals; fix missing lib modules
Make the shared archetype/templates MCP-agnostic so the skill-compliance and
live workflow-scenario evals can reuse the same shard fan-out as the mock tier:
- collect-stimuli.js: derive file-mode shard names from the full relative path
so per-skill <skill>/evals/trigger.eval.yaml files no longer collide.
- vally-build-mock.yml -> vally-build-mcp.yml: build a LIST of MCP servers and
publish them under a common stage root.
- vally-collect-stimuli.yml: accept an explicit list of eval glob patterns.
- vally-run-shard.yml: rename mock* params to mcp*; optionally wrap the eval in
AzureCLI@2 (live tier) so the agent's DevOps calls inherit the service
connection, else run as a plain script (hermetic tiers).
- archetype-vally-eval.yml: swap mock-specific params for mcpBuilds/mcpArtifact/
mcpStageRoot/patterns/azureServiceConnection and wire them through.
Add two thin entrypoints:
- eng/pipelines/skill-eval-shards.yml: sharded variant of skill-eval.yml
(builds cli + mock, one shard per skill).
- eng/pipelines/live-eval.yml: nightly scheduled live run (builds cli,
authenticated via opensource-api-connection).
Fix the pipeline ERR_MODULE_NOT_FOUND failure: the root .gitignore's Python
`lib/` rule silently excluded eng/common/scripts/eval/lib/{glob,verdict}.js, so
the pipeline checkout was missing them. Add a targeted negation and track the
two modules.
Defaults preserve the existing mock vertical; vally-eval.yml only updates the
renamed build-template trigger paths.
* polish and rename
* Switch Vally eval CI to 1ES; quiet teardown-noise warnings
Pipeline (1ES migration, localized to the archetype):
- archetype-vally-eval.yml now extends /eng/pipelines/templates/stages/1es-redirect.yml
(chained extends, like archetype-sdk-tool-dotnet.yml). Adds Use1ESOfficial param.
- 1ES Official forbids the `publish:` shortcut, so the three artifact publishes move to
job-level templateContext.outputs: MCP server artifact on BuildMcp; per-shard
eval-result-$(shardName) (JUnit, always) and eval-debug-$(shardName) (transcripts, on
failure) on the RunShard matrix job.
- Drop the publish steps from vally-build-mcp.yml / vally-run-shard.yml (keep the staging
script steps) and remove the now-unused stageRoot/artifactName params from
vally-build-mcp.yml. Clears the 17 [1ES PT] warnings; CG is opt-in under 1ES.
Shard gate (invoke-eval-shard.js):
- Demote the two "passing verdict" warnings (hadExecutionErrors and non-zero vally exit)
from ##vso build warnings to plain log lines. Both are the same expected post-run
agent-teardown noise and say nothing about the eval; the results.jsonl verdict is
authoritative. Removes 8 confusing build annotations.
- Replace em-dash with ASCII hyphen in the task.logissue strings (rendered as mojibake
in ADO annotations).
Earlier review fixes (carried in this PR):
- collect-stimuli.js: guard against area-mode shard-name collisions (matches file mode);
add a regression test.
- vally-run-shard.yml: prime git fixtures from this shard's own evalArgs (--pattern per
-e file) instead of the built-in defaults.
* Fix npm ci EPERM under 1ES by restoring via azure-sdk npm mirror
The 1ES Official managed image blocks direct egress to registry.npmjs.org,
so the shard's `npm ci` failed with EPERM ("rejected by your operating
system"), which cascaded into the collect-JUnit find errors. Restore the
Vally CLI through the allowlisted azure-sdk Azure Artifacts npm mirror via
an authenticated .npmrc (the same pattern typespec-author-eval-setup uses).
* Simplify eval archetype: build Mock+Cli MCP by default, drop never-overridden params and mcpBuilds
* Rework MCP build to useCustomMcp + runtime repo detection per review
* Copy Vally CLI pin to eng/common/vally-eval and repoint eval pipeline
Adds eng/common/vally-eval (renamed from skill-eval) so the pinned @microsoft/vally-cli lockfile syncs via eng/common. Repoints the Vally eval pipeline (vally-eval.yml, skill-eval-2.yml triggers; vally-run-shard skillEvalDir default; invoke-eval-shard comment) to the new path. eng/skill-eval is left intact for legacy GitHub Actions and the going-away skill-eval.yml; it can be removed later.
* Move eval-mcp-setup.yml step template into eng/common
Co-locates the custom-MCP override step template with the other vally-* eval step templates in eng/common/pipelines/templates/steps and repoints the archetype useCustomMcp branch + comments.
* Repoint eval-mcp-setup.yml references to eng/common path
* Eval CI: move entrypoints/templates to eng/common, rename vally-* templates to eval-*, extract generate-eval-matrix + eval-shard jobs, merge eval package.json, drop variable group, add maxParallel
* Eval CI: make eng/common templates MCP- and auth-agnostic
- Replace MCP build coupling with a single mcpSetupTemplate path param; move the actual builds to repo-local eng/pipelines/eval/mcp-mock.yml + mcp-live.yml and delete the shared eval-build-mcp.yml.
- Remove azureServiceConnection param; the live tier's AzureCLI@2 wrapping now lives in a repo-local evalInvokeTemplate (eval-invoke-live.yml). Default is the hermetic node runner eval-invoke.yml. This single run-time hook also covers chatbot/custom-MCP startup.
- Convert shardTimeoutInMinutes from a param to an entrypoint-declared variable (hermetic 20, live 45); document the required-variable contract in the archetype + shard job.
- Pass vallyRoot explicitly from every entrypoint; update trigger path filters for the new templates.
- Fix sync-eval-git-repo.js cold-cache clone: init + fetch <ref> + checkout FETCH_HEAD so branches, tags, and SHAs all resolve (matches the refresh path), not just the remote default branch.
* Simplify eval pipeline templates: inline non-varying parameters
Audit and remove pipeline parameters that no caller overrides, inlining the constant value instead. Make the archetype evalGlobs default explicit and verified equivalent to the collect-stimuli.js fallback. Fix latent shardBy and githubTokenVariable passthrough bugs.
* Flatten eval pipeline to stages -> jobs (steps inline)
Make archetype-eval.yml a pure orchestrator (only job-template references, no inline steps) and fold each single-use steps template into its owning job template. Add build-mcp.yml and eval-summarize.yml job templates; delete the merged eval-collect-stimuli, eval-run-shard, and eval-summarize step templates. Only the two swap-point step templates (mcpSetupTemplate, evalInvokeTemplate) remain. Update trigger path-filters to templates/jobs/**.
* Trim verbose comments across eval pipeline and scripts
Reduce oversized comment blocks to terse basic summaries: collapse multi-paragraph JS file headers, drop ported-from-PowerShell references and why/teardown rationale, and remove Phase/D2/D3 jargon from the pipeline YAML headers.
* Reject eval paths with whitespace; note JUnit parse coupling
Fail fast in collect-stimuli when a discovered eval path contains whitespace, so a bad path errors at matrix time instead of mis-splitting the space-delimited -e args downstream. Add a comment in build-eval-summary flagging the regex coupling to Vally's JUnit output.
* Make shard timeout a compile-time parameter
1ES requires job timeoutInMinutes to be an integer at compile time, so it cannot read a runtime variable macro. Thread shardTimeoutInMinutes as a number parameter (default 20) from each entrypoint through the archetype to the shard job; live tier sets 45.
* Map copilot PAT into GITHUB_TOKEN env for eval invoke steps
* Attach eval variable group to entrypoint pipelines so copilot PAT resolves
* Land eval cache on a local branch so worktree fixtures resolve the ref
* Consolidate eval invoke into one auth-conditional template and tidy shard/MCP seams
- Fold eval-invoke-live.yml into eval-invoke.yml via UseAzSdkAuthentication flag (AzureCLI@2 vs hermetic script); delete the live copy
- Derive npm --prefix from the script dir in invoke-eval-shard.js; drop the skill-eval-prefix arg/param everywhere
- Make vallyRoot required (no default) in archetype + shard; thread UseAzSdkAuthentication through
- Move checkout into the BuildMcp job; remove it from the MCP setup templates; make the example MCP template a mock/live if-else
- Add pre/post eval step hooks and blank-line spacing in eval-shard.yml
* Add eval hooks, parameterize gate threshold, require mcpSetupTemplate
- Add eval-hook-example.yml placeholder documenting pre/post-eval hooks; surface commented preEvalTemplate/postEvalTemplate in both entrypoints.
- Parameterize the pass-rate gate as a threshold param (default 0.8) threaded entrypoint -> archetype -> eval-shard -> eval-invoke; surface it explicitly per tier.
- Make mcpSetupTemplate required in archetype-eval.yml (example default was tools-repo specific).
* Consolidate MCP templates and add opt-in cross-repo checkout
- Merge mcp-mock.yml/mcp-live.yml into eval-mcp-setup.yml with an McpServer if/else selector threaded through build-mcp and the archetype.
- Add opt-in toolsRepo param (default '') so repos outside azure-sdk-tools can side-checkout the tools sources to build the MCP; no-op for the tools repo.
* Fix eval archetype: declare toolsRepo param and default mcpServer
The archetype forwarded toolsRepo/mcpServer without declaring toolsRepo (ADO 'Key not found' compile error) and left mcpServer without a default despite being optional. Declare toolsRepo (default '') and default mcpServer to ''.
* Address review feedback: portable lib/ gitignore, rerun-safe shard artifacts, TestType rename, exec.js note
* Always stage debug dir so failed()-gated transcript publish can't error on missing path
---------
Co-authored-by: helen229 <gaoh@microsoft.com>
…eneration - .NET-6488028 (#60328) * Regenerate CognitiveServices SDK with type renames and doc fix - Regenerate from TypeSpec PR Azure/azure-rest-api-specs#44278 - 12 types renamed with service-specific prefixes (CognitiveServices/Deployment) - Fix wildcard doc escaping in RaiEgressRuleMatch - Update tsp-location.yaml to point to fork commit * Update CHANGELOG for 1.6.0-beta.3 * Apply suggestion from @ArcturusZhang --------- Co-authored-by: M-Hietala <78813398+M-Hietala@users.noreply.github.com> Co-authored-by: Dapeng Zhang <dapzhang@microsoft.com>
…tion - .NET-6477194 (#60084) * Configurations: 'specification/liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml', API Version: 2026-03-01-preview, SDK Release Type: beta, and CommitSHA: '18ebae7ea8f6aefd83268aacdb1f480b24842726' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6461790 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Configurations: 'specification/liftrmongodb/MongoDB.Atlas.Management/tspconfig.yaml', API Version: 2026-03-01-preview, SDK Release Type: beta, and CommitSHA: 'ac5f7d96bc313f0d1df718dffe02a85a5ddff6b8' in SpecRepo: 'https://github.com/Azure/azure-rest-api-specs' Pipeline run: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=6477194 Refer to https://eng.ms/docs/products/azure-developer-experience/develop/sdk-release/sdk-release-prerequisites to prepare for SDK release. * Regenerate SDK from updated TypeSpec spec (f997cebe) - Updated tsp-location.yaml to latest spec commit - Renamed models with proper MongoDBAtlas prefix - Renamed Backups property to IsBackupsEnabled - Fixed casing of FREE/FLEX to Free/Flex in MongoDBAtlasClusterTier - Updated CHANGELOG.md with breaking changes Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Trigger CI rebuild * Update CHANGELOG with features added for 1.1.0-beta.1 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update CHANGELOG: set release date to 2026-07-12 and remove empty sections Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Anuj Sharma <sharmaanu@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Obsolete Traffic Manager endpoint wrappers Mark the legacy TrafficManagerEndpointResource and TrafficManagerEndpointCollection APIs as obsolete and hide them from IntelliSense so users move to the endpoint-specific resource types. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Use concrete Traffic Manager endpoint APIs in tests Update Traffic Manager scenario tests to use the generated external endpoint resource and collection APIs instead of the obsolete generic endpoint wrappers. Point assets.json at fixed recordings with concrete ExternalEndpoints IDs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update Traffic Manager recordings for endpoint tests Point Traffic Manager tests at recordings with concrete ExternalEndpoints IDs and matching endpoint delete request URIs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Update Traffic Manager changelog Document the deprecation of generic Traffic Manager endpoint wrapper APIs in favor of endpoint-specific APIs. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix fixed path segment handling in mgmt generator Fixes #60707 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fix mgmt mocking cref for generic parameters Format generic parameter types with XML doc braces when building mocking cref strings, and add a management TypeSpec test project query-array repro. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Polish generic cref formatter test coverage Remove the stale :C comment from mocking cref construction and cover nested generic XML doc cref formatting. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Document generic cref workaround Add a TODO linking to the upstream TypeSpec feature request so the local XML doc cref formatter can be removed when base generator support exists. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…itters (#60717) Bump @azure-tools/typespec-azure-rulesets, @azure-tools/typespec-client-generator-core, and @azure-tools/typespec-azure-resource-manager from 0.69.1 to 0.69.2 in the http-client-csharp and http-client-csharp-mgmt emitter packages so the new client-sdk ruleset (added in 0.69.2) is available during SDK generation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ed helper (#60108) * Initial plan * Consolidate duplicate structured message encoding into ContentHasher.ApplyUploadEncodingInternal helper Co-authored-by: amnguye <48961492+amnguye@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Fix missing structured message namespace import in upload encoding helper Co-authored-by: amnguye <48961492+amnguye@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: amnguye <48961492+amnguye@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…0780) Bumps [ws](https://github.com/websockets/ws) from 8.20.1 to 8.21.0. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@8.20.1...8.21.0) --- updated-dependencies: - dependency-name: ws dependency-version: 8.21.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…60773) Co-authored-by: Eldert Grootenboer (from Dev Box) <egrootenboer@microsoft.com>
* Initial plan * Use authenticated .npmrc template in Client.Plugin CI Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com> * Remove comment from Client.Plugin ci.yml npmrc step Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: jorgerangel-msft <102122018+jorgerangel-msft@users.noreply.github.com>
#60781) Bumps [ws](https://github.com/websockets/ws) from 8.20.1 to 8.21.0. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](websockets/ws@8.20.1...8.21.0) --- updated-dependencies: - dependency-name: ws dependency-version: 8.21.0 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Remove CFSClean network isolation policy CFSClean should not be enabled while packages are still published directly to NuGet instead of through ESRP. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Document CFSClean policy exclusion Clarify that CFSClean should remain disabled until packages publish through ESRP instead of directly to NuGet. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* [CODEOWNERS] Provisioning support owners The focus of these changes is to add an official ownership path for all Provisioning-related support issues. After moving provisioning libraries for locality with the associated service, ownership was lost and in many cases is wrongly attributed to service partners. * Fixing provisioning duplication and ordering * Update .github/CODEOWNERS
Co-authored-by: azure-sdk <azuresdk@microsoft.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* Common functions added for auto-release scenario * Fix escaping Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Added shared template * Reset variable in catch block and added tests --------- Co-authored-by: Ray Chen <raychen@microsoft.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: azure-sdk <azuresdk@microsoft.com>
These are needed to avoid unnecessary masking in logs for CI live tests Co-authored-by: Fabian Meiswinkel <fabianm@microsoft.com>
…ation - .NET-6535873 (#60598)
….0.0-alpha.20260708.6 (#60793) * Regenerate repository SDK with TypeSpec build 20260708.6 * Update SDK code st_wo_17 * Update Traffic Manager tests for fixed endpoint type APIs Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: azure-sdk <azuresdk@microsoft.com> Co-authored-by: Dapeng Zhang <dapzhang@microsoft.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.