Le Lundi 9 Mai 2005 20:51, Chicha a écrit :
> Ce qui semble poser problème c'est la présentation à l'écran des erreurs
> (l'indentation).
Non, ce qui pose problème, c'est le nombre de niveaux de « détails » qui n'est
pas suffisant. C'est totalement indépendant de la manière dont les messages
sont présentés à l'écran.
> Pour moi les niveaux qu'on avait choisit au départ sont bons : QUIET,
> ERROR, WARNING, INFO, DETAIL, FULL.
> Un niveau 1,2,3,..., N n'a aucun sens du point de vue de l'utilisateur
> car il ne sait pas à l'avance ce qu'il va rencontrer comme message.
> Je ne vois pas comment un utilisateur peut utiliser Ncooker -v4
> <command> plutôt que Ncooker -v3. Le seul sens que ça à c'est au niveau
> visuel : je veux 3 indentations ou 4 car je sais que j'aurais plus ou
> moins d'infos.
Je ne suis pas du tout d'accord avec cette dernière phrase :-D
Je serais très surpris que l'utilisateur associe l'option « -v » avec l'aspect
visuel des messages. Si c'était l'option « -C|--no-color », là ok. Le nom de
l'option indique clairement un rapport avec la couleur. Mais l'option
« -v|--verbose » n'indique nullement un rapport avec l'aspect visuel des
messages, mais bien dans quelle proportion Ncooker doit être « bavard ».
Pour moi, chaque niveau de verbosité permet d'afficher des précisions
supplémentaires, des détails sur les opérations sous-jascentes qui
constituent l'opération plus générale affiché par le niveau de verbosité
précédent. Je m'explique :-) :
C'est un peu comme la table des matières d'un livre. Celle-ci présente les
chapitres du livre, et pour chacun d'eux ses sous-chapitres, etc. Les
sous-chapitres indiquent le découpage logique, et par conséquent le
« détail », d'un chapitre. Pour renforcer ce découpage, plusieurs éléments
peuvent être utilisés. Ça peut être des éléments structurels comme la
numérotation :
1. Les outils Nasgaia ............ 3
1.1. Ncooker ......................... 3
1.2. Nsetup ........................... 10
ou des éléments visuels comme l'indentation :
Les outils Nasgaia ............ 3
Ncooker ........................ 3
Nsetup .......................... 10
(voire les deux :
1. Les outils Nasgaia ............ 3
1.1. Ncooker ..................... 3
1.2. Nsetup ....................... 10)
Dans le cas où ce sont des éléments visuels, on comprend que l'indentation
utilisée indique que Ncooker et Nsetup sont des éléments constitutifs des
Outils Nasgaia. Leur présence, leur indication dans la table des matières, ne
fait que détailler, apporter des précisions sur ce que regroupe la notion
plus générale Outils Nasgaia.
Pour moi, c'est exactement la même chose pour les messages de Ncooker, sauf
qu'on peut choisir le niveau de détails à afficher : -v 1 n'affiche que les
chapitres, -v 2 affiche les chapitres et les sous-chapitres, etc. Le nombre
utilisé correspond donc à un niveau de « détails », et n'a rien à voir avec
l'aspect visuel de ces messages, qui reste à la discrétion de Ncooker.
Exemple :
$ Ncooker -v 1 pack working_dir
Creation of the working_dir package ... [ OK ]
$ Ncooker -v 2 pack working_dir
Creation of the working_dir package ...
Checking working_dir directory content ... [ OK ]
Preparing packaging environment ... [ OK ]
Create "working_dir" NBUILD package ... [ OK ]
Cleaning packaging environment ... [ OK ]
On voit que le fait de demander à Ncooker d'être plus « explicite » permet de
savoir en quoi consiste l'opération générale « Creation of the working_dir
package ». On pourrait obtenir la même chose en utilisant une numérotation au
lieu d'une indentation :
$ Ncooker -v 1 pack working_dir
1. Creation of the working_dir package ... [ OK ]
$ Ncooker -v 2 pack working_dir
1. Creation of the working_dir package ...
1.1. Checking working_dir directory content ... [ OK ]
1.2. Preparing packaging environment ... [ OK ]
1.3. Create "working_dir" NBUILD package ... [ OK ]
1.4. Cleaning packaging environment ... [ OK ]
Ça montre bien que l'option -v influe sur le niveau de détails affichés, et
non sur l'aspect visuel.
> Ncooker -v INFO pack foobar
>
> packing foobar......... <-- Verbosité INFO
> checking foobar..... <-- Verbosité INFO
>
> Ncooker -v DETAIL pack foobar
>
> packing foobar......... <-- Verbosité INFO
> checking foobar..... <-- Verbosité INFO
> checking build file <-- Verbosité DETAIL
>
>
> Ncooker -v INFO check foobar.nbuild
>
> checking foobar..... <-- Verbosité INFO
>
> Ncooker -v DETAIL check foobar.nbuild
>
> checking foobar..... <-- Verbosité INFO
> checking build file <-- Verbosité DETAIL
>
>
> Voilà ce que je souhaiterai obtenir.
Je trouve le principe intéressant, mais je pense pas qu'il soit applicable :-)
Il a des inconvénients, par exemple :
(1) $ Ncooker -v INFO pack foobar
packing foobar......... <-- Verbosité INFO
checking foobar..... <-- Verbosité INFO
(2) $ Ncooker -v INFO check foobar.nbuild
checking foobar..... <-- Verbosité INFO
On voit que, bien que le même niveau de verbosité INFO soit utilisé, les
commandes (1) et (2) n'affichent pas le même niveau de détails. On sait que
ce sont bien des messages de niveau INFO parce que tu le précises à coté,
mais pour (1), on dirait qu'un niveau de détail supplémentaire est affiché
avec « checking foobar ».
Ton exemple pour « Ncooker -v DETAIL pack foobar » n'est pas complet. On
devrait obtenir qqchose comme :
(3) $ Ncooker -v DETAIL pack foobar
packing foobar......... <-- Verbosité INFO
checking foobar..... <-- Verbosité INFO
checking build file <-- Verbosité DETAIL
creating packaging environment <-- Verbosité DETAIL
Create "working_dir" NBUILD package <-- Verbosité DETAIL
Cleaning packaging environment <-- Verbosité DETAIL
Là, on voit qu'il y a un problème. Les trois derniers messages ne s'affichent
qu'au niveau DETAIL alors que leur présentation laisse à penser qu'ils
devraient déjà s'afficher au niveau INFO (ce qui n'est pas le cas, voir
l'exemple (1) ).
Si on joue sur la présentation pour les indenter comme « checking build
file », on va croire que ce sont des étapes qui font partie de « checking
foobar », ce qui n'est pas le cas. Donc ça ne va pas.
Si on les transforme en message de niveau INFO, on va obtenir ceci pour le
niveau de versosité INFO :
$ Ncooker -v INFO pack foobar
packing foobar......... <-- Verbosité INFO
checking foobar..... <-- Verbosité INFO
creating packaging environment <-- Verbosité INFO
Create "working_dir" NBUILD package <-- Verbosité INFO
Cleaning packaging environment <-- Verbosité INFO
C'est mieux, mais on accentue encore plus le premier problème : pourquoi
a-t-on autant de message affichés pour Pack, et pas pour Check alors que
c'est le même niveau INFO ? :-)
Je trouve que cette solution apporte beaucoup d'incohérences. Je ne suis donc
pas convaincu :-)
Pour ce qui est de la solution que j'ai proposé, je suis d'accord avec toi que
des noms de niveaux comme 1, 2, 3 ... sont beaucoup moins parlant que INFO,
DETAIL et FULL (ce qui ne veut pas dire qu'ils ne le sont pas du tout :-) A
nous aussi de faire en sorte que ce soit clair dans l'aide). Je me suis
inspiré de certains outils en ligne de commande qui utilisent le principe
suivant :
$ tool -v <--- 1 niveau de détail (v pour verbose)
$ tool -vv <--- 2 niveaux de détail
$ tool -vvv <--- 3 niveaux de détail
...
Je vais regarder quelles sont les solutions adoptées par d'autres outils ...
++
Gontran