psanford / wormhole-william

End-to-end encrypted file transfer. A magic wormhole CLI and API in Go (golang).
MIT License
1.07k stars 54 forks source link

Distributing on npm #87

Closed bakkot closed 1 year ago

bakkot commented 1 year ago

Hi! I'm ~planning on~ distributing the binaries from this project (with attribution) on npm, the package manager for JavaScript. This is a very convenient way for JS devs who already have node installed to use this project - it is just be a matter of running npx magic-wormhole, no manual downloads necessary.

(Yes, it's a little scary that everyone is so comfortable with this, but leave that aside.)

I wanted to give a heads up here in case you'd like me to take it down, or alternatively if you'd like to make this official, in which case I would be very happy to send a PR which adds a GitHub action which automatically publishes the new binaries whenever a GitHub release is created.

This is not the same as making it possible to use this project from JavaScript; that's more work (which I started here but never got back to). It'll just be a convenient way of distributing the binaries.

Jacalz commented 1 year ago

It seems like something rather scary. My personal opinion is that there are better ways of distributing binaries. It almost seems like abusing how npm rather than a sensible way to distribute binaries but that's just my opinion :sweat_smile:

bakkot commented 1 year ago

It definitely is kind of abusing npm, but it's extremely convenient for people who already have npm installed. I'm not aware of any more convenient way of distributing binaries for multiple platforms, but maybe you have a suggestion?

(I should mention also that I didn't invent the approach - it's used by esbuild, which is a widely-used build tool in the JS ecosystem.)

duckinator commented 1 year ago

It would definitely be nice to have an easier way to get the binary downloads, especially for folks that don't use node/npm.

An approach I've seen before would be an easy-to-remember domain/subdomain which redirects to individual downloads -- e.g. /$FILE (or /download/$FILE) to https://github.com/psanford/wormhole-william/releases/latest/download/$FILE.

(But that assumes the maintainer[s] consider the benefit to outweigh the monetary + effort cost, which may not be the case.)

Jacalz commented 1 year ago

I don't know of any good cross-platform tools for installing on all platforms but there are a few other good ways to distribute binaries (and that actually are made for doing so). On Windows, you can use WinGet (the new official package manager for Windows) or potentially even Chocolatey or Scoop. On macOS, you can use Brew. I belive this to be a better option than abusing a JavaScrip package site.

piegamesde commented 1 year ago

cross-platform tools for installing on all platforms

That's not how things work. Every platform has its own easiest way to install packages, which should be used.

Jacalz commented 1 year ago

I think this probably can be closed to be honest

bakkot commented 1 year ago

Yeah, this was just meant to be informative.