[Hackage] #395: Warn about dependencies like parsec <= 2.1.0.0

#395: Warn about dependencies like parsec <= 2.1.0.0 ----------------------------------+----------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Component: Cabal library | Version: Severity: normal | Keywords: Difficulty: very easy (<1 hour) | Ghcversion: 6.8.3 Platform: | ----------------------------------+----------------------------------------- Cabal should warn about dependencies like `parsec <= 2.1.0.0`. It's almost certainly a mistake given the conventional semantics of version numvers. Something like `foo < 2.0` is quite common and it's relatively harmless so there's probably no point in warning. On the other hand `foo < 2.0.0` is weird. It says `foo-2.0` is ok, but `foo-2.0.0` or `foo-2.0.0.1` is not. Something like `foo <= 2.0` is a definately weird though since it excludes bug fixes like `foo-2.0.0.1` -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/395 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#395: Warn about dependencies like parsec <= 2.1.0.0 ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Component: Cabal library | Version: Severity: normal | Resolution: Keywords: | Difficulty: very easy (<1 hour) Ghcversion: 6.8.3 | Platform: ----------------------------+----------------------------------------------- Comment (by guest): quote: {{{foo < 2.0.0}}} is weird. It says {{{foo-2.0}}} is ok, but {{{foo-2.0.0}}} is not. It is only weird because Data.Version has weird semantics for equality. Most people expect 2.0 to be the same version as 2.0.0 and 2.0.0.0. If we were to adopt the proposal to fix Data.Version so that these were truly equal, then the weirdness would disappear. (But I agree that a dependency like {{{foo <= 2.0}}} is definitely still weird.) -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/395#comment:1 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#395: Warn about dependencies like parsec <= 2.1.0.0 ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Component: Cabal library | Version: Severity: normal | Resolution: Keywords: | Difficulty: very easy (<1 hour) Ghcversion: 6.8.3 | Platform: ----------------------------+----------------------------------------------- Changes (by duncan): * cc: Saizan (added) Comment: In #418 Saizan notes: Dependencies of the form "foo > x" don't really make sense given the hackage version policy, since they exclude x but include x.y which is supposed to have a similar api, and if you want something introduced in a minor (or lesser) release you can explicitly mention that. Also what is often intended with that notation is foo >= (x+1), causing confusion. I propose that we allow only closed lower bounds, i.e. foo >= x. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/395#comment:2 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#395: Warn about dependencies like parsec <= 2.1.0.0 ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Component: Cabal library | Version: Severity: normal | Resolution: Keywords: | Difficulty: very easy (<1 hour) Ghcversion: 6.8.3 | Platform: ----------------------------+----------------------------------------------- Comment (by duncan): So, in general we should say that open lower bounds and closed upper bounds are rather suspicious (given any sensible semantics to version numbers). -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/395#comment:3 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#395: Warn about dependencies like parsec <= 2.1.0.0 ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.6 Component: Cabal library | Version: Severity: normal | Resolution: Keywords: | Difficulty: very easy (<1 hour) Ghcversion: 6.8.3 | Platform: ----------------------------+----------------------------------------------- Changes (by duncan): * milestone: => Cabal-1.6 -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/395#comment:4 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects

#395: Warn about dependencies like parsec <= 2.1.0.0 ----------------------------+----------------------------------------------- Reporter: duncan | Owner: Type: enhancement | Status: new Priority: normal | Milestone: Cabal-1.8 Component: Cabal library | Version: Severity: normal | Resolution: Keywords: | Difficulty: very easy (<1 hour) Ghcversion: 6.8.3 | Platform: ----------------------------+----------------------------------------------- Changes (by duncan): * milestone: Cabal-1.6 => Cabal-1.8 Comment: This is much easier to do using the new `VersionIntervals` type in Cabal-1.8. -- Ticket URL: http://hackage.haskell.org/trac/hackage/ticket/395#comment:5 Hackage http://haskell.org/cabal/ Hackage: Cabal and related projects
participants (1)
-
Hackage