Hi, I noticed that it would be really cool if we had a tool that, given some planned change to the set of Haskell packages in Deban would predict all problems that require further uploads, i.e. other packages not building any more. This way, say while packaging a new library foo which requires upgrading bar, we would know (without manually checking or trying) what else would break, and if baz breaks, whether upgrading it as well would work. But such a tool exists: cabal-install! So I created a dummy cabal package depending on _all_ packages in Debian, in the version existing in Debian. You can find it in the tool darcs repo and on http://anonscm.debian.org/darcs/pkg-haskell/tools/all-packages/all-packages.cabal By running $ cabal install --dry-run in that directory cabal will verify the mentioned packages in their respective version can be installed together. So now, before adding foo and upgrading bar, I enter these changes in the cabal file and see what breaks. Great! So the policy should be that the version in the file as commited should be the version in Debian, or the version in the repos if they were upgraded, but could not yet be built (waiting for some binNMU to happen or some sponsor to get active). Some packages are known to be broken (e.g. Agda – Iain, didn’t you want to upgrade that in December?), others got their dependencies patched, which of course Cabal does not know about. These are commented out. Hence the file also serves as a good TODO list. My remaining worry is how to keep the file up to date. If everyone pays attention to it when upgrading libraries or adding package and does it manually, no problem. But I fear that this will not happen, so we should have a tool that compares the file with the archive and our repos and tells us about discrepancies. Any suggestions (or working code) here? 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