haskell - mac - ¿Cómo instalar/usar una versión local del paquete usando Stack?
stack haskell (1)
La situación es que estoy intentando instalar Netwire usando Stack. Sin embargo, hay un problema en la última versión de la red 5.0.1, según lo informado por dhobbs: http://hub.darcs.net/ertes/netwire/issue/13
Como no sé cuándo se solucionará el problema, descargué el repositorio y realicé el cambio yo mismo. Sin embargo, no entiendo cómo instalar una versión localmente parcheada. stack install
no lo instala en ~/.stack
. ¿Alguien tiene alguna idea?
Actualizar
Ahora estoy desarrollando algunas otras bibliotecas usando Stack. ¿Cómo hago que otro proyecto use esas bibliotecas? La codificación de una ruta relativa se ve increíblemente fea.
Así que tienes un proyecto en el que quieres usar tu versión Netwire parcheada localmente y en tu proyecto tienes un stack.yml
, como un ejemplo:
flags: {}
packages:
- ''.''
extra-deps: {}
resolver: lts-3.7
También tiene una dependencia de netwire
declarada en su archivo cabal.
Para usar su Netwire parcheado en este proyecto suyo, simplemente coloque el paquete Netwire parcheado en un subdirectorio de su proyecto, quizás llamado netwire
, y actualice su stack.yml
como tal:
flags: {}
packages:
- ''.''
- netwire
extra-deps: {}
resolver: lts-3.7
Ahora stack build
construirá su proyecto con la versión de Netwire parcheada.
También puede poner la fuente modificada en línea (si la licencia lo permite) y referirse a la fuente usando una URL de tarball
- https://example.com/netwire.tar.gz
o un repositorio git y una referencia de compromiso:
- location:
git: [email protected]/netwire
commit: 6a86ee32e5b869a877151f74064572225e1a0398
(Consulte la documentación para obtener más información: https://docs.haskellstack.org/en/stable/yaml_configuration/#packages-and-extra-deps )