2016-12-10 2 views
2

J'écris une bibliothèque et un projet qui utilise la bibliothèque. Il est commun avec Stack de mettre les deux dans le même dossier et de maintenir un projet multi-paquet, mais je veux avoir deux projets séparés à la place. Stack a des dépendances externes pour cela, mais elles sont spécifiées par des emplacements et les projets s'exécutent sur plusieurs machines, donc il n'est pas pratique de spécifier des chemins (à moins qu'il soit possible d'avoir des projets Stack imbriqués). Je ne veux pas non plus utiliser les emplacements git, car il me semble fastidieux de spécifier explicitement les commits (ou peut-être pas nécessaire?), Et je ne veux pas empaqueter le dépôt dans une archive, puis le télécharger chaque fois que je change quelque chose .Comment développer avec Stack deux paquets distincts mais liés?

Idéalement, je voudrais être en mesure d'installer la bibliothèque sur une machine et de la référencer en quelque sorte au stack.yaml par son nom et non par son emplacement. Est-il possible de faire ça? Si non, existe-t-il un moyen pratique de maintenir deux paquets distincts mais liés?

+0

Je ne connais pas Stack, mais avez-vous considéré les sous-modules git? – jonrsharpe

+0

@jonrsharpe, merci, "submodule" est un terme dont j'avais besoin. Il [semble] (https://github.com/commercialhaskell/stack/issues/348) les gens les utilisent en effet avec Stack pour ce genre de tâche. Pourtant, je préférerais faire référence à la bibliothèque par son nom. – user3237465

+0

Cela ressemble un peu à un hackage privé. [Ici] (https://www.reddit.com/r/haskell/comments/5eo2w3/question_solution_for_a_private_package_repo/) est une discussion récente sur cette approche et les approches connexes. – sjakobi

Répondre

0

Je fini par utiliser des sous-modules git comme jonrsharpe suggéré. Fonctionne bien jusqu'à présent.