Repository navigation
feat(kiro-extension): universal VSIX that installs on any OS - #36
Merged
Merged
Conversation
A platform-specific VSIX declares TargetPlatform in its manifest, and a
mismatched host refuses to install it. That is right for a registry, which serves
each user their own build, but wrong for handing someone a download link: the
darwin-arm64 file cannot be installed on Windows or Linux at all.
Adds `npm run release:universal`, which packages with no --target and carries
every companion binary staged in bin/. One file, any OS.
- release.mjs gains --universal: omits --target, names the output -universal,
lists which platforms are bundled and warns loudly about any that are missing,
since those users silently get window mode instead of the floating mascot
- build-companion.mjs honours DORAEMON_SKIP_COMPANION so a universal build can
package binaries downloaded from other runners without rebuilding over them
- CI: each platform job now also uploads its bare binary, and a new `universal`
job assembles all four into a single VSIX. upload-artifact drops the
executable bit, so it is restored during staging.
This does not remove the need to build per platform. A native binary still has to
be compiled for each target; the universal VSIX only changes how they are
packaged and distributed. Per-platform VSIXs remain the better choice for Open
VSX, where each user should not download three binaries they cannot run.
Verified locally: the universal manifest contains zero TargetPlatform entries,
installs into Kiro, and the binary it resolves runs ("mascot window ready").
Adds a check that drives the real resolver with each of darwin-arm64,
darwin-x64, win32-x64 and linux-x64 and asserts it selects the matching
bin/<target>/ path, including the .exe suffix on Windows.
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.
A platform-specific VSIX declares TargetPlatform in its manifest, and a mismatched host refuses to install it. That is right for a registry, which serves each user their own build, but wrong for handing someone a download link: the darwin-arm64 file cannot be installed on Windows or Linux at all.
Adds
npm run release:universal, which packages with no --target and carries every companion binary staged in bin/. One file, any OS.universaljob assembles all four into a single VSIX. upload-artifact drops the executable bit, so it is restored during staging.This does not remove the need to build per platform. A native binary still has to be compiled for each target; the universal VSIX only changes how they are packaged and distributed. Per-platform VSIXs remain the better choice for Open VSX, where each user should not download three binaries they cannot run.
Verified locally: the universal manifest contains zero TargetPlatform entries, installs into Kiro, and the binary it resolves runs ("mascot window ready"). Adds a check that drives the real resolver with each of darwin-arm64, darwin-x64, win32-x64 and linux-x64 and asserts it selects the matching bin// path, including the .exe suffix on Windows.