The standard way to share a Haskell library with other programmers is to create a Cabal package and upload it to http://hackage.haskell.org. I've written a library I wish to share, and
I've successfully created a Cabal package using the guidelines online for creating cabal files. I've built the package and installed it locally—works fine. Now I want to upload it to Hackage. But cabal upload
wants a .tar.gz file. There are reams of Cabal documentation, and I can't find what is supposed to go into this .tar.gz or how I'm supposed to create it.
Who knows, or knows where I can find out, how to create a .tar.gz that will work properly with cabal upload
?
From the wiki:
Since the code is cabalised, we can create a tarball with cabal-install directly (you can also use runhaskell Setup.hs sdist, but you need tar on your system 1):
$ cabal sdist
Building source dist for haq-0.0...
Source tarball created: dist/haq-0.0.tar.gz
This has the advantage that Cabal will do a bit more checking, and ensure that the tarball has the structure that HackageDB expects. Note that it does require the LICENSE file to exist. It packages up the files needed to build the project; to include other files (such as Test.hs in the above example, and our README), we need to add:
extra-source-files: Tests.hs README
to the .cabal file to have everything included.
Or if you're using darcs,
darcs dist
Note that cabal sdist
will only pick up files listed in the .cabal
file, so you might need to add READMEs etc under extra-source-files:
You can check you've a valid tarball with
cabal check
which runs the same tests that Hackage will run.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With