-
Notifications
You must be signed in to change notification settings - Fork 42
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
Fix the build and tests with exceptions 0.9.* #54
Comments
I can reproduce this locally, although with difficulty. I cannot reproduce the problem when running the tests with Since I managed to reproduce the problem locally, I don't think that Travis changed their build environment; rather, I think this is the usual issue with cabal builds, namely that someone publishing a new version of a package somewhere can change our build plan and cause the build to fail mysteriously even though no code has changed. I bet a lower-bound is missing somewhere, not necessarily in our list of dependencies but perhaps in theirs. |
The joy of builds that aren't stable and reproducible. I'll look into this tomorrow - thanks for bringing it up. |
I deleted my I ran the Travis steps, and it still ran fine. So it appears the exact commands are not to blame (and I wouldn't see why, as they've been the same for a long time). |
My best guess is that this library's 0.9.0 update broke the build: https://hackage.haskell.org/package/exceptions-0.9.0 It defines generalBracket, CI is using 0.9.0, and I'm still on 0.8.3. |
Bingo - removing the lib from my system and re-running install and test, and the tests are now failing. |
Success: https://travis-ci.org/mvdan/hint/builds/348662873 I'm going to retitle this issue to remove this temporary dependency restriction for the upcoming release. |
The 0.9.0 update breaks backwards compatibility, which broke the tests. For now, simply require the version that we support. Fixing CI and unblocking more work is more important than updating a library. Updates #54.
More information on the API breakage: https://hackage.haskell.org/package/exceptions-0.9.0/docs/Control-Monad-Catch.html#v:generalBracket |
Please also add the upper-bound for published versions of hint, using hackage's revision mechanism. On a blank system (such as the docker images I have created for #56), |
You're right, I forgot about the stable version. Done: https://hackage.haskell.org/package/hint-0.7.0/revisions/ |
I have investigated exceptions-0.9.0 and have discovered an important regression. I sent them a fix and they published exceptions-0.10.0, which breaks the API in a slightly different way than exceptions-0.9.0 did. I can write a |
It doesn't seem like we have much of an option in the long term. If anyone is stuck with exceptions 0.8.0, they are likely also stuck with an older version of GHC, in which case using a slightly older version of Hint should be fine. |
The main reason for using exceptions-0.8.3 instead if exceptions-0.10.0 at
the moment would not be because of an old ghc, but because a dependency has
an `exceptions <= 0.9` upper bound. I have spent the week at work updating
dependencies to their latest version in the hope that they have already
updated their upper bounds, and sending them a PR otherwise. It will take a
while for the entire ecosystem to update their upper bounds.
…On Thu, Mar 15, 2018, 12:49 PM Daniel Martí ***@***.***> wrote:
It doesn't seem like we have much of an option in the long term. If anyone
is stuck with exceptions 0.8.0, they are likely also stuck with an older
version of GHC, in which case using a slightly older version of Hint should
be fine.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#54 (comment)>, or mute
the thread
<https://github.com/notifications/unsubscribe-auth/AAC_aKvRl3W9395lf7QymBSzj4NnB_1oks5tept_gaJpZM4SY0ei>
.
|
Is there any such library that won't compile with Hint 0.10.x? Besides hint, that is :) The set of libraries using exceptions has already been split in two; it's just a matter of what side we want to be on. I'd say go for the newer for the upcoming Hint release, unless there is a good reason not to. |
Do you have a timeline on when you plan to perform this release? I still want to implement this, but I haven't had a lot of time to put on this and I don't want to hold you back. |
Never mind, I found the time for it this morning :) |
I wanted to do the release sometime in April or May, but I was briefly on holiday and now travelling :) I'll look at your patch now. |
The builds for PRs #52 and #53 both fail with the same error:
During the build phase, there is a warning which wasn't there before, saying that the
generalBracket
method is missing from aMonadMask
instance. Neither PR touches that part of the code, and yet previous builds don't include the warning.This is only a warning, but alas, both warnings become errors later on, when the unit tests are executed. In fact, each test fails separately with the same error message, indicating that it must be hint which is somehow trying to load its own code and failing because of a warning.
I did write both PR #52 and PR #53, but I don't think it is my changes which have caused this. One reason is that the two PRs touch different parts of the codebase and yet fail in the same way. The other is that while PR #53 configures Travis so that it also attempts to build with ghc-8.4, it doesn't make any change which should impact the build for the other versions of ghc, and yet the build fails for those versions of ghc as well.
My conclusion is that something in the build environment must have changed between the last (successful) build and these ones.
The text was updated successfully, but these errors were encountered: