Use published packages for stable releases#4566
Open
jakebailey wants to merge 6 commits into
Open
Conversation
Add a disabled release packaging mode that builds VSIXes from a pinned published TypeScript package alias instead of locally built npm packages. The mode skips package build/sign/pack, fetches platform tarballs with npm using configured registry settings, and copies each package lib directory into the VSIX.
Error when the published TypeScript alias used for VSIX packaging does not match the release version, so stale published bits cannot be packaged accidentally.
Keep usePublishedPlatformPackagesForVsix as a hardcoded release-branch boolean instead of a CLI or environment option, so publishers do not need to pass extra configuration.
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the release packaging flow so VSIX builds can optionally source platform-specific native binaries from already-published npm packages (instead of rebuilding/signing/packing them locally), which better matches stable release branch needs.
Changes:
- Add
tar(and@types/tar) to support unpacking platform tarballs during VSIX packaging. - Introduce
usePublishedPlatformPackagesForVsixflow inHerebyfile.mjsto fetch platform packages vianpm packand extract theirlib/for inclusion in VSIXes. - Add a
typescript7alias dependency in the extension workspace to readtypescript’soptionalDependencieslist for platform package version resolution.
Reviewed changes
Copilot reviewed 3 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| package.json | Adds tar + typings to support unpacking published platform tarballs. |
| package-lock.json | Locks tar deps and the new typescript7 workspace devDependency + optional platform packages. |
| Herebyfile.mjs | Implements the “use published platform packages” VSIX packaging path (fetch + extract + wire into pack task). |
| _extension/package.json | Adds typescript7 alias to make the published TypeScript platform optionalDependencies available during release packaging. |
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.
This adds code to turn on in the release branch that pulls the code from npm instead of rebuilding it.
Janky, because npm does not install the other platform's packages so we can't simply depend on them (sigh).