[Haskell-cafe] How to determine correct dependency versions for a library?

Janek S. fremenzone at poczta.onet.pl
Fri Nov 9 17:31:44 CET 2012


Thanks Clark! You're method seems good at first but I think I see a problem. So let's say you 
started with aeson 0.6. As new versions of aeson are released you introduce version ranges, but 
do you really have a method to determine that your package does indeed work with earlier 
versions? If you're upgrading aeson and don't have the older versions anymore you can only hope 
that the code changes you introduce don't break the dependency on earlier versions. Unless I am 
missing something?

Janek

Dnia piątek, 9 listopada 2012, Clark Gaebel napisał:
> What I usually do is start out with dependencies listed like:
>
> aeson ==0.6.*
>
> and then, as your dependencies evolve, you either bump the version number:
>
> aeson ==0.7.*
>
> or, if you're willing to support multiple version, switch to a range:
>
> aeson >=0.6 && <= 0.7
>
> If someone uses a previous version of a library, and wants your library to
> support it too (and, preferably, it works out of the box), they'll send a
> pull request.
>
> That's what works for me. Maybe you could use it as a starting point to
> find what works for you!
>
>   - Clark
>
> On Fri, Nov 9, 2012 at 11:15 AM, Janek S. <fremenzone at poczta.onet.pl> wrote:
> > Recently I started developing a Haskell library and I have a question
> > about package dependencies.
> > Right now when I need my project to depend on some other package I only
> > specify the package name
> > in cabal file and don't bother with providing the package version. This
> > works because I am the
> > only user of my library but I am aware that if the library were to be
> > released on Hackage I would
> > have to supply version numbers in the dependencies. The question is how
> > to determine proper
> > version numbers?
> >
> > I can be conservative and assume that version of libraries in my system
> > are the minimum required
> > ones. This is of course not a good solution, because my library might
> > work with earlier versions
> > but I don't know a way to check that. What is the best way to determine a
> > minimal version of a
> > package required by my library?
> >
> > I also don't see any sane way of determining maximum allowed versions for
> > the dependencies, but
> > looking at other packages I see that this is mostly ignored and package
> > maintainers only supply
> > lower versions. Is this correct approach?
> >
> > Janek
> >
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe





More information about the Haskell-Cafe mailing list