Request for feedback on spec/proposal for distributing package collections via hackage
Duncan Coutts
duncan.coutts at googlemail.com
Tue Jul 14 19:48:22 UTC 2015
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
More information about the cabal-devel
mailing list