Skip to content

Proposal: remove .gz downloads for some platforms #1584

Closed
@rvagg

Description

I'd really like to explore ways to simplify our deliverables. The complexity of our infra constantly gets us into trouble.

The Linux kernel stopped offering .gz downloads long ago, so perhaps its time to follow suit? Unfortunately xz isn't on many minimal distributions, like some popular Docker images. e.g. it's not on any debian or ubuntu images, but it is on centos:7. Of course it's a pretty trivial install almost everywhere. But tar does come with everything and -J is natively supported so I'm pretty sure where you have a modern distro, you can unpack .tar.xz files. On alpine:latest you can even do wget https://nodejs.org/download/release/latest-v11.x/node-v11.2.0-linux-x64.tar.xz -O - | tar -Jxv without anything extra installed, none of the Ubuntu or Debian images come with either curl or wget so you have to install stuff anyway.

AIX and macOS are the awkward platforms for .xz files. We don't even offer .xz for AIX and you have to install a third-party package to even use them on macOS. So we could keep offering them there.

Headers are also awkward because they're consumed across all platforms and gzip is easy everywhere. node-gyp even consumes them in native Node with just a gzip stream. Full source packages are similar. So we could keep headers and source as both.

Here's our current list of deliverables:

node-v11.2.0-aix-ppc64.tar.gz
node-v11.2.0-darwin-x64.tar.gz
node-v11.2.0-darwin-x64.tar.xz
node-v11.2.0-headers.tar.gz
node-v11.2.0-headers.tar.xz
node-v11.2.0-linux-arm64.tar.gz
node-v11.2.0-linux-arm64.tar.xz
node-v11.2.0-linux-armv6l.tar.gz
node-v11.2.0-linux-armv6l.tar.xz
node-v11.2.0-linux-armv7l.tar.gz
node-v11.2.0-linux-armv7l.tar.xz
node-v11.2.0-linux-ppc64le.tar.gz
node-v11.2.0-linux-ppc64le.tar.xz
node-v11.2.0-linux-s390x.tar.gz
node-v11.2.0-linux-s390x.tar.xz
node-v11.2.0-linux-x64.tar.gz
node-v11.2.0-linux-x64.tar.xz
node-v11.2.0.pkg
node-v11.2.0-sunos-x64.tar.gz
node-v11.2.0-sunos-x64.tar.xz
node-v11.2.0.tar.gz
node-v11.2.0.tar.xz
node-v11.2.0-win-x64.7z
node-v11.2.0-win-x64.zip
node-v11.2.0-win-x86.7z
node-v11.2.0-win-x86.zip
node-v11.2.0-x64.msi
node-v11.2.0-x86.msi

We could trim that down to:

node-v11.2.0-aix-ppc64.tar.gz
node-v11.2.0-darwin-x64.tar.gz
node-v11.2.0-darwin-x64.tar.xz
node-v11.2.0-headers.tar.gz
node-v11.2.0-headers.tar.xz
node-v11.2.0-linux-arm64.tar.xz
node-v11.2.0-linux-armv6l.tar.xz
node-v11.2.0-linux-armv7l.tar.xz
node-v11.2.0-linux-ppc64le.tar.xz
node-v11.2.0-linux-s390x.tar.xz
node-v11.2.0-linux-x64.tar.xz
node-v11.2.0.pkg
node-v11.2.0-sunos-x64.tar.xz
node-v11.2.0.tar.gz
node-v11.2.0.tar.xz
node-v11.2.0-win-x64.7z
node-v11.2.0-win-x64.zip
node-v11.2.0-win-x86.7z
node-v11.2.0-win-x86.zip
node-v11.2.0-x64.msi
node-v11.2.0-x86.msi

Thoughts @nodejs/build & @nodejs/version-management?

(edit: to be clear, this would be something we do from a particular version forward, not impacting existing release lines. So maybe Node 12+).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions