Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-09-23 Thread Alberto G. Corona
Just thinking aloud: What if we add "-current" ? pacage -current Would select the versions of the package that were current art the time the cabal file was uploaded and sucessfully compiled in hackage, if the packae is installed from hackage If the cabal file is local then current == any.

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-23 Thread wren ng thornton
On 8/22/12 12:35 PM, David Menendez wrote: As I see it, there are four possibilities for a given version of dependency: 1. The version DOES work. The author (or some delegate) has compiled the package against this version and the resulting code is considered good. 2. The version SHOULD work. No

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-23 Thread wren ng thornton
On 8/22/12 9:18 AM, Leon Smith wrote: I think we actually agree more than we disagree; I do think distinguishing hard and soft upper bounds (no matter what they are called) would help, and I'm just trying to justify them to some of the more dismissive attitudes towards the idea Hopefully. T

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-22 Thread David Menendez
As I see it, there are four possibilities for a given version of dependency: 1. The version DOES work. The author (or some delegate) has compiled the package against this version and the resulting code is considered good. 2. The version SHOULD work. No one has tested against this version, but the

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-22 Thread Leon Smith
I think we actually agree more than we disagree; I do think distinguishing hard and soft upper bounds (no matter what they are called) would help, and I'm just trying to justify them to some of the more dismissive attitudes towards the idea The only thing I think we (might) disagree on is the r

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Iavor Diatchki
Hello, I also completely agree with Bryan's point which is why I usually don't add upper bounds on the dependencies of the packages that I maintain---I find that the large majority of updates to libraries tend to be backward compatible, so being optimistic seems like a good idea. By the way, some

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Brent Yorgey
On Thu, Aug 16, 2012 at 06:07:06PM -0400, Joey Adams wrote: > On Wed, Aug 15, 2012 at 3:38 PM, Bryan O'Sullivan wrote: > > I propose that the sense of the recommendation around upper bounds in the > > PVP be reversed: upper bounds should be specified only when there is a known > > problem with a n

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Chris Dornan
Chris -Original Message- From: Erik Hesselink [mailto:hessel...@gmail.com] Sent: 20 August 2012 14:35 To: Chris Dornan Cc: Bryan O'Sullivan; haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends Hub looks interesting, I'll

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Gregory Collins
My two (or three) cents: - Given a choice between a world where there is tedious work for package maintainers vs. a world where packages randomly break for end users (giving them a bad impression of the entire Haskell ecosystem), I choose the former. - More automation can ease the bur

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Erik Hesselink
ehalf Of Erik Hesselink > Sent: 20 August 2012 08:33 > To: Bryan O'Sullivan > Cc: haskell-cafe@haskell.org > Subject: Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not > our friends > > I am strongly against this, especially for packages in the platform. > &

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Simon Marlow
On 15/08/2012 21:44, Johan Tibell wrote: On Wed, Aug 15, 2012 at 1:02 PM, Brandon Allbery wrote: So we are certain that the rounds of failures that led to their being *added* will never happen again? It would be useful to have some examples of these. I'm not sure we had any when we wrote the

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Chris Dornan
Sent: 20 August 2012 08:33 To: Bryan O'Sullivan Cc: haskell-cafe@haskell.org Subject: Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends I am strongly against this, especially for packages in the platform. If you fail to specify an upper bound, and I depend on

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-20 Thread Erik Hesselink
I am strongly against this, especially for packages in the platform. If you fail to specify an upper bound, and I depend on your package, your dependencies can break my package! For example, say I develop executable A and I depend on library B == 1.0. Library B depends on library C >= 0.5 (no uppe

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-19 Thread Chris Dornan
cool.) Chris -Original Message- From: haskell-cafe-boun...@haskell.org [mailto:haskell-cafe-boun...@haskell.org] On Behalf Of MightyByte Sent: 16 August 2012 04:02 To: Ivan Lazar Miljenovic Cc: Haskell Cafe Subject: Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our frie

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-19 Thread Felipe Almeida Lessa
On Sat, Aug 18, 2012 at 3:57 AM, David Feuer wrote: > If the language is changed (without possibility of breakage, I > believe) so that names declared in a module shadow imported names, > incompatibility can only arise if two different imports offer the same > name, and it is actually used. This

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-18 Thread wren ng thornton
On 8/17/12 11:28 AM, Leon Smith wrote: And the difference between reactionary and proactive approaches I think is a potential justification for the "hard" and "soft" upper bounds; perhaps we should instead call them "reactionary" and "proactive" upper bounds instead. I disagree. A hard constra

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-18 Thread David Feuer
On Thu, Aug 16, 2012 at 9:53 AM, Felipe Almeida Lessa wrote: > If you import qualified then adding functions will never break anything. If the language is changed (without possibility of breakage, I believe) so that names declared in a module shadow imported names, incompatibility can only arise

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Gershom Bazerman
On 8/16/12 11:33 PM, wren ng thornton wrote: [1] Parsec 2 vs 3, for a very long time [2] mtl 1 vs 2, for a brief interim [3] John Lato's iteratee <=0.3 vs >=0.4, for legacy code ... I think this is a great point! As others have said, maintainers typically, but not always, know when their code

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Michael Sloan
I agree that Haskell's design gives us a good leg up on the problem of acquiring and comparing APIs. However, I don't think that this manifest solution really buys us enough to justify the complexity. There're also some specific, perhaps resolvable, but unsightly problems, which I outline here: ht

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Brandon Allbery
On Fri, Aug 17, 2012 at 4:35 PM, Bryan O'Sullivan wrote: > Any vastly more complicated and detailed versioning scheme has a huge > burden to prove that it won't collapse dramatically more quickly. (Frankly, > I think that anything involving "specify every detail of your known > dependencies" is de

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread MigMit
On Aug 18, 2012, at 12:35 AM, "Bryan O'Sullivan" wrote: > We already have a simple versioning scheme for which, despite it being easy > to grasp, we have amply demonstrated that we cannot make it work well, > because it has emergent properties that cause it to not scale well across a > large

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Bryan O'Sullivan
On Fri, Aug 17, 2012 at 12:34 PM, MigMit wrote: > What if instead of upper (and lower) bounds we just specify our interface > requirements? We already have a simple versioning scheme for which, despite it being easy to grasp, we have amply demonstrated that we cannot make it work well, because

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread MigMit
What if instead of upper (and lower) bounds we just specify our interface requirements? Like "package bull-shit should provide value Foo.Bar.baz :: forall a. [a] -> [a] -> [a] or more general". Sure, it won't help dealing with strictness/lazyness, but it would capture most interface differences.

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Leon Smith
I see good arguments on both sides of the upper bounds debate, though at the current time I think the best solution is to omit upper bounds (and I have done so for most/all of my packages on hackage).But I cannot agree with this enough: On Thu, Aug 16, 2012 at 4:45 AM, Joachim Breitner wrote:

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Thomas Schilling
My thoughts on the matter got a little long, so I posted them here: http://nominolo.blogspot.co.uk/2012/08/beyond-package-version-policies.html On 17 August 2012 12:48, Heinrich Apfelmus wrote: > Brent Yorgey wrote: > >> Yitzchak Gale wrote: >> >>> For actively maintained packages, I think the >

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Heinrich Apfelmus
Brent Yorgey wrote: Yitzchak Gale wrote: For actively maintained packages, I think the problem is that package maintainers don't find out promptly that an upper bound needs to be bumped. One way to solve that would be a simple bot that notifies the package maintainer as soon as an upper bound be

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-17 Thread Daniel Trstenjak
On Thu, Aug 16, 2012 at 11:33:17PM -0400, wren ng thornton wrote: > However, there are certainly cases where we have hard upper > bounds[1][2][3], and ignoring those is not fine. Circumventing hard > upper bounds should require altering the .cabal file, given as > getting things to compile will re

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread wren ng thornton
On 8/15/12 11:02 PM, MightyByte wrote: One tool-based way to help with this problem would be to add a flag to Cabal/cabal-install that would cause it to ignore upper bounds. I'd much rather have a distinction between hard upper bounds ("known to fail with") vs soft upper bounds ("tested with")

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Joey Adams
On Wed, Aug 15, 2012 at 3:38 PM, Bryan O'Sullivan wrote: > I propose that the sense of the recommendation around upper bounds in the > PVP be reversed: upper bounds should be specified only when there is a known > problem with a new version of a depended-upon package. I, too, agree. Here is my a

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Brent Yorgey
On Thu, Aug 16, 2012 at 05:30:07PM +0300, Yitzchak Gale wrote: > > For actively maintained packages, I think the > problem is that package maintainers don't find > out promptly that an upper bound needs to be > bumped. One way to solve that would be a > simple bot that notifies the package maintai

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread dag.odenh...@gmail.com
On Wed, Aug 15, 2012 at 9:38 PM, Bryan O'Sullivan wrote: > A benign change will obviously have no visible effect, while a compilation > failure is actually *better* than a depsolver failure, because it's more > informative. > But with upper bounds you give Cabal a chance to try and install a supp

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Yitzchak Gale
Bryan O'Sullivan wrote: > A substantial number of the difficulties I am encountering are related to > packages specifying upper bounds on their dependencies. This is a recurrent > problem, and its source lies in the recommendations of the PVP itself I think the PVP recommendation is good, though a

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Felipe Almeida Lessa
On Thu, Aug 16, 2012 at 10:01 AM, Chris Smith wrote: > Twan van Laarhoven wrote: >> Would adding a single convenience function be low or high risk? You say it >> is low risk, but it still risks breaking a build if a user has defined a >> function with the same name. > > Yes, it's generally low-ri

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread timothyhobbs
y author.   It's impossible to write software, if you spend all of your time waiting for someone else to update their libraries. Timothy -- Původní zpráva -- Od: Ivan Lazar Miljenovic Datum: 16. 8. 2012 Předmět: Re: [Haskell-cafe] Platform Versioning Policy: uppe

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Ivan Lazar Miljenovic
On 16 August 2012 20:50, Ketil Malde wrote: > "Bryan O'Sullivan" writes: > >> I propose that the sense of the recommendation around upper bounds in the >> PVP be reversed: upper bounds should be specified *only when there is a >> known problem with a new version* of a depended-upon package. > > A

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Chris Smith
Twan van Laarhoven wrote: > Would adding a single convenience function be low or high risk? You say it > is low risk, but it still risks breaking a build if a user has defined a > function with the same name. Yes, it's generally low-risk, but there is *some* risk. Of course, it could be high ris

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Twan van Laarhoven
On 16/08/12 14:07, Chris Smith wrote: As a package author, when I release a new version, I know perfectly well what incompatible changes I have made to it... and those might include, for example: 1. New modules, exports or instances... low risk 2. Changes to less frequently used, advanced, or "i

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Chris Smith
I am tentatively in agreement that upper bounds are causing more problems than they are solving. However, I want to suggest that perhaps the more fundamental issue is that Cabal asks the wrong person to answer questions about API stability. As a package author, when I release a new version, I kno

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Ketil Malde
"Bryan O'Sullivan" writes: > I propose that the sense of the recommendation around upper bounds in the > PVP be reversed: upper bounds should be specified *only when there is a > known problem with a new version* of a depended-upon package. Another advantage to this is that it's not always clear

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Joachim Breitner
Hi, Am Mittwoch, den 15.08.2012, 12:38 -0700 schrieb Bryan O'Sullivan: > I propose that the sense of the recommendation around upper bounds in > the PVP be reversed: upper bounds should be specified only when there > is a known problem with a new version of a depended-upon package. as a Debian pa

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-16 Thread Daniel Trstenjak
On Wed, Aug 15, 2012 at 03:54:04PM -0700, Michael Sloan wrote: > Upper bounds are a bit of a catch-22 when it comes to library authors evolving > their APIs: > > 1) If library clients aren't encouraged to specify which version of the >exported API they target, then changing APIs can lead to o

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Michael Snoyman
On Thu, Aug 16, 2012 at 5:38 AM, Conrad Parker wrote: > On 16 August 2012 03:38, Bryan O'Sullivan wrote: > > Hi, folks - > > > > I'm sure we are all familiar with the phrase "cabal dependency hell" at > this > > point, as the number of projects on Hackage that are intended to hack > around > > t

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Brandon Allbery
On Wed, Aug 15, 2012 at 11:02 PM, MightyByte wrote: > be to add a flag to Cabal/cabal-install that would cause it to ignore > upper bounds. (Frankly, I think it would also be great if > Ignore, or at least treat them as being like flags... if the versions don't converge with them, start relaxin

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread MightyByte
On Wed, Aug 15, 2012 at 9:19 PM, Ivan Lazar Miljenovic wrote: > On 16 August 2012 08:55, Brandon Allbery wrote: >> Indeed. But the ghc release that split up base broke cabalised packages >> with no warning to users until they failed to compile. Upper bounds were >> put in place to avoid that ki

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Conrad Parker
On 16 August 2012 03:38, Bryan O'Sullivan wrote: > Hi, folks - > > I'm sure we are all familiar with the phrase "cabal dependency hell" at this > point, as the number of projects on Hackage that are intended to hack around > the problem slowly grows. > > I am currently undergoing a fresh visit to

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Ivan Lazar Miljenovic
On 16 August 2012 08:55, Brandon Allbery wrote: > On Wed, Aug 15, 2012 at 6:46 PM, Carter Schonwald > wrote: >> >> no one is disputing that there are conditional changes in dependencies >> depending on library versions. > > > Indeed. But the ghc release that split up base broke cabalised package

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Brandon Allbery
On Wed, Aug 15, 2012 at 6:46 PM, Carter Schonwald < carter.schonw...@gmail.com> wrote: > no one is disputing that there are conditional changes in dependencies > depending on library versions. Indeed. But the ghc release that split up base broke cabalised packages with no warning to users until

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Michael Sloan
Upper bounds are a bit of a catch-22 when it comes to library authors evolving their APIs: 1) If library clients aren't encouraged to specify which version of the exported API they target, then changing APIs can lead to opaque compile errors (without any information about which API is intend

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Carter Schonwald
no one is disputing that there are conditional changes in dependencies depending on library versions. an interesting intermediate point would be have a notion of "testing with " constraints in cabal and engineering cabal to support a "--withTestedConstraints" to have a simple composable way of han

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Brandon Allbery
On Wed, Aug 15, 2012 at 4:44 PM, Johan Tibell wrote: > On Wed, Aug 15, 2012 at 1:02 PM, Brandon Allbery > wrote: > > So we are certain that the rounds of failures that led to their being > > *added* will never happen again? > > It would be useful to have some examples of these. I'm not sure we ha

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Lorenzo Bolla
I definitely agree! http://www.reddit.com/r/haskell/comments/x4knd/what_is_the_reason_for_haskells_cabal_package/ L. On Wed, Aug 15, 2012 at 12:38:33PM -0700, Bryan O'Sullivan wrote: > Hi, folks - > > I'm sure we are all familiar with the phrase "cabal dependency hell" at this > point, as the n

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Carter Schonwald
As someone who recurrently is nudging a large number of maintainers every major ghc release to bump their bounds, I favor the no upper bounds approach! :) plus the whole improving ecosystem of build bot tools which play nice with cabal et al that are cropping up mean that "in principal" we could d

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Michael Blume
> it's usual for the existing upper bounds to refer to versions that don't > exist at the time of writing (and hence can't be known to be stable). Well, known to be stable given semantic versioning, then. http://semver.org/ On Wed, Aug 15, 2012 at 1:55 PM, Bryan O'Sullivan wrote: > On Wed, Aug

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Bryan O'Sullivan
On Wed, Aug 15, 2012 at 1:50 PM, David Thomas wrote: > Would it make sense to have a known-to-be-stable-though soft upper bound > added proactively, and a known-to-break-above hard bound added reactively, > so people can loosen gracefully as appropriate? > I don't think so. It adds complexity, but

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread David Thomas
Would it make sense to have a known-to-be-stable-though soft upper bound added proactively, and a known-to-break-above hard bound added reactively, so people can loosen gracefully as appropriate? On Aug 15, 2012 1:45 PM, "Johan Tibell" wrote: > On Wed, Aug 15, 2012 at 1:02 PM, Brandon Allbery >

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Johan Tibell
On Wed, Aug 15, 2012 at 1:02 PM, Brandon Allbery wrote: > So we are certain that the rounds of failures that led to their being > *added* will never happen again? It would be useful to have some examples of these. I'm not sure we had any when we wrote the policy (but Duncan would know more), but

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Bryan O'Sullivan
On Wed, Aug 15, 2012 at 1:02 PM, Brandon Allbery wrote: > > So we are certain that the rounds of failures that led to their being > *added* will never happen again? > Of course I am sure that problems will arise as a result of recommending that upper bounds be added reactively; didn't I say as mu

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Brandon Allbery
On Wed, Aug 15, 2012 at 3:57 PM, Johan Tibell wrote: > On Wed, Aug 15, 2012 at 12:38 PM, Bryan O'Sullivan > wrote: > > I propose that the sense of the recommendation around upper bounds in the > > PVP be reversed: upper bounds should be specified only when there is a > known > > problem with a ne

Re: [Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Johan Tibell
On Wed, Aug 15, 2012 at 12:38 PM, Bryan O'Sullivan wrote: > I propose that the sense of the recommendation around upper bounds in the > PVP be reversed: upper bounds should be specified only when there is a known > problem with a new version of a depended-upon package. This argument precisely cap

[Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends

2012-08-15 Thread Bryan O'Sullivan
Hi, folks - I'm sure we are all familiar with the phrase "cabal dependency hell" at this point, as the number of projects on Hackage that are intended to hack around the problem slowly grows. I am currently undergoing a fresh visit to that unhappy realm, as I try to rebuild some of my packages to