[racket] Planet2 questions
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.