
On Mon, 2007-04-23 at 10:33 +0100, Ross Paterson wrote:
Hans has implicitly assumed that the constraints and warnings of HackageDB should at least trigger warnings when building with Cabal (or that HackageDB would have no additional constraints). There's something to be said for that. Currently, these are: * HackageDB requires that the base name of the .cabal file is identical to the name of the package. * HackageDB requires that parsing and printing the version number should give the original string; this fails for version numbers with redundant leading zeroes, like 5.04. * In addition to Cabal warnings, HackageDB warns about - missing category, description, maintainer and synopsis fields - over-long synopsis fields - exposed modules that use unallocated top-level names in the module hierarchy
It'd be great to implement this in a Distribution.[Simple.]Lint module and have HackageDB use that. Additionally we could have "cabal-setup lint" or "check" or something to get those warnings locally. I'm sure there are other best practises that we can encode in a bunch of lint checks. To advertise itself perhaps we should have cabal-setup sdist suggest that the user try the lint check. If the user is doing sdist it's likely that they intend to distribute and it's not just a quick hack so it's a better time to suggest some QA. Duncan