haskell-hvr / missingh

Utility library [Haskell]
https://hackage.haskell.org/package/MissingH
Other
87 stars 40 forks source link

Incompatible with LTS nightly (GHC 8.6.1)? #45

Closed orome closed 5 years ago

orome commented 5 years ago

MissingH is no longer part in LTS Haskell after GHC 8.6.1, and attempting to include it in builds manually results in an error due to the requirement base <4.12.

jgoerzen commented 5 years ago

I would be happy to relax that. Can you tell if an unversioned base dep works with the nightly?

orome commented 5 years ago

Meaning

extra-deps: MissingH

instead of

extra-deps: MissingH-1.4.0.1

in stack.yaml?

jgoerzen commented 5 years ago

No, I mean the dependency on base. If it is working with newer base, the <4.12 restriction could be removed

orome commented 5 years ago

I'm not sure how to do that.

(BTW, when you're relaxing the dependency, you probably want to update the copyright date through 2018.)

orome commented 5 years ago

Is there an ETA for when MissingH will be restored to LTS Haskell (by relaxing the base requirement)?

jgoerzen commented 5 years ago

I could make a new missingh release today if someone can confirm if this does the trick.

John

On Oct 6, 2018, at 11:32 AM, orome notifications@github.com wrote:

Is there an ETA for when MissingH will be restored to LTS Haskell (by relaxing the base requirement)?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

jgoerzen commented 5 years ago

Looking at this now. The requirement is:

base >= 4.5, base < 5

It looks like this change was made in Hackage by Revision 1 made by HerbertValerioRiedel at Tue Aug 14 22:12:59 UTC 2018 . I'm not sure why.

orome commented 5 years ago

But not in the Hackage version (so LTS rejects it). Right?

orome commented 5 years ago

Here's what happens when I use the version from this repo (commit 390c0eb); that is, using that version alongside LTS-nightly (from which MissingH is, well, missing, because of the constraint on base in the Hackage version).

jgoerzen commented 5 years ago

Looks like there were some changes in Control.Monad.Fail.MonadFail that are causing a build failure. I would happily apply a patch to address this. Unfortunately, with the base being rather a moving target, I don't have an environment to test this on and don't have time to set one up.

I have, incidentally, recently posted to haskell-cafe looking for a maintainer to take over this (and my other Haskell packages). If anyone reading this would like to do so, feel free to let me know.

orome commented 5 years ago

It would be great if MissingH could make it back into LTS. If it's not there, I won't be the only package that will get kicked out along with it!

jgoerzen commented 5 years ago

Thanks @tvh for a patch. 1.4.1.0 uploaded with the fix.

orome commented 5 years ago

MissingH still doesn't work with nightly:

$ stack init --resolver nightly
Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- ./

Selected resolver: nightly-2018-10-14
Selected resolver: nightly-2018-10-14
Resolver 'nightly-2018-10-14' does not have all the packages to match your requirements.
    errorcall-eq-instance not found
        - MissingH requires -any
    testpack not found
        - MissingH requires -any
jgoerzen commented 5 years ago

FWIW, Those packages are only required for the test suite, not the library itself.

orome commented 5 years ago

I assume that MissingH needs to make it back to nightly for my package (and may others) to make it back in; or will crypto-enigma be excluded by this?

jgoerzen commented 5 years ago

As I've said, I'm trying to find a new maintainer for this package. I don't have the time to put into maintaining it right now. If you'd like to volunteer... ;-)

orome commented 5 years ago

Understood. My question was more of a general one about LTS: if

  1. package A requires package B, and
  2. package A works when package B is installed as an extra-dep on top of LTS-X.Y, but
  3. package B itself is not in LTS-X.Y,

does package A have to be excluded from LTS-X.Y (even if the only reason B is excluded is because of a test suite dependency)?