2017-10-07 4 views
2

Un problème courant avec les limites supérieures est que les auteurs de paquets étant incertains opter pour des limites supérieures conservatrices de leurs dépendances (par exemple base). Cela tend à être un choix impopulaire pour les utilisateurs qui pourraient être empêchés d'utiliser de tels paquets à l'avenir.Comment obtenir des limites supérieures mises à jour pour un paquet Hackage?

Je me suis récemment rendu compte que ce problème pourrait avoir une solution où l'auteur pousse les changements de métadonnées pour sinon changer le paquet as seen here. Comment les utilisateurs peuvent-ils profiter de cette nouvelle fonctionnalité? Est-il documenté quelque part en détail ou est-ce expérimental?

Répondre

2

Les utilisateurs ne peuvent tirer parti de cette fonctionnalité exacte qu'en demandant au mainteneur du paquet d'effectuer une telle révision de dépendances sur Hackage. Par tous les moyens, faites cela quand vous êtes sûr qu'une dépendance est inutilement conservatrice, mais préparez-vous à ce que cela ne se produise pas tout de suite.

Mais vous n'avez pas besoin de juste pour installer un paquet sur votre machine avec des dépendances plus récentes que celles officiellement supportées. Il suffit d'utiliser

cabal install token-bucket --allow-newer base 

Vous pouvez au lieu d'installer directement à partir Hackage tirer le code source (le plus souvent de Github) dans un dépôt local

git clone [email protected]:hvr/token-bucket.git 
cd token-bucket 

... appliquer tout modifications aux dépendances que vous voulez

sed -i 's/\(base[^<]*\)<4.10/\1<4.11/' token-bucket.cabal 

... et d'installer à partir de ce flic local y:

cabal install 

Si rien d'autre, vous pouvez simplement obtenir la version exacte de hackage de la source à travers cabal fetch, mais l'OMI devrait toujours utiliser le système de contrôle de version native lors de la modification n'importe quelle base de code.