Closed davean closed 4 years ago
For the record, the only way I can manage to reproduce this (i.e. the conflict: requires NoStarIsType
failure), is by having a dist-newstyle
created by a different (usually older) version of cabal
before invoking cabal v2-configure
with a newer version of cabal
.
We should encode some kind of version into the binary dist-newstyle/ cache data to detect and invalidate incompatible cache data generated by a different version of cabal
.
See also https://github.com/haskell/cabal/pull/6164 for a "point fix" in one place
@DanielG so you're suggesting to start renaming the files on every schema change instead of including versioning inside the binary encoding?
It's really just a stopgap measure which we can apply right now instead of waiting until we get around to versioning the cache. I'd also prefer to fix this properly but for now this works and doesn't really have any significant downsides.
@23Skidoo not sure you were made aware of this issue before releasing 3.0.0.0 but as far as I can tell it's still affected.
I think we should fix this and the related #6164 in a point release. What do you think?
Fixed with https://github.com/haskell/cabal/pull/6255
I've observed a weird behavior that I haven't dug down into but follows the pattern below:
cabal new-configure -> failure cabal new-configure --allow-newer=base -> success cabal new-configure -> success cabal new-configure -> failure
It seems that the 3rd new-configure is picking up settings and using them but also clearing them. Since this is new-configure it seems it should clear them and not use them.
Additionally, there is an error "(conflict: requires NoStarIsType)", which comes from:
if impl(ghc >= 8.6) default-extensions: NoStarIsType
as that's an extension it doesn't seem it should cause a dependency resolution failure. In fact, it doesn't in 2.4 so it seems to be a regression.