CML too many targets
Looking at our releases and our package.json sounds to me that we have to many targets.
Why do we need specific alpine, linuxstatic and specific platform? node16-linux has worked for me in many linux flavours in the past for me.
[
"node16-alpine-arm64",
"node16-alpine-x64",
"node16-macos-arm64",
"node16-macos-x64",
"node16-linux-arm64",
"node16-linux-x64",
"node16-linuxstatic-arm64",
"node16-linuxstatic-x64",
"node16-win-arm64",
"node16-win-x64"
]
@iterative/cml
linux versus linuxstatic
Including both is rather pointless at this time: as long as we don't depend on native code, they're fully equivalent (although the latter are leaner).
linux versus alpine
Alpine Linux is based on musl instead of glibc like most major distributions, and won't run binaries linked to the latter without installing several compatibility packages.
arm64 versus x86
Cough, cough 🙃
arm64 versus x86 Cough, cough 🙃
usually a x86 program will work on an arm64 via emulation
usually a x86 program will work on an arm64 via emulation
And also the other way around, but it's not practical in many cases:
- Apple processors with Rosetta 2 make running x86 applications seamless :+1:
- Graviton processors running Linux — or even my Raspberry Pi — don't make it that easy :-1: