-
Notifications
You must be signed in to change notification settings - Fork 19
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
Add group for @angular/cli #24
base: master
Are you sure you want to change the base?
Conversation
@meltedspark I believe this grouping will not work with Greenkeeper as it is today because at least some of those dependencies have wildly different versions. This is stated in their docs:
If it really is breaking that much with some combination of those dependencies I guess I would make sense to put it into this fixed or locked mode, like both the regular Angular and Angular Material releases. |
Unfortunately making such a change is not up to me since I'm not one of the Angular CLI maintainers. |
@meltedspark yeah I think the only options you have are:
or
|
i'm curious if someone from the greenkeeper team could confirm if this is still the case or if the docs need to be updated. i would think that this change on the greenkeeper side of things would take care of the independent versioning.
please don't go this route. as a package consumer, fixed/locked mode is my biggest complaint about projects moving to monorepos. while it may make things simpler for maintainers, it removes all of the information that semantic versions are intended to convey to consumers when packages change independently. fixed/locked mode just pushes the complexity to consumers by forcing them to update everything every time even a small change is needed in a single package. |
Agree on both counts, though I'm not completely sure about if the commit solves this case or not.
Kinda disagree with this for this case and for the general case for when many libraries are very interconnected. Locking versions means that all the packages locked together can take advantage of any new API features contained in those locked packages without having to change which dependency they depend on, which in turn would arguably cause a major version bump to the dependency. It also makes it very ambiguous and requires a bit of an investigation to find out which dependencies fit with each other, if you are not simply on the latest for each package. So the more connected your packages are and the greater number of such connections you have, the greater effort I see is also placed on the consumers of said dependencies to keep track of which package versions go with which. And so I definitely think Angular with it's like ~10 packages does well in having locked releases to the packages in the main public Angular monorepo. With 9 packages being in the That said, I'm not really even sure how many consume those specific packages as you can use the Angular CLI without it. Also have not looked very closely at exactly how all of these relate to each other and at what state each package is in. Regardless, putting the issue in there will not guarantee it's implementation in any stretch of the imagination, might only make someone in the team consider it. At which point it might be implemented or that they have some good reason for not going with this. |
for more evidence that the docs are out of date, i added gatsby to the monorepo definitions recently, and they do not use locked mode. this PR shows that greenkeeper can still handle the various versions that were released at the same time. |
enzyme does not use locked mode (and i would find it horrific to do so), and it's been present in these monorepo definitions nearly from the day the feature was released to the public. |
Thanks everybody for participating. I suppose now we should patiently wait for the approval. |
Looking at Angular-cli more closely I think they already have two different groups of locked releases. One on version 7.1.x and another at 0.11.x. Where they've updated both simultaneously in at least the last two releases. This also shows that the grouping in this PR matches what happens at Angular-cli: release commit. With GreenKeeper supporting different versions it shouldn't matter then that there are two groups either.
I figure that locked releases lend themselves much more to a scheduled release cycle like Angular and to some degree Angular-cli with about one every week. In which you will often get an update in each package every release. Where I think such schedules further lend themselves to projects which can place developers to work on them as their regular 9 to 5 job. Even with the premise of it only benefitting the maintainers, as stated by @travi, I think that I as a consumer would in general prefer the maintainer spending as little time maintaining legacy version compatibility and as much time simply focusing on developing new features. |
Any update? |
Pending a fix/merge of this PR: greenkeeperio/monorepo-definitions#24
Angular CLI is an integral part of Angular ecosystem but Angular can be used without it as well.
However, each Angular CLI release consists of multiple packages (monorepo, just like Angular) and therefore these packages should be grouped in greenkeeper in a separate group.
Currently every project that depends on one of the packages from @angular-devkit scope will break upon every release.
Here is an example for that (having this issue every time).