Я пишу программу на Haskell на моем Mac (исполняемый файл командной строки, а не приложение ). Я использую GitHub для размещения репозитория git и домашней страницы. Я сделал файлы
и Setup.hs
, так как Cabal упрощает сборку, тестирование и создание документации. Я мог бы также загрузить на Hackage, я не знаю.
Когда я помечаю версию 1.0, я хочу создать формулу Homebrew для загрузки архива с GitHub и его сборки. Я хочу, чтобы единственной зависимостью был GHC .
Я буду использоватьrunhaskell Setup
configure
/ build
/install
(с префиксом как /usr/local/Cellar/… )вместо команды cabal
, чтобы избежать зависимости от установки cabal -.
Это все нормально, пока я не начну использовать пакеты от Hackage, например. пламя -строитель и эзон. Как мне с этим справиться?
Я не хочу заставлять не -пользователей Haskell загружать всю платформу Haskell. В идеале люди должны иметь возможность просто позволить Homebrew установить GHC до того, как он соберет мою программу, а затем, если они того пожелают, удалить GHC после. Если я сделаю платформу Haskell зависимостью и сначала установлю свои зависимости Haskell с помощью установки cabal -или аналогичной,
~/.cabal/
с пакетами останется, даже если впоследствии ониbrew uninstall haskell-platform
cabal install
людьми, т. е. ограничивать возможности по большей части Haskellers.Я считаю Cabal (-install )+ Hackage полезным инструментом для разработки и для пользователей Haskell, но не подходящим для этого.
Должен ли я просто загрузить исходный код пакетов, которые я использую, и включить его в свое дерево исходных текстов, а также добавить его в команду сборки? Или я должен использовать опцию --package-db
(, найденную здесь)? Или моя формула могла бы загрузить tar-архив для пакета на лету и также собрать его?
Посмотрел немного на cabal2arch(Arch wiki , репозиторий GitHub)но я не уверен, как он обрабатывает зависимости, или он просто делает то, что я не хочу делать.