At Thu, 2 May 2013 10:20:09 -0400, Walter Tetzner wrote: > On Tue, Apr 30, 2013 at 12:24 PM, Matthew Flatt <mfl...@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. ____________________ Racket Users list: http://lists.racket-lang.org/users