environnement erlang

10 views
Skip to first unread message

thierry henrio

unread,
Jul 19, 2011, 6:31:00 PM7/19/11
to erlang...@googlegroups.com
Salut!
Je ne me sens pas à l'aise avec mon environnement de dev erlang

Je suis sous mac : j'utilise rebar et textmate (vim bientôt peut-être, je ne suis pas content d'emacs sous mac)

J'aimerai :
une documentation locale 
en ruby, j'utilise : gem open ou yard + rdoc (ou le web :)

une intégration continue locale
en ruby, j'utilise guard, quand je modifie un fichier, le test se lance en bg

le packaging me parait "fragile" (par rapport à ruby|python)
~/src/erlang/upstreams $ git clone https://github.com/klacke/yaws.git
~/src/erlang/upstreams/yaws (master)$ rebar eunit
==> yaws (eunit)
Compiled src/yaws_shaper.erl
Compiled src/yaws_logger.erl
test/t3/app_test.erl:3: can't find include file "../ibrowse/src/ibrowse.hrl"

en ruby, je ferai quelque chose comme bundle install && (rake test|rspec spec)

J'ai raté des choses ?
Quelles options pour mes questions ?
?, Thierry

Loïc Hoguin

unread,
Jul 19, 2011, 6:41:50 PM7/19/11
to erlang...@googlegroups.com, thierry henrio
Hello !

On 07/20/2011 12:31 AM, thierry henrio wrote:
> Salut!

> Je ne me sens pas � l'aise avec mon environnement de dev erlang
>
> Je suis sous mac : j'utilise rebar et textmate (vim bient�t peut-�tre,


> je ne suis pas content d'emacs sous mac)

Je ne suis pas sur mac donc �a ne marchera pas forc�ment pareil ou aussi
bien pour toi, mais :

> J'aimerai :
> *une documentation locale *


> en ruby, j'utilise : gem open ou yard + rdoc (ou le web :)

Si ton Erlang est correctement install� :
erl -man

> *une int�gration continue locale*


> en ruby, j'utilise guard, quand je modifie un fichier, le test se lance
> en bg

Je crois que erlide fait �a mais c'est du Eclipse. A moins que ce soit
l'env emacs. J'utilise aucun personnellement.

Sinon regarde reloader.erl de mochiweb, il recharge le beam et lance les
tests eunit � chaque compile de fichiers modifi�s.

Au pire je crois que mac a un m�chanisme du type inotify qui surveille
les changements de fichiers et donc tu pourrais �crire un script
toi-m�me qui fait �a tout seul.

> *le packaging me parait "fragile" *(par rapport � ruby|python)


> ~/src/erlang/upstreams $ git clone https://github.com/klacke/yaws.git
> ~/src/erlang/upstreams/yaws (master)$ rebar eunit
> ==> yaws (eunit)
> Compiled src/yaws_shaper.erl
> Compiled src/yaws_logger.erl
> test/t3/app_test.erl:3: can't find include file "../ibrowse/src/ibrowse.hrl"
>
> en ruby, je ferai quelque chose comme bundle install && (rake test|rspec
> spec)

rebar deps, avec quelques options qui vont bien si besoin.

Par contre si les tests yaws marchent pas c'est probablement un bug chez
yaws, �a n'a rien � voir avec Erlang.

Sinon regarde agner, http://erlagner.org mais il n'est pas recommand�
d'installer des apps, la fa�on recommand�e est la d�pendence via rebar.
Installer des apps n'a de sens que pour des outils comme rebar ou des
profilers ou autres outils de dev et de diagnostic.

Bon courage.

--
Lo�c Hoguin
Dev:Extend

Alain Céleste

unread,
Jul 20, 2011, 5:20:50 AM7/20/11
to erlang...@googlegroups.com
Salut Thierry,

Pour l'éditeur, sous macosx, Aquamacs est vraiment très bien. Je conseille vivement d'installer erlang-mode (intégré dans la distrib OTP) et flymake (ce dernier réalise une compilation du code à la volée et pointe en continue sur les erreurs de syntaxe). Kevin Smith (je crois) a un blog ou il explique la config, si tu veux je peux essayer de retrouver le lien.

Pour la documentation locale, il y a erldocs. Tu peux télécharger l'archive. Personnellement, j'ai simplement créé un alias, je tape erldoc et mon navigateur m'affiche la doc indexée qui facilite la recherche des fonctions et la navigation dans la librairie. Il n'y a pas toutes les librairies ou applications, par exemple, eunit n'est pas dedans, mais c'est qd même confort.

Pour le packaging de tes propres app/librairies, c'est une question de respect des règles et bonnes pratiques. Choisir une arborescence projet adéquate, comprendre les scripts de configuration. Un outil comme rebar facilite le travail, mais ce n'est jamais exempt d'une part manuelle (il faut donc connaitre un peu la configuration de rebar - @tous un lien pour une doc correcte sur la config rebar ?).

Sinon, erlagner est quand même ce qui se fait de mieux pour l'install des packages/app individuels (pas intégrés comme dépendences d'autres app). Les gars font un bon boulot pour s'assurer de la bonne qualité des packages, il faut les féliciter.

Pour l'intégration locale continue, il y a des outils comme Jenkins (plutôt orienté vers le travail en équipe), mais pour des projets en local, je pense qu'une solution maison automatisant les build et jouant les tests peut très bien se faire. Moi j'essaie de tout faire depuis emacs ;) et c'est portable...(je bosse sur un portable MacBook Pro sous MacOSX et sur un ordi fixe sous Ubuntu). En contrepartie, cela ne me permet pas de gérer correctement la publication ou la mise en prod.

J'espère que ça peut t'aider et si tu veux d'autre tuyaux, n'hésite pas.


Alain CELESTE

18 rue Franklin
2ème étage
44000 Nantes
Tél.: 0675463746
Me contacter LinkedinTwitter

Reply all
Reply to author
Forward
0 new messages