From 559ad0b6bdf1b3a0a704878457e1fef20ba6514f Mon Sep 17 00:00:00 2001 From: Julien Blanchard Date: Sun, 15 Mar 2015 14:47:58 +0100 Subject: [PATCH] FAQ & Cabal closes #20 --- guide-fr.md | 47 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/guide-fr.md b/guide-fr.md index 596555b..83a9f51 100644 --- a/guide-fr.md +++ b/guide-fr.md @@ -484,6 +484,51 @@ Disponible sur [hackage](https://hackage.haskell.org/package/aeson) et - [SublimeHaskell](https://github.com/SublimeHaskell/SublimeHaskell) +# FAQ et utilisation de Cabal + +## Une FAQ fantastique + +En plus d'être un guide extraordinaire pour pleins de sujets comme les GADT, +il couvre aussi des some useful basics for Cabal + +- [Ce que j'aurais aimé savoir lors de mon apprentissage d'Haskell](http://dev.stephendiehl.com/hask/) + aussi sur github [ici](https://github.com/sdiehl/wiwinwlh). + +## recommandations pour Cabal + +L'enfer avec Cabal était un problème pour les utilisateurs d'Haskell avant l'introduction +des bacs à sable. Installer en dehors d'un bac à sable va installer dans le package-db +de l'utilisateur. Ce n'est *pas* une bonne idée mis à part pour quelques librairies +fondamentales comme Cabal, alex, et happy. Rien d'autre ne devrait être installé dans le +package-db de l'utilsateur ou le global à moins que vous ne sachiez ce que vous faites. + +Quelques bonnes pratiques pour éviter l'enfer avec cabal sont disponibles +[ici](http://softwaresimply.blogspot.com/2014/07/haskell-best-practices-for-avoiding.html). + +Pour expérimenter avec un package ou démarrer un projet, commencez par +`cabal sandbox init` dans un nouveau dossier. + +Pour résumer: + +- Toujours utiliser des bacs à sable pour installer de nouveaux packages, créer des + projets, ou démarrer des experimentations + +- Utiliser `cabal repl` pour démarrer une instance ghci dans un projet + +L'approche basée sur les bacs à sable que je suggère permet d'éviter les problèmes +liés à la gestion des dépendances des packages, mais elle n'est pas compatible avec +les packages pré-construits fournis par Haskell Platform. +Si vous apprenez Haskell et ne comprenez pas comment ghc-pkg et Cabal fonctionnent, +*évitez platform* et utilisez les instructions préalables du guide à la place. + +## Stackage + +Pour les utilisateurs (de Yesod généralement) qui ont des problèmes de build, considérez Stackage. + +- Un bon résumé de ce qu'est Stackage + [ici](https://www.fpcomplete.com/blog/2014/05/stackage-server). + +L'auteur éstime que Stackage est généralement plus utile que `cabal freeze`. # Hoogle et Haddock @@ -540,6 +585,6 @@ cabal haddock --hoogle --hyperlink-source \ # TravisCI Si vous êtes comme moi un grand fan de [TravisCI](https://travis-ci.org), je -vous recommande alors *fortement* de jeter un œuil à +vous recommande alors *fortement* de jeter un œuil à [multi-ghc-travis](https://github.com/hvr/multi-ghc-travis) pour avoir une base pour de fichier `travis.yml` pour vos projets Haskell.