Splitting Network.URI from the network package

Edward Z. Yang ezyang at mit.edu
Wed Aug 27 14:15:27 UTC 2014


Hello all,

I'd like to report some more subtle breakage with respect to this
split regarding packages which depend on just network-uri, but
not network itself.  The issue is reported here:
https://github.com/haskell/cabal/issues/2063

I think the workaround is to add a "bogus" dependency on network
if you use the flags.

Cheers,
Edward

Excerpts from Michael Snoyman's message of 2014-08-01 12:31:13 +0100:
> This was brought up last year[1], and I'd like to bring it up again, based
> on a recent issue I was working through with a user[2]. I realize that this
> is a breaking change, but:
> 
> 1. It's a minor breaking change: you simply need to add an extra package to
> your build-depends.
> 2. The problems caused by having a parsec dependency in network can be
> severe, especially for new users (I'll describe the details after the
> proposal).
> 
> Concretely, I believe we should do the following:
> 
> 1. Create a new package, network-uri, version 2.5.0.0, which exposes no
> modules and has an upper bound `network < 2.6.
> 2. Create a second release of network-uri, version 3.0.0.0, which provides
> the Network.URI module verbatim as provided by the network package today,
> and has a lower bound `network >= 3.0`.
> 3. Release network version 3.0.0.0, with no changes from the currently
> released version, except that (a) no Network.URI module is provided, and
> (b) there is no parsec dependency.
> 
> I don't remember how the discussion went last time, but I seem to remember
> general consensus. I'd like to set a discussion period of two weeks (August
> 15).
> 
> ## Motivation
> 
> To give a concrete example of why this problem is severe, consider the
> following data:
> 
> * The network package is a pain to install on Windows for most users
> (especially new users), since it requires msys.
> * Most Windows users therefore install the Haskell Platform, avoiding the
> msys dependency.
> * The current release of HP installs text version 0.11.3.1. text is a
> dependency of parsec, and parsec is a dependency of network. Therefore, you
> can't build against a new version of text *and* use the network package
> without recompiling network, which as I mentioned is difficult.
> * A number of popular packages depend on newer versions of text. For
> example, since 0.8.0.0, aeson requires text version 1.1.0.0 or later. as
> does attoparsec since version 0.12.0.0.
> 
> [1] http://www.haskell.org/pipermail/libraries/2013-January/019234.html
> [2] https://groups.google.com/d/msg/yesodweb/auk2vByXgO8/lUZ9oanKyMwJ


More information about the Libraries mailing list