Skip to content

Use catalog: specifier for tslib in azure-sdk-for-js monorepo packages#4570

Merged
JialinHuang803 merged 4 commits into
Azure:mainfrom
jeremymeng:jeremymeng/tslib-catalog-specifier
Jun 29, 2026
Merged

Use catalog: specifier for tslib in azure-sdk-for-js monorepo packages#4570
JialinHuang803 merged 4 commits into
Azure:mainfrom
jeremymeng:jeremymeng/tslib-catalog-specifier

Conversation

@jeremymeng

Copy link
Copy Markdown
Member

Generated package.json files for the azure-sdk-for-js monorepo were pinning tslib to a hard-coded version (^2.8.1). The monorepo manages shared tool/runtime versions through pnpm's catalog feature (see pnpm-workspace.yaml), and other deps like typescript, eslint, rimraf, etc. are already emitted as catalog:. tslib was the odd one out, requiring a manual edit each regeneration to stay in sync with the workspace catalog.

This switches the runtime dependency emitted by buildAzureMonorepoPackage to tslib: 'catalog:' so it picks up whatever the monorepo's catalog has pinned (^2.8.1 today). Standalone (non-monorepo) generators in azurePackageCommon.ts / packageCommon.ts are intentionally left untouched, since catalog: would not resolve outside the workspace.

Verified by running the packageJson.test.ts test-next suite (51/51 passing) and a pnpm -r --filter '@azure-tools/typespec-ts...' build.

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

azure-sdk commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

All changed packages have been documented.

  • @azure-tools/typespec-ts
Show changes

@azure-tools/typespec-ts - fix ✏️

Use the catalog: pnpm workspace specifier for the tslib dependency when generating package.json for the azure-sdk-for-js monorepo.

@pkg-pr-new

pkg-pr-new Bot commented Jun 5, 2026

Copy link
Copy Markdown

Open in StackBlitz

npm i https://pkg.pr.new/@azure-tools/typespec-ts@4570

commit: 7f4f033

@azure-sdk

azure-sdk commented Jun 5, 2026

Copy link
Copy Markdown
Collaborator

You can try these changes here

🛝 Playground 🌐 Website

@github-actions

github-actions Bot commented Jun 5, 2026

Copy link
Copy Markdown
Contributor

⚡ Benchmark Results

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

Metric Baseline Current Change
total 🔴 655.0ms 🔴 752.2ms +14.8% 🔴
checker 🟡 202.6ms 🟡 249.0ms +22.9% 🔴
linter 🟢 144.5ms 🟢 154.1ms +6.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🔴 20.9ms 🔴 22.5ms +7.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🔴 21.1ms 🔴 22.6ms +6.8% 🔴
Full details – comparing 208b46a vs baseline 38703e5
Metric Baseline Current Change
total 🔴 655.0ms 🔴 752.2ms +14.8% 🔴
loader 🟡 212.2ms 🟡 210.1ms -1.0%
resolver 🟢 17.4ms 🟢 18.1ms +4.1%
checker 🟡 202.6ms 🟡 249.0ms +22.9% 🔴
validation 🟢 45.6ms 🟢 47.7ms +4.5%
 ↳ validation/@azure-tools/typespec-azure-core 🟢 7.0ms 🟢 7.3ms +3.4%
 ↳ validation/@typespec/http 🟢 6.0ms 🟢 6.6ms +11.0%
 ↳ validation/@typespec/rest 🟢 0.5ms 🟢 0.5ms +11.3%
 ↳ validation/@typespec/versioning 🔴 30.5ms 🔴 31.1ms +2.2%
 ↳ validation/compiler 🟢 1.5ms 🟢 1.6ms +13.1%
linter 🟢 144.5ms 🟢 154.1ms +6.6% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/auth-required 🟢 0.0ms 🟢 0.0ms +0.8%
 ↳ linter/@azure-tools/typespec-azure-core/bad-record-type 🟢 0.2ms 🟢 0.2ms +6.3%
 ↳ linter/@azure-tools/typespec-azure-core/byos 🟢 6.0ms 🟢 6.3ms +5.0%
 ↳ linter/@azure-tools/typespec-azure-core/casing-style 🟢 0.6ms 🟢 0.7ms +5.7%
 ↳ linter/@azure-tools/typespec-azure-core/composition-over-inheritance 🟢 0.1ms 🟢 0.1ms -1.1%
 ↳ linter/@azure-tools/typespec-azure-core/documentation-required 🟢 0.8ms 🟢 0.8ms +4.5%
 ↳ linter/@azure-tools/typespec-azure-core/friendly-name 🟢 0.6ms 🟢 0.6ms -4.7%
 ↳ linter/@azure-tools/typespec-azure-core/key-visibility-required 🟢 0.2ms 🟢 0.2ms +4.1%
 ↳ linter/@azure-tools/typespec-azure-core/known-encoding 🟢 0.3ms 🟢 0.3ms +6.3%
 ↳ linter/@azure-tools/typespec-azure-core/long-running-polling-operation-required 🟢 0.3ms 🟢 0.3ms +3.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-case-mismatch 🟢 0.2ms 🟢 0.3ms +4.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-closed-literal-union 🟢 0.2ms 🟢 0.3ms +14.3%
 ↳ linter/@azure-tools/typespec-azure-core/no-enum 🟢 0.0ms 🟢 0.0ms +6.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-error-status-codes 🟢 0.1ms 🟢 0.1ms +3.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-explicit-routes-resource-ops 🟢 0.1ms 🟢 0.1ms +17.6%
 ↳ linter/@azure-tools/typespec-azure-core/no-format 🟢 0.5ms 🟢 0.5ms +0.4%
 ↳ linter/@azure-tools/typespec-azure-core/no-generic-numeric 🟢 0.4ms 🟢 0.4ms +7.1%
 ↳ linter/@azure-tools/typespec-azure-core/no-header-explode 🔴 20.9ms 🔴 22.5ms +7.7% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-legacy-usage 🟢 1.2ms 🟢 1.2ms +0.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-multiple-discriminator 🟢 0.1ms 🟢 0.1ms +3.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-nullable 🟢 0.3ms 🟢 0.3ms +2.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-offsetdatetime 🟢 1.2ms 🟢 1.2ms -0.7%
 ↳ linter/@azure-tools/typespec-azure-core/no-openapi 🟢 1.9ms 🟢 2.2ms +14.8%
 ↳ linter/@azure-tools/typespec-azure-core/no-private-usage 🟢 1.9ms 🟢 2.0ms +6.5%
 ↳ linter/@azure-tools/typespec-azure-core/no-query-explode 🔴 21.1ms 🔴 22.6ms +6.8% 🔴
 ↳ linter/@azure-tools/typespec-azure-core/no-response-body 🔴 26.1ms 🔴 26.4ms +0.9%
 ↳ linter/@azure-tools/typespec-azure-core/no-rest-library-interfaces 🟢 0.0ms 🟢 0.0ms +14.6%
 ↳ linter/@azure-tools/typespec-azure-core/no-route-parameter-name-mismatch 🟢 5.6ms 🟢 5.6ms +1.5%
 ↳ 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.0ms 🟢 0.0ms -3.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-unknown 🟢 0.2ms 🟢 0.2ms +2.0%
 ↳ linter/@azure-tools/typespec-azure-core/no-unnamed-union 🟢 0.3ms 🟢 0.4ms +8.2%
 ↳ linter/@azure-tools/typespec-azure-core/operation-missing-api-version 🟢 0.2ms 🟢 0.2ms +7.7%
 ↳ linter/@azure-tools/typespec-azure-core/request-body-problem 🟢 0.3ms 🟢 0.3ms +5.6%
 ↳ linter/@azure-tools/typespec-azure-core/require-versioned 🟢 0.0ms 🟢 0.0ms +23.9%
 ↳ linter/@azure-tools/typespec-azure-core/response-schema-problem 🔴 24.8ms 🔴 24.9ms +0.1%
 ↳ linter/@azure-tools/typespec-azure-core/rpc-operation-request-body 🟢 0.3ms 🟢 0.4ms +2.3%
 ↳ linter/@azure-tools/typespec-azure-core/spread-discriminated-model 🟢 0.3ms 🟢 0.3ms +1.1%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-names 🟢 6.1ms 🟢 6.1ms +1.1%
 ↳ linter/@azure-tools/typespec-azure-core/use-standard-operations 🟢 0.1ms 🟢 0.1ms +7.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-child-resources 🟢 4.4ms 🟢 4.9ms +10.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-agent-base-type-lifecycle-operations 🟢 0.0ms 🟢 0.0ms +26.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-common-types-version 🟢 4.3ms 🟢 4.6ms +8.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-no-key 🟢 0.1ms 🟢 0.1ms -1.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-custom-resource-usage-discourage 🟢 0.1ms 🟢 0.1ms -3.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-delete-operation-response-codes 🟢 1.2ms 🟢 1.9ms +58.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-path-casing-conflicts 🟢 4.6ms 🟢 5.3ms +15.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-no-record 🟢 0.3ms 🟢 0.3ms -1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-post-operation-response-codes 🟢 0.5ms 🟢 0.5ms +7.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-put-operation-response-codes 🟢 0.0ms 🟢 0.0ms +15.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-action-no-segment 🟢 0.2ms 🟢 0.2ms +2.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-duplicate-property 🟢 0.1ms 🟢 0.1ms -5.7%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-interface-requires-decorator 🟢 0.0ms 🟢 0.0ms +13.2%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-action-verb 🟢 0.1ms 🟢 0.1ms +0.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-envelope-property 🟢 0.1ms 🟢 0.1ms +1.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-invalid-version-format 🟢 0.0ms 🟢 0.0ms -8.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-key-invalid-chars 🟢 0.3ms 🟢 0.3ms +3.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-name-pattern 🟢 0.0ms 🟢 0.0ms +10.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation 🟢 0.2ms 🟢 0.2ms +6.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-operation-response 🟢 4.8ms 🟢 5.6ms +16.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-patch 🟢 0.3ms 🟢 0.3ms +7.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-path-segment-invalid-chars 🟢 0.2ms 🟢 0.2ms +2.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/arm-resource-provisioning-state 🟢 0.1ms 🟢 0.1ms -1.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels 🟢 0.1ms 🟢 0.1ms +4.3%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/empty-updateable-properties 🟢 0.2ms 🟢 0.2ms -0.0%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/improper-subscription-list-operation 🟢 0.0ms 🟢 0.0ms -1.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/lro-location-header 🟡 16.0ms 🟡 16.4ms +2.5%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-operations-endpoint 🟢 0.0ms 🟢 0.0ms +3.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/missing-x-ms-identifiers 🟢 0.3ms 🟢 0.3ms +1.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-empty-model 🟢 0.1ms 🟢 0.1ms +3.6%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-override-props 🟢 0.1ms 🟢 0.1ms -3.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-resource-delete-operation 🟢 0.2ms 🟢 0.2ms -7.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/no-response-body 🔴 23.7ms 🔴 23.2ms -2.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/patch-envelope 🟢 0.2ms 🟢 0.2ms +4.9%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/resource-name 🟢 0.2ms 🟢 0.2ms -2.4%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/secret-prop 🟢 2.1ms 🟢 2.5ms +21.8%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/unsupported-type 🟢 0.4ms 🟢 0.4ms -3.1%
 ↳ linter/@azure-tools/typespec-azure-resource-manager/version-progression 🟢 0.0ms 🟢 0.0ms +7.6%
 ↳ linter/@azure-tools/typespec-client-generator-core/property-name-conflict 🟢 1.1ms 🟢 1.2ms +3.0%
 ↳ linter/@azure-tools/typespec-client-generator-core/require-client-suffix 🟢 0.2ms 🟢 0.2ms +9.7%
emit 🔴 5.79s 🔴 5.78s -0.2%
 ↳ emit/@azure-tools/typespec-autorest 🟢 166.9ms 🟢 172.0ms +3.0%
 ↳ emit/@azure-tools/typespec-python 🔴 4.45s 🔴 4.55s +2.2%
 ↳ emit/@typespec/http-client-js 🔴 1.02s 🔴 844.6ms -17.5% 🟢
 ↳ emit/@typespec/openapi3 🟢 150.7ms 🟢 155.3ms +3.1%
 ↳ emit/@typespec/openapi3/compute 🟢 133.1ms 🟢 138.7ms +4.2%
 ↳ emit/@typespec/openapi3/write 🟢 17.4ms 🟢 16.1ms -7.3% 🟢

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)

@JialinHuang803
JialinHuang803 added this pull request to the merge queue Jun 29, 2026
Merged via the queue into Azure:main with commit 85ebe0d Jun 29, 2026
31 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

emitter:typescript Issues for @azure-tools/typespec-ts emitter

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants