[racket] Planet2 questions

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Sun May 5 10:18:28 EDT 2013

At Thu, 2 May 2013 10:20:09 -0400, Walter Tetzner wrote:
> On Tue, Apr 30, 2013 at 12:24 PM, Matthew Flatt <mflatt at cs.utah.edu> wrote:
> >  2. It could mean that the package system has a built-in way to declare
> >     dependencies not only on a particular package, but on a particular
> >     revision of a package --- either to ensure that certain features
> >     are available or that certain bugs are not available.
> > ...
> > #2 is built into the new package system, though in an intentionally
> > simplified form compared to Planet1. All version X specifications in
> > dependencies mean "at least version X", and those specifications are
> > intended to ensure the availability of new functionality or fixes that
> > were added in a backwards-compatible way. Backwards incompatibility is
> > handled by creating a new package name.
> 
> I think this might be cleaner if the versioning used Semver
> (http://semver.org/), and actually relied on the semantics. So a
> version specification of 3.2.1 would mean "at least version 3.2.1, but
> still less than 4.0.0." In other words, instead of using the package
> name to determine backwards compatibility, you would rely on the major
> version number.

In the context of packages, does it make sense to refer to a package
name without a major version number, given that major versions are
incompatible?

I think the reasons we have to refer to package names would all require
a major version, and so I agree with the way the current design simply
folds the version number into the package name (and where package
authors normally abbreviate the major version 1 as an empty string).

In this view, the version specified in a package's "info.rkt" is really
a minor version number, and the comparison works out as you suggest.


Posted on the users mailing list.