[Hackage] #232: implement extended syntax for package version ranges

#232: implement extended syntax for package version ranges ----------------------------+----------------------------------------------- Reporter: duncan | Owner: nominolo Type: enhancement | Status: new Priority: normal | Milestone: Component: Cabal library | Version: 1.2.3.0 Severity: normal | Keywords: Difficulty: normal | Ghcversion: 6.8.2 Platform: | ----------------------------+----------------------------------------------- Revised proposal: http://www.haskell.org/pipermail/cabal- devel/2008-January/001786.html Reproduced here: In order to make it easy for package package authors to describe correct and robust dependencies we (Duncan Coutts and I) propose the following syntactical extension to version range specifications in package files. == Wildcards == {{{ ~ 1.2.* ~~> >= 1.2 && < 1.3 }}} in general {{{ ~ x.y.* ~~> >= x.y && < x.(y+1) }}} The "~" operator should be read as "in the range of". Another option would have been "-", but this is used to specify exact versions in other parts of the Cabal infrastructure , e.g., "cabal install xmonad-0.5". This is the most common specification of package dependencies. The assumption is that changes in the last version number indicate only backwards compatible changes, as is suggested in the new package versioning policy [1]. The use of "*" matches the common usage as a wildcard character. == Upward Ranges == {{{ ~ 1.2.1+ ~~> >= 1.2.1 && < 1.3 }}} in general {{{ ~ x.y.z+ ~~> >= x.y.z && < x.(y+1) }}} The idea here is that sometimes packages need a certain patch level or, as in Cabal's case, a stable release and possible further bugfixes. In those cases the wildcard notation is too liberal, however the explicit range description would be too noisy (and possibly error prone). (Also, using "+" instead of "*" serves as better visual distinction.) -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/232 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#232: implement extended syntax for package version ranges ----------------------------+----------------------------------------------- Reporter: duncan | Owner: nominolo Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.6 Component: Cabal library | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: ----------------------------+----------------------------------------------- Changes (by duncan): * milestone: => Cabal-1.6 -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/232#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#232: implement extended syntax for package version ranges ----------------------------+----------------------------------------------- Reporter: duncan | Owner: nominolo Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.6 Component: Cabal library | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: ----------------------------+----------------------------------------------- Comment (by duncan): Note that if the `foo ~ 1.2.1+` syntax is too confusing we could do with just `foo ~ 1.2.* && >= 1.2.1`. It also allows to depend on a micro release that fixes a bug like `foo ~ 1.2.* && >= 1.2.0.1`. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/232#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#232: implement extended syntax for package version ranges
----------------------------+-----------------------------------------------
Reporter: duncan | Owner: nominolo
Type: enhancement | Status: new
Priority: normal | Milestone: Cabal-1.6
Component: Cabal library | Version: 1.2.3.0
Severity: normal | Resolution:
Keywords: | Difficulty: normal
Ghcversion: 6.8.2 | Platform:
----------------------------+-----------------------------------------------
Comment (by duncan):
Added the wildcard syntax but not the upward range syntax.
{{{
Thu Jun 19 18:50:06 BST 2008 Duncan Coutts

#232: implement extended syntax for package version ranges ----------------------------+----------------------------------------------- Reporter: duncan | Owner: nominolo Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.6 Component: Cabal library | Version: 1.2.3.0 Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: ----------------------------+----------------------------------------------- Comment (by nominolo): It is indeed confusing, {{{1.2.3+}}} looks all too much like {{{>= 1.2.3}}}. Let's drop it then. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/232#comment:4 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#232: implement extended syntax for package version ranges
----------------------------+-----------------------------------------------
Reporter: duncan | Owner: nominolo
Type: enhancement | Status: closed
Priority: normal | Milestone: Cabal-1.6
Component: Cabal library | Version: 1.2.3.0
Severity: normal | Resolution: fixed
Keywords: | Difficulty: normal
Ghcversion: 6.8.2 | Platform:
----------------------------+-----------------------------------------------
Changes (by duncan):
* status: new => closed
* resolution: => fixed
Comment:
Changed syntax slightly:
{{{
Tue Jul 29 16:16:12 BST 2008 Duncan Coutts
participants (1)
-
Hackage