
On Tue, 2015-07-14 at 13:52 +0100, Duncan Coutts wrote:
Syntax:
Package collection names and versions exactly follow those of package names (but they live in a different namespace). For example, "stackage-lts-2.9", or "deprecated-343" (the latter being a "rolling" collection with a meaningless monotonically increasing version).
A collection distributed in the archive format is just a text file with one entry per line, such as:
foo-1.0 foo-1.1 bar >= 3 && < 4 bar +this -that
So each line can be one of: * a simple package id * a package version range, using Cabal version range syntax * a package name with a flag assignment, + for on, - for off
Oops, one thing I forgot to mention is another entry syntax: baz That is, a package name with no version or range at all. This is shorthand for the version range style with no version constraint (.cabal files have a slightly odd syntax for that, "baz -any"). This is actually useful if you want to define a negative collection, e.g. all the packages that are deprecated (as a whole, not just single versions). Duncan