[Haskell-cafe] Platform Versioning Policy: upper bounds are not our friends
wren ng thornton
wren at freegeek.org
Fri Aug 24 03:20:10 CEST 2012
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. Though you suggested conflating the hard/soft distinction and
the reactive/proactive distinction, and I can't see how that would even
make sense. The former is a matter of ontology (i.e., categorization of
what things can/do/should exist), whereas the latter is a matter of
policy (i.e., how people can/do/should behave). Clearly there's some
relation between the two, but the distinctions are talking about
completely different topics.
> The only thing I think we (might) disagree on is the relative importance of
> distinguishing hard and soft bounds versus being able to change bounds
> easily after the fact (and *without* changing the version number associated
> with the package.)
>
> And on that count, given the choice, I pick being able to change bounds
> after the fact, hands down.
Well sure, just updating Cabal to say it has soft upper bounds doesn't
mean much unless they're actually overridable somehow ;)
I'm still dubious of being able to override hard bounds with a
commandline flag. If the hard bound is valid then when you pass the flag
to ignore the bound either (a) the code won't compile ---so the flag
doesn't help any---, or (b) the code will compile in a way known to be
silently wrong/buggy ---so the flag is evil. Circumventing a (valid)
hard bound is going to require altering the code, so what benefit is
there in avoiding to alter the .cabal file at the same time?
The only case I can conceive of it being helpful to circumvent a hard
bound is if, in fact, the statement of the hard bound is incorrect. But,
if that's the case, it's a bug; and surely correcting that bug should
warrant nudging the fourth version number, ne? Also, this situation
doesn't strike me as being common enough to warrant the effort of
implementation. If it came for free from whatever work it takes to
implement soft bounds (which must necessarily be overridable), I
wouldn't really care. But if eliminating this burden would help in
getting soft bounds implemented, then I see no downside to axing it.
--
Live well,
~wren
More information about the Haskell-Cafe
mailing list