[Haskell-cafe] The instability of Haskell libraries

Jason Dagit dagit at codersbase.com
Fri Apr 23 20:12:39 EDT 2010

On Fri, Apr 23, 2010 at 4:49 PM, Don Stewart <dons at galois.com> wrote:

> ivan.miljenovic:
> > Don Stewart <dons at galois.com> writes:
> >
> > > I'll just quickly mention one factor that contributes:
> > >
> > >     * In 2.5 years we've gone from 10 libraries on Hackage to 2023
> (literally!)
> > >
> > > That is a massive API to try to manage, hence the continuing move to
> > > focus on automated QA on Hackage, and automated tools -- no one wants
> > > to have to resolve those dependencies by hand.
> >
> > I think the "release early, release often" slogan is an affect on this
> > as well: we encourage library writers to release once they have
> > something that _works_ rather than waiting until it is perfect.  The
> > fact that we encourage smaller, more modular libraries over large
> > monolithic ones also affects this.
> >
> > When considering Haskell vs Python, I wonder if the "stability" of
> > Python's libraries is due to their relative maturity in that the
> > "fundamental" libraries have had time to settle down.
> >
> Note also that the Python core libraries model is what we are now just
> starting to do via the Haskell Platform. We're far more immature in
> that respect -- our stable, core, blessed library suite only just had
> its 2nd release.

Others on this thread have suggested continual integration build systems for
*all* of hackage as a way to help with stability.  I would argue that CI
comes at a high human cost in terms of establishing and maintaining a proper
build environment.  It's a non-trivial commitment.

This mention of the Haskell Platform makes me think:  What if we reduced the
scope from all of Hackage to just the Haskell Platform?

I bet that's the sweet spot in terms of effort in and value produced.  The
HP is the set of packages that we want to endorse and promote as stable.
 Hackage on the other hand, is a huge repository of everything that exists.

I think this also helps naturally create the unstable/testing/stable
distinction of packages that was suggested in this thread as well.  We can
think of Hackage as unstable, the next unreleased version of the platform as
testing, and the most recent stable platform release as stable.

Hmm...But who would be willing to take on the hard, tedious, and time
consuming work of maintaining the CI build system?  I think for this build
system effort to really take off a group of a few deadicated volunteers
would be necessary.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100423/84081520/attachment.html

More information about the Haskell-Cafe mailing list