haskell-infra / hackage-trustees

Issue tracker for Hackage maintainance and trustee operations
https://hackage.haskell.org/packages/trustees/
42 stars 7 forks source link

http-client-0.5 breaks upper-bound lacking packages #69

Closed phadej closed 7 years ago

phadej commented 8 years ago

The stackage issue: https://github.com/fpco/stackage/issues/1676 Around 20 packages from Stackage was hold back due bounds.

Let's document packages which are or were broken due missing upper bounds.

I suspect that turn red too (waiting for matrix.h.h.o)

Also http-conduit breaks packages in the same way. let's check based http://packdeps.haskellers.com/reverse/http-conduit on:


Broken packages

phadej commented 8 years ago

servant-client

screen shot 2016-07-05 at 12 24 56
phadej commented 8 years ago

amazonka-core

![Uploading FireShot Capture - amazonka-core - packag_ - http___matrix.hackage.haskell.org_package_amazonka-core-before.png…]()

Via this package, virtually all amazonka-* packages are non-buildable, e.g.

fireshot capture - amazonka-elasti_ - http___matrix hackage haskell org_package_amazonka-elasticache

phadej commented 8 years ago

Reported on Stackage issue, DAV-1.2:

[2 of 2] Compiling Network.Protocol.HTTP.DAV ( Network/Protocol/HTTP/DAV.hs, dist/build/Network/Protocol/HTTP/DAV.o )

Network/Protocol/HTTP/DAV.hs:160:32: error:
    Not in scope: data constructor `StatusCodeException'
    Perhaps you meant variable `matchStatusCodeException' (line 160)
    Perhaps you want to add `StatusCodeException' to the import list
    in the import of `Network.HTTP.Client'
    (Network/Protocol/HTTP/DAV.hs:77:1-169).

before http-client-0.4

fireshot capture - dav - package - hackage matrix b_ - http___matrix hackage haskell org_package_dav-before

with http-client-0.5

fireshot capture - dav - package -_ - http___matrix hackage haskell org_package_dav ghc-7 10_dav-1 2-middle

hvr commented 8 years ago

judging from http://packdeps.haskellers.com/reverse/http-client, there's lots of packages depending on http-client directly whose authors forgot to put upper bounds in place, and sadly this compounds via indirect dependencies :-/

phadej commented 8 years ago

I'll add http-client tag on matrix.h.h.o for packages I queued to check this issue

phadej commented 8 years ago

wreq

before http-client-0.5 released:

fireshot capture - wreq - package - hackage matrix builder_ - http___matrix hackage haskell org_pa-before

after:

fireshot capture - wreq - package - hackage matrix_ - http___matrix hackage haskell org_package_wreq-with

I'm correcting bounds atm.

phadej commented 8 years ago

Seems that http-client-0.5 itself fails to build with some configurations https://github.com/snoyberg/http-client/issues/210

phadej commented 8 years ago

kraken had two failures as well.

Not sure, seems (luckily!) that upper bounds used by many authors act as vaccination in masses: it helps prevent invalid plans even some packages aren't specifying them.

hvr commented 8 years ago

@phadej it's still fragile, because as soon as a 3rd party package relaxes its upper bound because it added support, suddenly install-plans will start to fail... the cabal system is designed to capture accurate information via direct dependencies (rather than relying on transitive dependencies to provide constraints), failure to do that breaks the system by making it fragile and hard to maintain.

More importantly, matrix.h.h.o is build upon the assumption that direct dependencies are expected to capture all necessary constraints. If this doesn't hold for 99% we may as well declare matrix.h.h.o death on arrival.

hvr commented 8 years ago

Some additional indirect fallout @ https://github.com/fpco/stackage-curator/issues/22 / https://github.com/fpco/stackage-install/issues/6

hvr commented 8 years ago

Stumbled over a few other ones:

phadej commented 8 years ago
bergmark commented 8 years ago

For open ended issues like this, we can add comments for new entries but how about collecting everything in a checklist in the top comment (since we all can make edits to it)? That way we know what we need to do, and we can close when everything is done and re-open if new entries pop up.

phadej commented 8 years ago

@bergmark edited the first comment. Cannot verify as matrix is unresponsive to me.

bergmark commented 7 years ago

I fixed the remaining packages