release: publish the GPL binaries to npm as @blit-sh/bin-gpl - #157
Merged
Conversation
|
indent
Bot
force-pushed
the
npm-bin-skip-gpl
branch
from
August 2, 2026 23:40
3bf9d29 to
5522b83
Compare
Coverage
|
The 0.43.0 release added blit-gpl_* tarballs, and build-npm-bin-packages, which
scans every *.tar.gz, read "blit-gpl" as a version and aborted ("conflicting
versions in artifacts: 0.43.0 vs blit-gpl") — so publish-bin-npm failed and
@blit-sh/bin is still 0.42.0 while core/browser are 0.43.0.
Give those artifacts their own package set instead of skipping them:
@blit-sh/bin-gpl plus @blit-sh/bin-gpl-linux-<cpu>[-musl], licensed
GPL-2.0-or-later, so a consumer can take the x264 build off npm rather than
unpacking a release tarball behind a hand-maintained digest pin. Both launchers
ship the same npm/bin sources, and resolve.js now reads its own package name to
know which platform packages to look for. The GPL launcher omits the CLI shim so
it installs alongside @blit-sh/bin without both claiming the `blit` bin name.
indent
Bot
force-pushed
the
npm-bin-skip-gpl
branch
from
August 2, 2026 23:48
5522b83 to
b12e673
Compare
jsegaran
approved these changes
Aug 2, 2026
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.
publish-bin-npmhas been red since 0.43.0, so npm still has@blit-sh/bin0.42.0 while@blit-sh/coreand@blit-sh/browserare at 0.43.0:#152/#154 added
blit-gpl_*tarballs to the release, andbin/build-npm-bin-packagesscans every*.tar.gz; stripping theblit_prefix offblit-gpl_0.43.0_linux_x86_64leaves the name untouched, so it readblit-gplas the version.Rather than skipping those artifacts, this publishes them:
@blit-sh/bin-gplplus@blit-sh/bin-gpl-linux-{x64,arm64}[-musl], licensedGPL-2.0-or-later, so anyone who wants the x264 build can take it off npm instead of unpacking a release tarball behind a hand-maintained digest pin.Details worth a look:
npm/binsources.resolve.jsused to hardcode@blit-sh/bin-…; it now reads its own package name, so one copy serves both flavors and the "no prebuilt binary" message names the right package.binfield. Two packages claiming theblitshim would collide wherever both are installed (neo will have both: GPL for linux boxes, MIT for the macOS desktop). Spawn its default export, or usecurl -sf https://install.blit.sh | BLIT_GPL=1 shfor a CLI.licenseisGPL-2.0-or-lateron the GPL packages and staysMITon the rest. Windows and macOS have no GPL build, so that set is unchanged.Verified
Ran the script over a fixture artifact set holding both flavors (
blit_0.43.0_{linux,linux-musl}_{x86_64,aarch64},blit_0.43.0_darwin_aarch64,blit_0.43.0_windows_x86_64.zip, and the fourblit-gpl_*): it generates the ten platform packages plus both launchers at0.43.0, with.publish-orderlisting platform packages first. The same fixtures reproduce the CI error onmain.npm packed@blit-sh/bin,@blit-sh/bin-gpland their linux-x64 platform packages and installed all four into one project:require/importof each launcher resolves to its own binary (@blit-sh/bin→ the MIT one,@blit-sh/bin-gpl→ the GPL one),candidatePackages()returns the right prefixes, andnode_modules/.binholds exactly oneblit.Tag
@indentto continue the conversation here.