Skip to content

Migrate tslib version specifiers to pnpm catalog#38849

Draft
jeremymeng wants to merge 1 commit into
mainfrom
jeremymeng/turbo-adventure
Draft

Migrate tslib version specifiers to pnpm catalog#38849
jeremymeng wants to merge 1 commit into
mainfrom
jeremymeng/turbo-adventure

Conversation

@jeremymeng
Copy link
Copy Markdown
Member

Packages impacted by this PR

All workspace packages that depend on tslib (456 package.json files across sdk/**, common/tools/**, and eng/containers/turborepo-remote-cache).

Issues associated with this PR

N/A

Describe the problem that is addressed by this PR

tslib was pinned independently across workspace packages at a mix of ^1.10.0, ^2.2.0, ^2.6.2, ^2.6.3, ^2.7.0, and ^2.8.1. A tslib: ^2.8.1 entry already exists in pnpm-workspace.yaml under catalog:, so the per-package specifiers were redundant and a source of drift whenever a new package landed with whatever version its template happened to ship.

This PR routes every workspace package through the catalog by replacing the explicit specifier with "tslib": "catalog:", so the version lives in exactly one place.

What are the possible designs available to address the problem? If there are more than one possible design, why was the one in this PR chosen?

The catalog protocol is the pattern this repo already adopted for other shared dev dependencies (typescript, eslint, prettier, tsx, etc.). Extending it to tslib is the lowest-friction option and matches existing convention. The alternative (continuing to pin per package and policing versions via lint) was rejected because it does not prevent drift.

Are there test cases added in this PR? (If not, why?)

No code changes; this is a dependency-spec refactor. Validated locally with pnpm install --lockfile-only - the only pnpm-lock.yaml delta is specifier: lines changing from the previous version range to 'catalog:'. No resolution drift.

Three package.json files under paths explicitly excluded from the pnpm workspace (sdk/identity/identity/integration/**, sdk/identity/identity/test/manual/**) were intentionally left alone since they are not workspace members and cannot reference the catalog.

Provide a list of related PRs (if any)

N/A

Command used to generate this PR:**(Applicable only to SDK release request PRs)

N/A

Checklists

  • Added impacted package name to the issue description
  • Does this PR needs any fixes in the SDK Generator?** (If so, create an Issue in the Autorest/typescript repository and link it here)
  • Added a changelog (if necessary)

Replace explicit tslib version specifiers across all workspace package.json files with "catalog:", consolidating on the single tslib entry (^2.8.1) already defined in pnpm-workspace.yaml. Previously, packages pinned tslib to a mix of ^2.2.0, ^2.6.2, ^2.6.3, ^2.7.0, and ^2.8.1; routing them all through the catalog keeps the version aligned in one place.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Untriaged
Status: No status
Status: Untriaged
Status: Untriaged

Development

Successfully merging this pull request may close these issues.

1 participant