-
Notifications
You must be signed in to change notification settings - Fork 69
Iterator groupby 2 #89
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
Conversation
Also use pureST where appropriate
Refs #71, improves performance of groupBy.
👍 Looks great, thanks for putting the new version together! |
🎉 |
Is adding a dependency considered a breaking change? I don't think it matters very much in this case. I just stumbled over it while updating the package set. |
I'm not sure, but I'm not aware of any reason to treat it as a breaking change |
Ok, well for now I'll just leave |
What makes it difficult to use the latest version? |
Just that |
I could think of a somewhat convoluted way in which it could be breaking:
I think there is almost zero chance this could be the case in this particular instance, but it would seem that adding dependencies could theoretically be breaking. |
I agree with @garyb. If bumping major versions of dependencies is breaking, then adding dependencies is breaking as well, I'd think. |
If that counts as a breaking change then any modification of dependency version bounds could count as a breaking change, I think, because people are free to use any form of version constraints (we can't assume everyone uses ^ constraints everywhere). Imo it makes more sense to let bower to handle a case like this. I expect it is able to but haven't tested. |
Have we considered separating dependency information (x depends on y) from package sets (x v1.2.3. y v2.3.4, etc all work together)? |
Well, this wasn't the only case, even recently. |
I think, in a perfect world it would not necessarily be breaking because you could have multiple versions in single build. But the issue is whether or not upgrading a minor thing can break your build (the definition of breaking). If this can cause conflicts (breaking your build), then it needs to be a breaking change. |
Likewise bumping major versions of deps is only breaking because people might be importing modules from that dep via a transitive dependency, ie without explicitly listing it as a dependency local to that project. If we made it like Haskell where you have to list something as a dependency to be able to import it we would be able to lift this restriction. I'd very much like to do that eventually. |
Haskell can also deal with multiple versions in a build though, can't it? |
It doesn't break your build though, unless you increase the lower bound in your bower.json. bower should just continue to use the older version. |
Yes, I'd agree if you can have an appropriate lower bound, then that works. |
Kind of, but not very well. You can have multiple versions of a package together in a global package db but nobody does that any more since cabal sandboxes and stack afaik. |
The way I see it this problem is caused by the package set upgrade process not being able to take version bounds into account |
I agree with this (using transitive dependencies is bad), but it's used all over the place in the ecosystem, and it's mainly done to avoid dealing with version bounds for simple things that don't change (like |
Maybe we can make it more comfortable to list all direct dependencies in bower.json with tooling. |
So another point for "not a breaking release", |
Like #87, but this is not a breaking change, and I prefer this API - it seems easier to use correctly.