Mylar propose donc une approche centrée sur des tâches. Celles-ci peuvent être des tickets, des rapports de bugs, des actions à réaliser dans le cadre d'un projet, etc. Mylar peut s'interfacer avec des gestionnaires de tâche externe via des connecteurs. Des connecteurs pour Bugzilla, Trac et JIRA existent déjà, et un connecteur générique permet des interactions basiques (je n'ai pas testé) avec Google Code Hosting, IssueZilla, GForge, SourceForge, phpBB et vBulletin. Des discussions sont en cours sur la réalisation d'autres connecteurs natifs.

Je l'ai testé dans le cadre d'un projet PHP utilisant Trac (sans support de XMP-RPC) et Subversion, ce qui n'est pas semble-t-il la meilleure configuration. Le plugin est plus abouti pour les projets Java avec Bugzilla et CVS.

L'installation de Mylar est classique, via le système d'update d'Eclipse. Je vous laisse lire la doc pour savoir comment l'installer et le configurer.

Mylar offre deux fonctionnalités:

  • l'intégration avec des services externes avec la possibilité de gérer les tâches et leur planning
  • un gestionnaire de contexte qui adapte votre environnement de développement à la tâche en cours, par exemple en n'affichant que les fichiers qui en dépendent.

Quand vous travaillez sur une tâche, Mylar analyse vos actions pour déterminer les ressources que vous utilisez. Ces ressources permettent de créer un contexte lié à la tâche, et d'adapter l'affichage d'Eclipse à ce contexte. Un peu comme si chaque tâche avait son propre "Working set". Une tâche peut ainsi par exemple être associé à un changeset[1]. Ajout du 18.01 : attention, cette version utilise subversion 1.4 dont le format de stockage local est incompatible avec les précédentes versions. A manier avec précautions donc.

Le plugin offre 3 vues supplémentaires:

  • une liste des services externes disponibles ("Task repositories")
  • une liste des tâches
  • et une vue par temps consommé sur chaque tâche, à partir de laquelle on peut générer un rapport d'activité (via le menu de la vue).

Gestion des tâches

Mylar permet de gérer aussi bien des tâches locales que liées à des services externes. On définit les services à utiliser dans la vue "Task repositories". Une fois que vous avez définit un ou plusieurs services, vous devez créer des requêtes pour afficher leurs tâches dans la vue "Task list". Pour cela, clic-droit dans cette vue, choisissez de créer une nouvelle requête, le service à interroger, et définissez les paramètres de la requête. Vous pouvez créer autant de requêtes que vous voulez. Mylar ajoute également un onglet à la fenêtre de recherche d'Eclipse vous permettant de faire des recherches ponctuelles, sans enregistrer le résultat.

Lorsque vous ouvrez une tâche, l'éditeur comporte 2 onglets. Le premier vous permet d'éditer la tâche (en fonction du degré d'intégration du service, soit dans un formulaire dédié (avec Bugzilla et Trac + XML-RPC), soit via le navigateur web interne), le second de planifier les tâches. Dans cet onglet, vous pouvez entre autres renseigner la date de fin attendue, la charge prévue, etc. La vue "Task list" vous permet de n'afficher que les tâches à finir pour la semaine courante, pour vous permettre de vous focaliser sur le travail en cours. Si une tâche n'est pas close avant sa date de fin prévue, elle sera mise en évidence dans la liste et une popup vous en informera. On peut également facilement planifier les tâches directement via un clic-droit dans la liste.

Le menu contextuel de la liste des tâches offre plusieurs options: filtrer les tâches par priorité, afficher ou non celles complétées, ou n'afficher que celles dues pour la semaine en cours. Dans ce cas, la vue comporte également un indicateur de progression indiquant le nombre de travaux réalisés par rapport au nombre à réaliser.

Affichage contextualisé

L'autre fonctionnalité majeure de Mylar est de permettre d'adapter votre environnement au travail en cours. Pour cela, vous devez avoir installé le paquet "Mylar focused UI". Quand vous travaillez sur une tâche, toutes les ressources que vous manipulez sont ajoutées au contexte de cette tâche. Vous pouvez enregistrer ce contexte et le partager avec d'autres personnes avec lesquelles vous travaillez.

Malheureusement (pour moi), cette fonctionnalité n'est pour l'instant pleinement opérationnelle que pour le développement Java (c'est à dire qu'elle est connectée à la plupart des vues utilisées en Java).

Un bouton, "Focus on Active Task", présent par exemple dans la liste des tâches, le navigateur, etc, permet d'alterner entre l'affichage normal et l'affichage contextuel.

Dans la liste des tâches, un bouton permet de revenir en arrière sur une tâche précédente, et de recharger automatiquement son contexte. Ainsi, si vous interrompez votre travail pour corriger un bug urgent par exemple, vous pouvez ensuite le reprendre là où vous en étiez.

La gestion du contexte d'une tâche est basée sur la notion d'intérêt. Le système accorde à chaque ressource un poids relatif à la tâche en cours. Cela lui permet de déterminer quels éléments présentent de l'intérêt pour le travail en cours, et de se focaliser sur ceux-ci. Quand vous travaillez sur une tâche, chaque élément auquel vous accédez est ajouté au contexte de cette tâche. Les éléments les plus utilisés (dont le poids est le plus fort) peuvent devenir des sortes de marque-pages implicites ("landmarks"). Le système peut également, si le contexte grossit trop, supprimer les ressources les moins "intéressantes". Enfin, on peut modifier manuellement, via leur menu contextuel, l'intérêt des éléments, pour, par exemple, ajouter au contexte un fichier indispensable mais peu utilisé, ou en supprimer un fichier ouvert par erreur.

La liste des fenêtres d'édition ouvertes est également présente dans le contexte. Si vous désactivez une tâche, les éditeurs ouverts seront fermés. Ils seront ré-ouverts dès que vous ré-activerez la tâche.

Mylar utilise dans toutes les vues des codes de couleur pour marquer les éléments liés à la tâche: noir pour les intéressants, en gras pour les très intéressants (landmarks) , et grisé pour les autres. Alt-click sur un noeud permet d'afficher temporairement tous ses fils, indépendamment de leur intérêt.

Enfin, avec les connecteurs qui l'autorisent (je n'ai pas réussi à le faire avec Trac), vous pouvez attacher le contexte à la tâche sur le serveur, afin de pouvoir le retrouver ultérieurement, ou le partager avec d'autres développeurs.

Voilà, une présentation un peu brouillonne, rédigée au fur et à mesure de ma découverte de Mylar, mais qui je l'espère vous incitera à l'essayer et vous aidera dans vos premiers pas.

Ajout du 15.01 : voir aussi "Aller plus loin avec Eclipse, Mylar, Subversion..."

Ajout du 19.01 : je ne vais pas écrire de nouveau billet à chaque fois que je découvre une fonctionnalité, donc je vais enrichir celui-ci en attendant de le reformatter pour faire une vrai documentation.

Fonctionnalités avancées

Commentaires de commit

On peut utiliser un template pour les commentaires de commit, réglable via les Préférences, Mylar, Team. La zone de saisie dispose d'auto-complétion, en appuyant sur Ctrl-Entrée une liste des motifs disponibles s'affiche. Vous pouvez ainsi insérer automatiquement dans le commentaire la description du ticket, le temps passé, etc. Mylar - Template de commentaire

Backups

Mylar permet d'effectuer des sauvegardes à intervalles réguliers (malheureusement pas plus d'une fois par jour). Le répertoire et la fréquence se règlent dans les préférences: Mylar / Task List / Task Data : Mylar - Utilisation des backups (suite à un plantage d'Eclipse, ma liste des tâches a été perdue, heureusement le backup m'a permis de tout récupérer.)

Autres connecteurs
  • [19.01.2007] : Jean-Yves utilise le connecteur web générique pour interface Mylar avec XPlanner, un gestionnaire de projets orienté eXtreme Programming.

Notes

[1] Mylar est disponible depuis peu dans Subclipse. Bien que je l'ai vu dans le trunk, j'ai dû pour l'installer passer en version "instable" de subclipse (update site: http://subclipse.tigris.org/update_...), cf http://wiki.eclipse.org/index.php/M...