[plt-scheme] How best to use PLaneT?
On Fri, Oct 10, 2008 at 11:38 AM, Carl Eastlund <cce at ccs.neu.edu> wrote:
> On Fri, Oct 10, 2008 at 10:22 AM, Grant Rettke <grettke at acm.org> wrote:
>> To your point, yes you should be locking your version at the exact one
>> you want! :)
>
> Careful, that can still cause problems. If you demand *exactly* A:1.1,
> and A requires *at least* B:2.2, you can still get behavior changes
> when B releases 2.3. Basically, everything only "works" if you stay
> consistent with all your upstream suppliers: either everyone requiring
> *exact* minor numbers, or everyone allowing upgrades and also
> releasing only bug fixes as minor releases (and bumping the major
> number for every interface change, no matter how small).
>
> Since the Planet mechanism is designed specifically to support the
> latter approach,
"Component Deployment with PLaneT You Want it Where?" is required
reading for anyone publishing to PLaneT:
http://scheme2006.cs.uchicago.edu/04-matthews.pdf
> I currently think the best approach is to allow minor
> version upgrades, but to bump major numbers frequently and to put
> pressure on other package maintainers to do so (that is, if they
> release an interface change as a minor release, report it as a bug -
> because it is). If we have a schism, and two different
> interpretations of version numbers floating around, we're likely to
> build up all kinds of incompatibility.
That is, as the paper explains, the best possible model for some for a
given audience.
I prefer the model of linking against a single version of a library,
testing it, and relying on it from here forward.
Why allow for a supposedly compatible upgrade? If you didn't test that
release, you can't count on it without testing, period.