-
Notifications
You must be signed in to change notification settings - Fork 602
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
So many dependencies.... #1417
Comments
If we shrink the number of our dependencies in favor of lodash, then the download size goes up:
If we simply switch over to using the lodash module versions of things we are already using ( So we're trading one metric (dep count) for another (download size), and I don't think either one really matters-- at least not in this scenario. But using small, focused modules that are doing the job we need and nothing more offers a bigger win than the other options at this point, doesn't it? |
I'm worried about the bus-factor (seeing as most of these libraries are owned and maintained exclusively by you). |
I don't understand how that's relevant? |
If you're hit by a bus and there's a problem, we have to actually figure out what to do. More maintainers and more users usually means more coverage in case there's a problem. It also means that people who need to debug a problem have to go look at how arrify works (and how it's different from castArray). I'm just a smidge worried because creating so many packages hints at a case of NIH syndrome. |
Gotcha on the bus part. If you need fixes on the modules and I'm not... available... you can transition to a new one after the appropriate grieving period :) I only wrote one of the modules which you mentioned above, the other two are @sindresorhus. Small modules is an npm philosophy. This is not NIH syndrome. This is npm and Node. |
OK you own only one of the dependencies for all of gcloud-node? I thought it was more when I looked last.... |
In the case of |
No, I own a few ( |
Would you like me to make anyone owners on the other modules I own? I would gladly drop most of them in the GoogleCloudPlatform org. |
I get that Node "does lots of packages" (even though it leads us to do some stuff I can't say I fully agree with -- see http://www.haneycodes.net/npm-left-pad-have-we-forgotten-how-to-program/). My worry is simply that we're taking dependencies on a lot of things rather than a few larger (likely better maintained) things. I noticed a few patterns when looking through our deps:
as always, point out where i have things wrong. im all for languages doing things their own way, but i cant say i understand the 30+ deps where 10+ are utility/stream-focused.... any help you can offer would be appreciated. stuff to be swapped by (say) lodash
stuff to be swapped with (say) mississippi or mississippi2
stuff that seems googley and might be better owned elsewhere
libs owned by stephenplusplus
ones that i guess seem ok...
|
We use it where we need multiple inheritance, which Node doesn't support out of the box. A Pub/Sub I don't want to point out where you're wrong, you're just stating your thoughts. But to respond to your points:
We have a big library that supports many unique APIs, which is why we have many dependencies. Instead of being a thin layer on top of an HTTP transport, we set out to decorate things so that the user is happier. That carried with it the cost of dependencies.
I'll need to do a deeper dive into what
Streams are hard, the number of libraries reflects the number of scenarios, use cases, and problems that need to be solved. Mississippi is just a wrapper around some of them, but not the ones we need.
As stated above, I'm willing to move repos or add owners to make the concerned parties feel more comfortable.
For the google-themed modules, see above. For the bus factor, I answered that earlier in the thread. For the "NIH syndrome", I addressed that earlier in the thread as well as in this post. |
Uhm, |
Gotcha -- if we really think we're doing the right thing, then this LGTM. I'll close by EOD unless we get a bit more feedback. |
I will close on your behalf, but just re-open if you still wanted to invite anyone to the discussion. |
I think the most important part of this discussion is the part about the "googley" packages (though maybe not |
👍 to everything. I'll start by adding you both to the googley packages and as npm owners. |
Done!
|
Quite a few of these are really small, and mention that the functionality might already be included by something like lodash... Since we're depending on so many, is it time to make the cut over to use lodash or similar? Also, lodash has modularized packages that might be worthwhile...
etc
The text was updated successfully, but these errors were encountered: