2013-04-29 2 views
5

feststelle Ich schreibe jetzt todo.sh in Haskell, um besser zu verstehen, wie IO-Monaden funktionieren, und ich werde cmdArgs verwenden, um Eingaben zu analysieren, wie argparse in Python.Wie man Abhängigkeiten in Haskell apps

Meine Frage ist, wie kann ich die Abhängigkeit von cmdArgs wie Pip's requirements.txt pin?

Django==1.5.1 
South==0.7.6 

Und, ist es in Ordnung, mein Paket in Hackage zu verteilen?

+0

Technisch gesehen können Sie das tun, aber es wird als guter Stil angesehen, der [Package Versioning Policy] (http://www.haskell.org/haskellwiki/Package_versioning_policy#Dependencies_in_Cabal) zu folgen und Versionsbereiche zu verwenden. –

+0

Hackage hat ein [todos] (http://hackage.haskell.org/package/todos) Paket. Sie sollten das vergleichen. –

+0

@GabrielGonzalez, tatsächlich mache ich es nicht zu verteilen, ich mache für das Lernen. Verteilen mit Hackage ist nur ein weiterer Schritt des Lernens. –

Antwort

6

Verwenden Sie das build-depends Feld in Ihrer .cabal Datei

build-depends: 
    cmdargs == 0.10.3 

Aber eine genaue Version Angabe ist in der Regel nicht die beste Idee, so

build-depends: 
    cmdargs >= 0.8 && < 0.11 

gibt eine Reihe von zulässigen Versionen.

Und, ist es in Ordnung, mein Paket in Hackage zu verteilen?

Nicht, wenn Sie wissen, dass es für niemanden jemals nützlich sein wird.

Mit anderen Worten, ja, sicher ist es in Ordnung. Dafür benötigen Sie einen Account bei Hackage, der allerdings einige Zeit in Anspruch nehmen kann.