-
Notifications
You must be signed in to change notification settings - Fork 50
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
new dependency for linear-1.18.3 broke our lts-based builds #108
Comments
I'd want to further discuss the benefits of using cabal-revisions (a.k.a. metadata-revisions), because as of now I see none. Usage of any sane versioning scheme - most notably semver - seems to overlap with that mechanism, but also [seems] to be strictly better than cabal-revisions. |
The key to Hackage metadata revisions is that cabal will only ever pick the latest available revision of a given version. cabal is perfectly willing to pick In practice, Hackage trustees also seem more comfortable making metadata edits than new numbered releases. That's what happened here. |
The problem occurs with stack because the added package is not in the lts-2.22 snapshot. You can work around this by specifying the package on the command line or adding it as an extra-dep.
|
I think this has been fixed in stack-1.1.2 via commercialhaskell/stack#2070, but the lts-2.22 snapshot is too old and doesn't contain the needed checksums. |
@kgadek We do have a rather elaborate versioning scheme which predates SemVer. However, orphan instances cause problems that can't be properly expressed in our current cabal meta-data framework. I proposed one way to extend the meta-data to handle the case of orphan-instances at haskell/cabal#3061 which explains the issue more in-depth. While that proposal is still in the air, the specific case of |
@kgadek We use cabal revisions because if we don't then we wind up with packages that retroactively wind up with bad build plans that we know can't succeed when we get an updated version of one of our dependencies that while a valid minor revision w.r.t the PVP happens to bring into scope a conflicting name, or a new instance. The An alternate revision that could work would be to mark almost every single historical version of I don't have a dog in this fight. We took the edit that seemed to be the least invasive at the time, and which was most consistent with other edits being done to other packages. If someone wants to chase down precisely what revisions would have to be made to avoid having newer |
Thanks all for explaining the difficulties, reasons behind, et al. Pitty that we have kind of "cabal vs stack" choice sometimes. |
Closing this as there is nothing we can really do here but try to be better in the future. |
Hi,
recently old releases of
linear
on Hackage were updated and dependency onbase-orphans
was introduced. This is bad, as it breaks stack's lts and our builds.Why does almost one-year old package release suddenly has its dependencies changed?
We use linear-1.18.3, as part of lts-2.22. See http://hackage.haskell.org/package/linear-1.18.3/revisions/ for the problematic revision.
The text was updated successfully, but these errors were encountered: