Comment puis-je créer un fichier tar.gz approprié pour être utilisé avec `cabale upload`?
-
24-09-2019 - |
Question
La méthode standard pour partager une bibliothèque Haskell avec d'autres programmeurs est de créer un package Cabal et le télécharger http: // hackage .haskell.org . J'ai écrit une bibliothèque que je souhaite partager, et
J'ai créé avec succès un paquet Cabal en utilisant les directives en ligne pour la création de fichiers cabale. Je l'ai construit le paquet et installé localement fonctionne très bien. Maintenant, je veux télécharger à Hackage. Mais cabal upload
veut un fichier tar.gz. Il y a ramettes de la documentation Cabal, et je ne peux pas trouver ce qui est censé aller dans ce tar.gz ou comment je suis censé créer.
Qui sait ou sait où je peux trouver, comment créer un tar.gz qui fonctionnera correctement avec cabal upload
?
La solution
le wiki :
Étant donné que le code est cabalised, nous pouvons créer un paquet avec cabale installer directement (vous pouvez aussi utiliser runhaskell Setup.hs sdist, mais vous avez besoin de goudron sur votre système 1 ):
$ cabal sdist
Building source dist for haq-0.0...
Source tarball created: dist/haq-0.0.tar.gz
Ceci a l'avantage que Cabal fera un peu plus le contrôle, et faire en sorte que le tarball a la structure qui HackageDB attend. Notez qu'il nécessite le fichier de licence d'exister. Il empaquette les fichiers nécessaires à la construction du projet; d'inclure d'autres fichiers (tels que Test.hs dans l'exemple ci-dessus, et notre README), nous devons ajouter:
extra-source-files: Tests.hs README
au fichier .cabal d'avoir tout compris.
Autres conseils
Ou si vous utilisez darcs,
darcs dist
Notez que cabal sdist
ne partirai fichiers répertoriés dans le fichier de .cabal
, de sorte que vous pourriez avoir besoin d'ajouter README etc sous extra-source-files:
Vous pouvez vérifier que vous avez une archive tar valide avec
cabal check
qui exécute les mêmes tests que Hackage courra.