Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

npm packages or modules in homebrew core #638

Closed
xeoneux opened this issue Apr 27, 2016 · 7 comments
Closed

npm packages or modules in homebrew core #638

xeoneux opened this issue Apr 27, 2016 · 7 comments

Comments

@xeoneux
Copy link
Contributor

xeoneux commented Apr 27, 2016

There are a few npm packages/modules in the core tap which can easily be installed via npm.
I found 6 such formulae after a quick search:

  • autocode
  • azure-cli
  • elixirscript
  • generate-json-schema
  • metabase
  • tegh

What's the reason to include them in homebrew core? 😄

@DomT4
Copy link
Contributor

DomT4 commented Apr 27, 2016

People have submitted them to us, and we haven't differed from our Python guidelines; if it's an application, it meets our eligibility guidelines and there's user demand we'll take it.

@xeoneux
Copy link
Contributor Author

xeoneux commented Apr 27, 2016

@DomT4 I get your point. However, some issues arise by bottling up those packages:

  1. Different bottles for different OS X versions serve no purpose.
  2. The bottle installs old dependencies without minor(^) or patch(~) updates
  3. The size of the bottle is huge due to the count of files/modules under node_modules

The npm ecosystem is really different from other packaging environments. Isn't it best left to npm?

A simple cross-platform npm install is more suited than OS X only brew install for a node package.

@xeoneux xeoneux mentioned this issue Apr 27, 2016
4 tasks
@ilovezfs
Copy link
Contributor

These same arguments can be applied equally to brew's handling of Python, Haskell, Go, and Perl resources, as well as probably others I'm forgetting. The design choice to handle such resources the way brew does favors usability and simplicity – only having to learn and maintain one package manager – over what might be ideal from a technical standpoint.

@DomT4
Copy link
Contributor

DomT4 commented Apr 27, 2016

Yeah, ILZ has clearly been poking around my brain this morning without my knowledge because that's pretty much the exact point I was going to make 😄.

Some people are also not keen in things being installed in a global location, and there are usability issues in terms of if you want to stop anything from Homebrew being in the $PATH temporarily you can simply brew unlink it; I'm not sure if such a functionality exists upstream with npm?

Packaging other package managers in general is a rabbit hole, but there's been really quite significant demand for it and we're in the process of actually improving our node support via @chrmoritz's PR.

@ilovezfs
Copy link
Contributor

Rats, I've been caught!

@xeoneux
Copy link
Contributor Author

xeoneux commented Apr 27, 2016

Seems like a reasonable point @DomT4 & @ilovezfs 😄

@xeoneux xeoneux closed this as completed Apr 27, 2016
@chrmoritz
Copy link
Contributor

chrmoritz commented Apr 27, 2016

Just to add a few comments from our recent discussion over at Homebrew/brew#37.

Different bottles for different OS X versions serve no purpose.

This is on the one hand not true for node modules having native addons in their dependency tree (like azure-cli) and on the other hand already the case for quite a few other homebrew formulas.

The bottle installs old dependencies without minor(^) or patch(~) updates

I would consider this as the (from a homebrew point of view) expected behavior and the opposite case as unexpected: Installing the exact same version of a formula from source will result in a completely different dependency tree than a week earlier.

The size of the bottle is huge due to the count of files/modules under node_modules

But npm install must handle the exact same thing with the difference that it does download multiple .tgzarchives (one for each dep version needed) instead of one big bottle containing the same big amount of files. (But npm handles the concurrent installation of them much better than homebrew could do with resources.)

@Homebrew Homebrew locked and limited conversation to collaborators May 4, 2018
# for free to subscribe to this conversation on GitHub. Already have an account? #.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants