Как мне создать подходящий файл .tar.gz для использования с `cabal upload`? - PullRequest
6 голосов
/ 06 апреля 2010

Стандартный способ поделиться библиотекой Haskell с другими программистами - создать пакет Cabal и загрузить его в http://hackage.haskell.org. Я написал библиотеку, которой хочу поделиться, и Я успешно создал пакет Cabal, используя инструкции онлайн для создания файлов Cabal. Я собрал пакет и установил его локально - работает нормально. Теперь я хочу загрузить его в Hackage. Но cabal upload хочет файл .tar.gz. Есть пачки документации Cabal, и я не могу найти, что должно войти в этот .tar.gz или как я должен его создать.

Кто знает или знает, где я могу узнать, как создать .tar.gz, который будет правильно работать с cabal upload?

Ответы [ 2 ]

12 голосов
/ 07 апреля 2010

Из вики :

Поскольку код кабализован, мы можем создать tar-архив напрямую с помощью cabal-установки (вы также можете использовать runhaskell Setup.hs sdist, но в вашей системе нужен tar 1 ):

$ cabal sdist
Building source dist for haq-0.0...
Source tarball created: dist/haq-0.0.tar.gz

Преимущество заключается в том, что Cabal выполнит немного больше проверок и обеспечит наличие в tar-архиве структуры, которую ожидает HackageDB. Обратите внимание, что для этого необходим файл LICENSE. Он упаковывает файлы, необходимые для сборки проекта; чтобы включить другие файлы (такие как Test.hs в приведенном выше примере и наш README), нам нужно добавить:

extra-source-files: Tests.hs README

в файл .cabal, чтобы все было включено.

4 голосов
/ 07 апреля 2010

Или, если вы используете дарки,

darcs dist

Обратите внимание, что cabal sdist будет принимать только файлы, перечисленные в файле .cabal, поэтому вам может потребоваться добавить файлы README и т. Д. Под extra-source-files:

Вы можете проверить, есть ли у вас действующий тарбол с

cabal check

, который запускает те же тесты, что и Hackage.

...