Skip to content

Specs/add common package ref test#4382

Open
iscai-msft wants to merge 7 commits into
Azure:mainfrom
iscai-msft:specs/addCommonPackageRefTest
Open

Specs/add common package ref test#4382
iscai-msft wants to merge 7 commits into
Azure:mainfrom
iscai-msft:specs/addCommonPackageRefTest

Conversation

@iscai-msft
Copy link
Copy Markdown
Contributor

No description provided.

iscai-msft and others added 2 commits May 5, 2026 14:08
Add azure-http-specs test scenario that demonstrates using @alternateType
with ExternalType to reference types from a pre-existing typespec-defined
common package. Each language emitter specifies its own generated package
coordinates for the Address model type.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a models-only TypeSpec package outside the specs/ directory that
defines the shared Address model. This represents the pre-existing
typespec-defined package that the common-package-ref test references
via @alternateType with ExternalType.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@microsoft-github-policy-service microsoft-github-policy-service Bot added the lib:azure-http-specs For issues/prs related to the @azure-tools/typespec-azure-http-specs package label May 5, 2026
Move the common-types TypeSpec definition inside the specs/ directory as
a proper spector package with @service and @scenarioService but no
operations. Add an empty mockapi.ts to satisfy spector validation.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-sdk
Copy link
Copy Markdown
Collaborator

azure-sdk commented May 5, 2026

All changed packages have been documented.

  • @azure-tools/azure-http-specs
Show changes

@azure-tools/azure-http-specs - feature ✏️

Add common package reference test for @alternateType with ExternalType. This test demonstrates using @alternateType to reference types from a pre-existing typespec-defined common package, where each language emitter specifies its own generated package coordinates. Includes a models-only common-types spector package defining an Address model.

@azure-sdk
Copy link
Copy Markdown
Collaborator

azure-sdk commented May 5, 2026

You can try these changes here

🛝 Playground 🌐 Website

@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented May 5, 2026

Open in StackBlitz

npm i https://pkg.pr.new/@azure-tools/azure-http-specs@4382

commit: 0196bf2

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 5, 2026

⚡ Benchmark Results

⚠️ 6 metric(s) regressed above the +5% threshold:

Metric Baseline Current Change
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.3ms +7.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.1ms 🟢 1.4ms +27.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🔴 22.0ms 🔴 29.9ms +35.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 4.6ms 🟢 5.0ms +8.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.1ms +5.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.2ms 🟢 1.2ms +644.3% 🔴
Full details – comparing ba27818 vs baseline 4f31368
Metric Baseline Current Change
total 🔴 797.7ms 🔴 771.3ms -3.3%
loader 🟢 147.7ms 🟢 146.0ms -1.1%
resolver 🟢 21.1ms 🟢 19.9ms -5.7% 🟢
checker 🟢 190.5ms 🟢 184.7ms -3.1%
validation 🟢 41.5ms 🟢 40.6ms -2.2%
 ↳ validation/@azure-tools/typespec-azure-core 🟢 6.0ms 🟢 5.8ms -3.3%
 ↳ validation/@typespec/http 🟢 5.7ms 🟢 5.9ms +4.5%
 ↳ validation/@typespec/rest 🟢 0.7ms 🟢 0.6ms -12.6% 🟢
 ↳ validation/@typespec/versioning 🔴 27.3ms 🔴 26.6ms -2.6%
 ↳ validation/compiler 🟢 1.8ms 🟢 1.6ms -8.6% 🟢
linter 🟢 143.7ms 🟢 139.8ms -2.8%
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms -11.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms -10.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 6.0ms 🟢 5.7ms -5.6% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.6ms 🟢 0.6ms -4.9%
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.1ms 🟢 0.1ms +4.5%
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.9ms 🟢 0.8ms -9.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.7ms 🟢 0.7ms -2.2%
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.5ms 🟢 0.2ms -66.9% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.2ms 🟢 0.2ms -5.5% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.6ms 🟢 0.3ms -47.5% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.3ms +7.2% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.3ms 🟢 0.3ms -8.7% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms -9.2% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms -0.6%
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms -4.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.5ms 🟢 0.5ms -7.7% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.4ms 🟢 0.4ms -6.4% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🔴 26.1ms 🟡 17.9ms -31.4% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.1ms 🟢 1.4ms +27.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.1ms 🟢 0.1ms -4.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.2ms 🟢 0.2ms -9.0% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.3ms 🟢 1.3ms +0.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 2.0ms 🟢 1.9ms -6.9% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 2.1ms 🟢 1.9ms -7.5% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🟡 19.7ms 🟡 19.3ms -1.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 21.2ms 🔴 20.2ms -4.4%
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms -18.8% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 5.0ms 🟢 5.0ms -0.2%
 ↳ linter/@azure-tools/typespec-azure-core/no-rpc-path-params 🟢 0.2ms 🟢 0.2ms -3.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-string-discriminator 🟢 0.1ms 🟢 0.1ms -10.1% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.2ms 🟢 0.2ms -0.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.3ms -7.5% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms -8.8% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.3ms 🟢 0.2ms -13.8% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms -18.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🔴 22.0ms 🔴 29.9ms +35.9% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.3ms -7.8% 🟢
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.3ms 🟢 0.3ms -4.0%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 4.6ms 🟢 5.0ms +8.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms -7.6% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 5.9ms 🟢 5.2ms -11.9% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms -1.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms -19.7% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 6.3ms 🟢 6.2ms -2.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.4ms 🟢 0.4ms -5.4% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.6ms 🟢 0.6ms -2.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms -5.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.3ms 🟢 0.3ms -3.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.1ms -0.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms -5.5% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +3.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms -5.9% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.1ms 🟢 0.1ms +1.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.3ms 🟢 0.3ms +3.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms -12.4% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.2ms 🟢 0.2ms -4.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 7.0ms 🟢 6.8ms -3.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.4ms 🟢 0.4ms -7.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms -1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms -10.1% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms -7.4% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.2ms 🟢 0.2ms -5.2% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms -10.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 18.6ms 🟡 17.8ms -4.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms -11.8% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms -4.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.2ms 🟢 0.1ms -11.3% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.2ms 🟢 0.2ms -1.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🔴 25.6ms 🔴 25.5ms -0.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.1ms 🟢 0.1ms +5.0% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.2ms 🟢 1.2ms +644.3% 🔴
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 3.7ms 🟢 2.8ms -24.9% 🟢
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.4ms 🟢 0.4ms -1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms -6.3% 🟢
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 1.1ms 🟢 1.1ms -3.2%
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms -8.1% 🟢
emit 🟡 253.2ms 🟡 240.4ms -5.1% 🟢
 ↳ emit/@azure-tools/typespec-autorest 🟢 158.7ms 🟢 150.3ms -5.3% 🟢
 ↳ emit/@typespec/openapi3 🟢 141.6ms 🟢 135.1ms -4.6%
 ↳ emit/@typespec/openapi3/compute 🟢 126.4ms 🟢 119.7ms -5.3% 🟢
 ↳ emit/@typespec/openapi3/write 🟢 15.1ms 🟢 15.3ms +1.2%

Averaged across 3 specs (azure-arm-resource-manager, azure-core-dataplane, azure-full).
Threshold: changes > ±5% are highlighted.
🟢 Fast · 🟡 Moderate (stages >200ms, rules >10ms) · 🔴 Slow (stages >400ms, rules >20ms)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lib:azure-http-specs For issues/prs related to the @azure-tools/typespec-azure-http-specs package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants