-
Notifications
You must be signed in to change notification settings - Fork 332
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
Remove Bower support, make it it's own package #148
Comments
👎 As I mentioned already.. if anything we should speed it up if running slower than older version, but adding support for more packages for this kind of tool is totally a good idea :) It's like |
The problem with adding support for more packages is you are increasing the dependencies (and those deps have deps, increasing installation time and size, for a subset of users). There is already a built in way in bower and an npm package to update bower. If anything this project should remain NPM only (as it's right in the name) and a fork should be created called update-packages or something of that nature. This package was intended to check npm packages for updates and should not deviate from this course because 4 people wanted to add bower bloat to this package. I know @lipis personally wanted this feature because he uses bower, but he is biased on this issue. I myself would benefit if this package supported JSPM but I don't think it's a good idea to have it in this package, separate npm packages would be ideal. You can have another package (maybe update-packages) that can have optional deps for npm-check-updates, jspm-check-updates, webpack-check-updates and allow a single cmd to update them. As @metaraine puts it "It's better to split things up into independent, modular pieces as much as V3 wastes time and space installing bower & it's dependencies for people who don't use bower. You would still need to run the cmd 2 times, 1 for npm, 1 for bower. In fact it would be easier to run |
For the time being I think it should stay, mainly because it's already in. We can use the coming weeks to learn what a check update engine needs to support and once we feel comfortable with that, we can separate the engine from the specific package manger implementation. That way, it would be easy to support the next shiny package manger. I'm not worried about the extra space and time in a global module (it's not like it adds an extra 100MB). What does worry me, is that we need to support different PMs in the same place (code base, issues area etc.), which increases the noise and hurts stability. For example you get a specific issue with Bower, you fix that and you suddenly broke something in npm. |
Thanks, Robert, for providing your thoughts and insight. I can see arguments for both sides currently, and I'm interested in hearing out other opinions to come to a decision. I agree that packages that should do one thing, and do it well. One reason for including bower was that the update logic is identical. The core of npm-check-updates is reading semver versions from a JSON file, requesting the latest versions from a package manager, and reporting newer versions. This core logic can work for many package managers. The only difference is in querying the package manager, which currently is decoupled from the core logic. It is a good question whether that should be further decoupled by using separate packages. You stated that there is already a package that does this for bower. I don't believe this is true, as I searched and only found two packages[1][2], one of which is an exact clone of npm-check-updates, and both of which have already added deprecation notices in favor of using npm-check-updates. Regardless, the discussion about modularity still stands. 1. If we split An issue could be specific to npm-check-updates, but actually the bug is in check-updates-core. Does this repo continue as-is, or be changed to core? I am concerned about fragmenting support, which is currently consolidated and easy to manager. 2. Can we install specific packages on-demand? So, the first time you run (Side Note: I am concerned that v3 is running slower than v2, and I am not sure why that occurs. The requests are the same, it was just refactored to use Promises. Maybe there are some blocking tasks in the pipeline that can be parallelized. I will open a separate issue for this.) |
|
+1 for separation of concern. Bower is another topic. It should be in a separate project. |
+1 It should be in a separate project. |
I use ncu on a daily basis and when there are many dependencies ncu takes a long time to complete. I think separating them seems like a better idea. Besides, I don't really think there needs to be a |
@subjectix Separating them will not speed up your task.. since that kind of expected when you have many dependencies.. I mean it will have to check for each dependency if there is an update before showing the results. The only downside (if someone could consider that a downside) when adding more support is the actual installation time and the size of the package it self. If done correctly nothing else could go wrong.. so lets close this issue and fix the speed, if that's related to the latest updates. |
@lipis Can't say I don't agree. You are right, that shouldn't affect the speed. |
It doesn't bother me that it includes bower but I see the point of those that do not use it. People will install this globally and use it as a tool so why can't it include bower and potentially other variants? |
I agree that bower support should live in a separate package, or better just removed (sorry). As a maintainer of many popular JS libraries, I would like to see Bower to go away from our lives for good. NPM all the way. |
@mourner What else you don't like in this world? Maybe we could also start removing other things in general.. Is Grunt ok? Maybe C++..? |
@mourner I used to like bower a lot more but now I can only see one benefit and that's being able to install clientside libraries in a specific folder i.e. |
@lipis not to bash anyone using Bower — it's a great tool that has served a great purpose, but at this moment it simply harms the JS ecosystem and is clearly superseded by NPM while being a pain to support for library authors. In addition, Bower is pretty much not developed anymore. For a sample discussion of why JS maintainers don't want to support it anymore, see for example reduxjs/redux#944 or bower/bower#1520. @sidonaldson in practice, you would bundle your scripts for the app anyway no matter what package manager you use (or use CDN links), so it's not a big deal. |
Thanks for the input everyone. I'm going to encourage people to avoid discussing the broader question of bower vs npm here. This issue has to due with whether bower support should be part of npm-check-updates are separate. bower support is already implemented, so pure for/against arguments are moot. We're just discussing the best architecture for npm-check-updates. |
For what it's worth (and since I'm currently the main contributor to this library), I'm leaning towards either removing it or having it install-on-demand if I can pull that off. |
@metaraine Still not sure why you should do that.. but in the end of the day.. that is your project.. |
I am hearing that others have a desire to separate it out. I consider it
|
Another reason why to separate it out. This project needs to run ncu on itself, bower is outdated :) But Bower is now a dead project... Long live WebPack and JSPM! |
Please remove Bower. Dead project, and makes the dependency tree for this package insane. |
🎉 REJOICE 🎉 |
Rejoices 🎉🎊🎉🎊🎉🎊🎉🎊
|
Just updated to v3 and wondered why NPM was installing bower and a bunch of other crap bower needs.
We don't all use or need Bower. I myself use JSPM. There is already and easy built in way to use the latest bower packages within bower, there is also a similar tool available.
I vote to remove bower from this package. Bower support should be a seperate package. This violates NPM/GNU philosophy of small packages that do one thing.
I would like a jspm-check-updates but I would not want it in the same package.
Remove Bower support and move it to it's own package., this was a mistake and you will get more backlash than praise. People are moving away from bower to stuff like JSPM and WebPack.
Bower has increased the installation size and increased dependencies that won't be needed if bower is not used. I'm sure if I JSPM support was added, those who don't use JSPM would be ticked about having an increased install/update time, increased space, and longer processing.
It's also runs slower than the latest v2. I will be downgrading :(
The text was updated successfully, but these errors were encountered: