Skip to content

Failing build plans from reflex-sdl2 0.1.0.0 #24

@DrewFenwick

Description

@DrewFenwick

TLDR: The overly loose bounds are fixed in the newer versions of the library but they need to be fixed in 0.1.0.0 as well through a hackage metadata revision to stop Cabal from generating faulty build plans and giving users a bad time.

reflex-sdl2 0.1.0.0 is missing version bounds. This may be fixed in later versions, but this still causes issues.

Cabal will still try to build 0.1.0.0 when a user hasn't explicitly asked for newer versions and cabal fails to generate build plans for newer versions.

For example, right now Cabal can't generate a build plan for reflex-sdl2 0.3.0.0 on GHC 9.2.4
Ordinarily when a new GHC version comes out and a library needs to bump bounds to get things working again, all versions of the dependency fail to build on the new GHC version, but because of the loose bounds on 0.1.0.0, versions 0.2.0.0 and 0.3.0.0 fail but Cabal can see no reason why 0.1.0.0 should fail, so it generates a build plan that includes incompatible dependency versions (because the bounds are too loose to exclude them) leading to opaque dependency compilation errors for the user.

It took me a while to notice that Cabal was trying to build 0.1.0.0 and then due to similar past experiences I figured it out. For a less experienced person they may chalk it up to a fundamentally broken library and give up.

Loose bound issues have to be fixed retroactively through Hackage revisions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions