Ich versuche gerade, mein erstes Paket auf Hackage hochzuladen (juhu!), und ich habe diese Fehlermeldung erhalten:
Die Abhängigkeit "build-depends: base" gibt keine Obergrenze für die Versionsnummer an. Jede größere Veröffentlichung des 'base'-Pakets ändert die API auf verschiedene Weise und die meisten Pakete benötigen einige Änderungen, um damit kompilieren zu können. Es wird empfohlen, eine Obergrenze für die Version des 'base'-Pakets anzugeben. Dies stellt sicher, dass Ihr Paket weiterhin gebaut werden kann, wenn eine neue Hauptversion des Basispakets veröffentlicht wird. Wenn Sie nicht sicher sind, welche Obergrenze Sie verwenden sollen, verwenden Sie die nächste Hauptversion. Wenn Sie Ihr Paket zum Beispiel mit der "Basis"-Version 2 und 3 getestet haben, verwenden Sie "build-depends: base >= 2 && < 4".
Das scheint ein durchaus akzeptabler Grund zu sein, mein Paket abzulehnen.
Gibt es ein gutes Werkzeug zum Testen meines Pakets gegen verschiedene Versionen von base
damit ich sehen kann, wo die Grenzen liegen (und nicht nur raten muss)? Das Beste, was mir einfällt, ist, ein Shell-Skript zu verwenden, um etwas zu tun wie:
% for v in $BASE_VERSIONS
do
cabal install base-$v &&\
cabal configure --enable-tests &&\
cabal build &&\
cabal test && echo "$v ok" || echo "$v fail"
done
Aber ich habe das Gefühl, dass es etwas Besseres geben sollte.