2010-04-06 1 views
6

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

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

+0

Проголосовать за закрытие? Это * так * по теме ... – Thomas

+1

@Thomas: Вы неловко плакате, у которого есть 3x ваш представитель? Шутки в сторону?! :-P Поклонитесь своим старейшинам! :-P –

+0

Я был мертв серьезно. Это определенно вопрос, связанный с программированием, и я был удивлен, увидев, что кто-то проголосовал за закрытие его как вне темы. Кроме того, я склоняюсь. – Thomas

ответ

12

От the wiki:

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

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

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

extra-source-files: Tests.hs README 

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

+0

Отлично! Благодарю вас. Особенно для тега дополнительных файлов-файлов! –

4

Или, если вы используете Darcs,

darcs dist 

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

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

cabal check 

, который выполняет те же тесты, что и Hackage.

+0

Скажите, почему вы не задали никаких вопросов? – SamB

+3

Он дон. Он все знает. – Thomas

+0

darcs. RRRRRRR. Но спасибо за «кабальную проверку»! –