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