Dear DHG, I’d like to explain a bit better how I imagine that we should use the all-packages.cabal file in http://anonscm.debian.org/darcs/pkg-haskell/tools/ The following invariants should always hold: 1. Runnig "cabal install --dry-run ..../all-packages/" should aways work. 2. Every package in Debian should have an entry in all-packages.cabal. If the entry is commented out, there should be an explanation. 3. The version in all-packages.cabal is always larger or equal to the version in the archive and the repository. In particular it is ok to have there a newer version than what is in Debian. This indicates that we plan to upgrade to that version, and this certifies that the version that we aim for works well. What does that mean, and why does it provide? Assume you want to upgrade a library, say, conduit. You can plan the upgrade with these steps. 1. Pull the latest all-packages.cabal 2. Run "cabal install --dry-run" to see if your fellow developers left the 3. Change the entry for conduit to the new version, say 1.0.0 4. Run "cabal install --dry-run" and see what breaks. 5. For every package that breaks, see if upgrading it helps, and enter the new version number. Iterate. 6. If you find a working combination: Great! Commit, push, and start uploading. 7. If you do not find a working combination: Do not commit or upload yet. Instead, notify the package owners that they should upgrade their package to use the latest conduit. Or, if the broken package is of low priority and upstream is slow or non-existent, comment it out with an explanation. I did these steps for conduit where I had to fix ~35 packages. A tip for faster iteration: If you expect multiple packages to need an upgrade, change their (or all packages’) specification from "yesod (== 1.2.3)" to "yesod (>= 1.2.3)", let cabal-install run, and then copy the version numbers from cabal’s output. In this case, I could not find a working set for all packages: csv-conduit, hOpenPGP, wai-app-file-cgi and mighttpd2 do not have versions compatible with conduit-1.0.0. This is bad, as now our archive is partially uninstallable and what’s preventing us from fixing it is _not_ purely our issue. I see that Clint already has filed issues at https://github.com/ozataman/csv-conduit/issues/8 Great! I guess since you are also the upstream author of hOpenPGP, we’ll see an upload there just in time.I filed an issue at https://github.com/kazu-yamamoto/wai-app-file-cgi/issues/3 I also found out that the pandoc update caused breakage for yesod-markdown. Again, checking all-packages.cabal first would have told us that before. I guess some of this could be automated, e.g. given an inconsistent set of versions, some tool could tell us * what packages need to be upgraded and * what packages need upstream work. Contributions are welcome. There might also be overlap with tools that stackage needs. We also need a tools that compares the versions in all-packages.cabal (i.e. our TODO list) with the versions in the darcs repos, so make that TODO list more readable. BTW, how about following the versions in the yesod platform? http://hackage.haskell.org/package/yesod-platform Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
Attachment:
signature.asc
Description: This is a digitally signed message part