Taskwarrior

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Taskwarrior
Image illustrative de l'article Taskwarrior
Logo

Image illustrative de l'article Taskwarrior

Développeur Paul Beckingham,
Federico Hernandez,
David J Patrick,
John Florian[1]...
Première version
Dernière version 2.1.1 ()
Écrit en C++
Environnement Multiplateforme
Langue Anglais
Type Gestionnaire de tâches
Licence Licence MIT
Site web http://taskwarrior.org/

Taskwarrior est un logiciel open-sources en ligne de commande permettant de gérer ses tâches. Il publié sous licence MIT et est multiplateforme.

Il permet de créer, modifier, supprimer des tâches ; de leur assigner un ou plusieurs projets, priorités et tags et de les visionner à travers divers rapports.

Utilisation[modifier | modifier le code]

Les commandes permettant l'utilisation de Taskwarrior suivent la syntaxe générique suivante :

task <filtre> <commande> <modifications>

Gestion des tâches[modifier | modifier le code]

Les commandes add, modify et done permettent respectivement d'ajouter, de modifier et de marquer comme faite une tâche.

Chaque tâche a une description qu'il est obligatoire de préciser dés l'ajout, ainsi que de multiples attributs (tels qu'un projet, une priorité, des tags, une date d'échéance, une dépendance...). Des valeurs peuvent être assignées à tout ou partie des attributs et ses valeurs peuvent être modifiée à tout moment.

Certains de ces attributs ont toutefois quelques spécificités. La priorité d'une tâche ne peut être fixée qu'à l'une des trois valeurs suivantes : H pour high (élevée), M pour medium (moyenne) ou L pour low (basse). La date d'échéance doit être fixée selon certaines règles, bien que de nombreuses manières différentes permettent de la définir, entre autres :

  • l'équivalent anglais de n'importe quel jour de la semaine : eg. friday indique vendredi prochain
  • des abréviations anglaises pour désigner le début (start) ou la fin (end) de la semaine (week), du mois (month), de l'année (year). eg. som désigne le début du mois (start of month) ; eoy désigne la fin de l'année (end of year). Attention cependant, la semaine désigne la semaine de travail (qui commence le lundi et finit le vendredi). Il suffit toutefois d'utiliser eocw pour désigner la semaine du calendrier (calendar week) qui commence le dimanche ou le lundi et se termine le samedi ou le dimanche. Ainsi eow désigne la fin de la semaine de travail (vendredi) et eocw, la fin de la semaine du calendrier.
  • une date sous la forme MM/JJ/AAAA ou sous la forme déterminée par la norme ISO 8601.
Exemple
$ task add Une tâche...
Created task 1.
$ task add Une autre tâche
Created task 2.
$ task add Une troisième tâche priority:L depend:1,2 +unTag
Created task 3.

On crée d'abord plusieurs tâches en spécifiant une description et, parfois, un ou plusieurs attributs. Ici, la tâche 3 a une priorité basse, dépend des tâches 1 et 2 et a un tag « unTag ».

$ task 1-3 modify priority:M
  - Priority will be set to 'M'.
Modify task 1 'Une tâche...'? (yes/no/all/quit) a
 
Modifying task 1 'Une tâche...'.
Modifying task 2 'Une autre tâche'.
Modifying task 3 'Une troisième tâche'.
Modified 3 tasks.
 
$ task modify project:DécouverteDeTaskwarrior due:eocw
This command has no filter, and will modify all tasks.  Are you sure? (yes/no) y
  - Due will be set to '8/11/2012'.
  - Project will be set to 'DécouverteDeTaskwarrior'.
Modify task 1 'Une tâche...'? (yes/no/all/quit) y
 
Modifying task 1 'Une tâche...'.
  - Due will be set to '8/11/2012'.
  - Project will be set to 'DécouverteDeTaskwarrior'.
Modify task 2 'Une autre tâche'? (yes/no/all/quit) a
 
Modifying task 2 'Une autre tâche'.
Modifying task 3 'Une troisième tâche'.
Modified 3 tasks.
The project 'DécouverteDeTaskwarrior' has changed.  Project 'DécouverteDeTaskwarrior' is 0% complete (3 of 3 tasks remaining).

Une fois les tâches créées, on peut les modifier en spécifiant un filtre qui détermine quelle(s) tâche(s) est (sont) à modifier. Un filtre peut être l'ID d'une tâche (eg. 1 désignera la tâche 1 : 'Une tâche...'), une énumération d'ID (eg. 1,3 désignera les tâches 1, 'Une tâche...', et 3, 'Une troisième tâche'), une plage d'ID, comme ici, où 1-3 signifie les tâches 1 et 2 et 3 (équivalent à 1,2,3; mais est très utile si l'on désigne une plage importante : eg. 9-34). Un filtre peut aussi être un attribut quelconque : eg. priority:H filtrera uniquement les tâches avec une priorité élevée. On peut aussi combiner les filtres avec les opérateurs logiques and, or et xor.

En l'absence de filtre, comme lors de la seconde modification, l'action affecte toutes les tâches. Ici toutes les tâches font maintenant partie du projet DécouverteDeTaskwarrior et ont pour échéance la fin de la semaine du calendrier.

$ task 1 done
Completed task 1 'Une tâche...'.
Completed 1 task.
Project 'DécouverteDeTaskwarrior' is 33% complete (2 of 3 tasks remaining).

On termine en marquant la tâche 1 comme faite.

Rapports sur les tâches[modifier | modifier le code]

Parmi les rapports prédéfinis, on notera :

  • list (liste toutes les tâches avec quelques informations complémentaires à chaque tâche comme son projet, sa priorité et son échéance),
  • long (comme list mais avec plus de détails comme les dépendances, les tags),
  • next (liste les tâches les plus urgentes, déterminées par le logiciel en calculant l'« urgence » d'une tâche à l'aide de sa priorité, de son échéance[2]...),
  • summary (liste tous les projets et indique pour chacun le nombre de tâches restant à effectuer ainsi que l'avancement du projet qui correspond au pourcentage de tâches du projet réalisées).

task <nom-du-rapport> permet de visualiser un rapport. Par exemple, task list permet de visualiser le rapport list. Il est toutefois possible de visualiser un rapport en utilisant un filtre, par exemple task priority:H list.

En plus de la vingtaine de rapports prédéfinis[3], il est aussi possible de définir ses propres rapports en éditant le fichier de configuration .taskrc[4].

Exemple

En continuant l'exemple de la partie précédente, voici ce que peuvent donner les quelques rapports précédemment cités :

$ task long
 
ID Project                  Pri Added    Started Due       Recur Countdown Age Deps Tags  Description          
 1 DécouverteDeTaskwarrior  M   8/4/2012         8/11/2012     -   -5 days  1d            Une autre tâche      
 2 DécouverteDeTaskwarrior  M   8/4/2012         8/11/2012     -   -5 days  1d 1    unTag Une troisième tâche  
 
2 tasks

Les quatre rapports cités listent tous uniquement les tâches non terminées, ainsi « Une tâche... » n'est pas listé. De plus, les ID affichés ici ne sont pas constants et peuvent changer lorsqu'une tâche est marquée comme faite. Un identifiant désignant une tâche de manière unique existe cependant sous le nom d'UUID et a une valeur en hexadécimal.

$ task summary
 
Project                 Remaining Avg age Complete 0%                        100%
DécouverteDeTaskwarrior         2  19 hrs      33% ||||||||||                    
 
1 projects

Dans le rapport summary, une barre de progression (en réalité plus esthétique que celle de l'exemple) permet d'apprécier l'avancement de chaque projet.

$ task next
 
ID Project                  Pri Due       A Age Urgency Description          
 1 DécouverteDeTaskwarrior  M   8/11/2012    1d    19.1 Une autre tâche      
 2 DécouverteDeTaskwarrior  M   8/11/2012    1d    6.95 Une troisième tâche  
 
2 tasks

Ici, les tâches sont classées par « urgence », paramètre calculé entre autres à partir de la priorité et de l'échéance.

Note : En réalité, la commande task seule affiche le rapport next et est donc équivalente à task next .

Notes et références[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Annexes[modifier | modifier le code]

Article connexe[modifier | modifier le code]

Liens externes[modifier | modifier le code]