Wie erstelle ich eine geeignete tar.gz-Datei für die Verwendung mit `Cabal upload`?
-
24-09-2019 - |
Frage
Der üblicher Weg eine Haskell-Bibliothek mit anderen Programmierern zu teilen, ist ein Cabal-Paket zu erstellen und laden Sie sich auf http: // Hackage .haskell.org . Ich habe eine Bibliothek geschrieben ich teilen möchte, und
Ich habe erfolgreich ein Cabal Paket mit den Richtlinien für die Erstellung von Online-Kabalen-Dateien erstellt. Ich habe das Paket gebaut und installiert es lokal funktioniert gut. Jetzt will ich es Hackage zu. Aber cabal upload
will eine tar.gz-Datei. Es gibt reams von Cabal Dokumentation, und ich kann nicht finden, was in diesem Tar.gz gehen soll, oder wie soll ich es schaffen.
Wer weiß, oder weiß, wo ich herausfinden kann, wie man eine .tar.gz erstellen, die richtig mit cabal upload
funktionieren werden?
Lösung
das Wiki :
Da der Code cabalised ist, können wir ein Tarball mit Kabale zu installierende direkt erstellen (Sie können auch verwenden runhaskell Setup.hs Sdist, aber Sie müssen auf Ihrem System tar 1 ):
$ cabal sdist
Building source dist for haq-0.0...
Source tarball created: dist/haq-0.0.tar.gz
Dies hat den Vorteil, dass Cabal wird die Überprüfung ein bisschen mehr tun, und sicherzustellen, dass die Tarball die Struktur hat, dass HackageDB erwartet. Beachten Sie, dass es funktioniert die Lizenzdatei benötigen zu existieren. Es Pakete bis die Dateien benötigt, um das Projekt zu erstellen; andere Dateien (wie Test.hs in dem obigen Beispiel und unsere README) aufzunehmen, müssen wir hinzufügen:
extra-source-files: Tests.hs README
auf die .cabal Datei alles aufgenommen haben.
Andere Tipps
Oder wenn Sie mit darcs,
darcs dist
Beachten Sie, dass cabal sdist
nur in der .cabal
Datei aufgelisteten Dateien aufheben, so dass Sie benötigen könnten READMEs etc unter extra-source-files:
Sie können prüfen, die Sie haben eine gültige Tarball mit
cabal check
, die die gleichen Tests ausführt, dass Hackage ausgeführt wird.