
#284: Cannot upload packages that require specific cabal versions --------------------------------+------------------------------------------- Reporter: guest | Owner: duncan Type: defect | Status: assigned Priority: normal | Milestone: HackageDB Component: hackageDB website | Version: Severity: normal | Resolution: Keywords: | Difficulty: normal Ghcversion: 6.8.2 | Platform: --------------------------------+------------------------------------------- Comment (by duncan): This is doable with the new `VersionIntervals` data type in Cabal-1.7+. We can now match on the semantics of version range expressions where previously we could only do it on the syntax. This should enable us to do an accurate test on the allowed `cabal-version` range expressions. As mentioned previously we want to make sure that hackage can actually parse the .cabal file. So that means any lower bound must be less than the version of Cabal that hackage is using. So for example if Hackage is using Cabal-1.7 then this should be ok: {{{ cabal-version: >= 1.2 && < 1.5 }}} but we can quite legitimately reject: {{{ cabal-version: >= 2.0 }}} because its lower bound is higher than we understand. We can also enforce that exact `==` predicates are not used, because we know that the Cabal lib follows the package versioning policy. See also #395. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/284#comment:4 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects