XHTML.net

Technology talks by Loïc d’Anterroches

News, articles, PHP, scripts, XHTML/CSS, …

  1. Home
  2. Scripts
  3. InDefero, bug tracking and more

InDefero 0.8.5 - Nouveau backend pour la revue de code

The 2009-07-16 at 09:28 by Loïc d'Anterroches filed under InDefero, bug tracking and more.


Une nouvelle version d’InDefero est disponible. Ce petit script PHP commence à devenir vraiment complet avec revue de code, aire de téléchargement, support des dépôts Subversion, Git et Mercurial. Hier un commentaire d’un nouveau contributeur m’a fait vraiment plaisir :

I must say Pluf seems pretty easy to work with - since I have no prior PHP experience.

La personne a fait l’implémentation du support de multiples clefs SSH sans avoir de connaissance en PHP ! Cela montre que la philosophie du framework PHP Pluf est la bonne : simplicité.

Téléchargez InDefero 0.8.5 ici. Vous pouvez aussi profiter de la version hébergée.

Merge du nouveau backend pour les SCMs

The 2009-05-25 at 19:55 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Juste une petite note pour vous informer que le nouveau backend est maintenant dans la ligne de développement principale. Il reste encore du travail de nettoyage mais cela se fera vite. La bonne chose est que maintenant l’affichage d’un dépôt git très large est toujours très rapide. Par ailleurs l’hébergement gratuit d’InDefero prend bien son envol… chouette !

Support des branches avec Subversion dans InDefero

The 2009-04-26 at 10:06 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Une petite capture d’écran pour vous montrer le support des branches avec Subversion dans InDefero.

Support des branches Subversion dans InDefero

Je détecte automatiquement si le dépôt utilise la structure standard et liste les branches correctement. Par ailleurs, la branche active est aussi mise en gras quand on navigue dedans. Cela fait partie du travail de restructuration de l’interface entre InDefero et les différents SCMs. Cela devrait ensuite permettre le support facile de Bazaar et Monotone en plus de Mercurial, Git et Subversion.

InDefero 0.8.3 - Stabilisation

The 2009-04-16 at 12:08 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Juste pour vous informer de la sortie de la version 0.8.3 d’InDefero. Le changelog est le suivant :

Benjamin Jorand (1):

  • Improved the source browser on large Mercurial repositories.

Ciaran Gultnieks (2):

  • Fixed issue 166, typo in confirmation email message.
  • Fixed issue 168, code review shows wrong commits.

Loic d’Anterroches (10):

  • Fixed issue 159, Problem with display of source files with extension of c, etc.
  • Updated the list of contributors.
  • Fixed issue 160, diff viewer in code reviews does not indent correctly.
  • Fixed issue 161, download link in source tree has poor visibility.
  • Added the dash in the explanations of the allowed character in the project name
  • Added some more authors.
  • Fixed issue 133, updated the documentation with svn minimal revision.
  • Fixed issue 178, improved reading of extra text files.
  • Fixed issue 183, project can not be deleted because of foreign key integrity constraints.
  • Update the French translations.

Mehdi Kabab (5):

  • Fixed issue 158, improved MarkDown support.
  • Fixed issue 175, sub-tabs are displayed on two lines when the project title is too long.
  • Added the highlighted extensions as text extensions.
  • Fixed issue 185, custom predefined download labels are not displayed in autocomplete.
  • Fixed issue 189, no rounded tab in webkit (safari / chrome).

Patrick Georgi (1):

  • Fixed issue 143, Makefile not displayed as text.

xavier Brochard (1):

  • Fixed issue 176, typos in the recovering pasword email (french version).

Oui, 6 développeurs… c’est bien sympa !

InDefero 0.8.2 - Suppression d'un projet et gestion des submodules git

The 2009-03-02 at 05:21 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Le support des sous-modules git dans InDefero est là. Il va falloir ajouter un peu de logique pour faire un lien vers le dépôt correspondant si il est sur la même forge ou si il est sur une forge connue. Vous pouvez aussi supprimer un projet (cela ne touche pas au dépôt de code).

Support des sous modules git dans InDefero

Téléchargez InDefero ou créez votre forge en 5 min.

Le détail des changements

Loic d’Anterroches (18):

  • Added the relations of the IDF_Commit model.
  • Added the ability to add download extension and control the download size.
  • Added nl2br in the display of the commit messages.
  • Added smarter handling of trailing slash in the source view.
  • Better redirection to have canonical URLs.
  • Fixed to prevent a crash when accessing the base page of a project with no /.
  • Fixed issue 135, anonymous author on source/commit/[hash]/
  • Fixed issue 142, control the patch when creating a new code review.
  • Added a new author.
  • Fixed issue 105 point 2, added deletion of a project.
  • Updated the French translations.
  • Fixed last part of issue 105, update the details of a project.
  • Fixed issues 137 and 138, support of the git submodules.
  • Improved the external icon for the git submodules.
  • Fixed issue 131, added ability to preview before submitting an issue.
  • Added per project list of personal closed working/submitted tickets.
  • Fixed to prevent bad wrap.
  • Improved the layout to link to the personal closed tickets.

Manuel Eidenberger (1):

  • Added the ability to configure the paths to the SCM executables.

Accéder à InDefero via Jabber

The 2009-02-17 at 14:06 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Depuis quelques jours, j’explore les possibilités d’intégration entre Jabber et InDefero. J’ai envie de faire 2 intégrations distinctes :

  • l’ajout et la modification d’un ticket via un bot Jabber dans votre liste des contacts ;
  • un chat genre channel IRC pour chaque projet avec à la fois une interface web et une interface Multi User Chat Jabber.

En regardant de plus près, il semble que tous les outils nécessaires à la mise en place de ce type d’intégration sont disponibles. Cela va nécessiter de faire tourner quelques services en plus de PHP, mais c’est déjà le cas avec les différents SCM, donc cela ne posera pas trop de problèmes. Si je code cela correctement, on pourrait de toute façon envisager que le chat puisse avoir une interface uniquement web avec un peu de produit lave vaisselle pour les personnes ne pouvant pas faire tourner un serveur Jabber et le pont Jabber/HTTP.

Beaucoup d’idées mais avant il faut que je nettoie un peu le code, il y a des zones pas très propres et il ne faut pas que je laisse la poussière s’accumuler dessus.

InDefero 0.8.0, notifications par email et autres petites choses

The 2009-01-30 at 22:47 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Saviez-vous que seul l’administrateur d’une forge pouvait changer l’email d’un utilisateur dans InDefero ? Et oui, mais maintenant ce n’est plus le cas, car la version 0.8.0 ajoute cette fonctionnalité. Vous pouvez aussi envoyer un email pour chaque changement vers une liste d’annonce et bien entendu, pas mal de bugs fixés.

Téléchargez InDefero.

Le changelog complet…

  • Fixed French translations.
  • Changed to use the "origin" convention for the git repository.
  • Added the IDF_Conf relation.
  • Added more help for the Git access.
  • Added the management of the notification email addresses.
  • Fixed French translations.
  • Added the notification for the tickets.
  • Added a control to avoid redirecting to an inexisting branch.
  • Fixed issue 113, login name case problem.
  • Fixed Issue 112, creating Mercurial also gives Subversion repos.
  • Fully fix issue 112, creating Mercurial also gives Subversion repos.
  • Fixed issue 110, SyncMercurial error and undocumented requirement.
  • Fixed bad help message for the git access.
  • Fixed stupid mistake in copy/paste.
  • Added the notifications on the new uploaded files.
  • Added the notifications for the code review.
  • Added the notification of changes for the documentation pages.
  • Added the notification for the commits.
  • Updated the French translations and page title.
  • Added the ability for a user to change his email address.
  • Update the French translation.
  • Fixed issue 119, no environment for the shell_exec and exec calls.
  • Added a little note about the need to restart Apache in some cases.
  • Fixed to show the SSH access URL to perform the clone for a private project.
  • Fixed crash when looking at a wiki page with missing link and no create rights.
  • Fixed a crash when submitting a new code review and no full rights.

InDefero au Japon

The 2009-01-26 at 19:53 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Et oui, InDefero est remarqué au Japon, ce qui fait plaisir c’est que mon travail sur le support multibytes dans Pluf paye. Comme vous pouvez voir, le Japonais passe très bien dans l’interface.

InDefero big in Japan

Par ailleurs, déjà plus de 50 forges créées sur app.indefero.net et des contributeurs toujours plus actifs, cela fait vraiment plaisir.

Support de Git dans la forge de forges InDefero

The 2009-01-23 at 11:55 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Si vous voulez un hébergement de vos projets avec git, vous avez le support de Git sur app.indefero.net.

N’hésitez pas à me faire remonter votre expérience d’utilisateur !

InDefero 0.7.0 - Gestion des dépôts git depuis l'interface web

The 2009-01-20 at 11:36 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

C’est la grande belle nouveauté de la version 0.7.0 d’InDefero, vous pouvez gérer les accès à vos dépôts git directement depuis l’interface web. Cela se fait automatiquement en tâche de fond, comme pour les dépôts Mercurial et Subversion.

Téléchargez la version 0.7.0 ou utilisez la version hébergée gratuitement.

En vrac, le changelog…

Benjamin Jorand (1):

  • Fixed issue in the display of filename with spaces with Mercurial.

Loic d’Anterroches (25):

  • Added Julien Issler in the contributors.
  • Added the sans-serif font family as default font.
  • Better font definition.
  • Fixed issue 97, project created as private is not private.
  • Improved issue 93, memory usage.
  • Fixed issue 98, better upgrade procedure.
  • Added the upgrade-all command before installing the other PEAR packages.
  • Added some extra signals useful to customize the project creation.
  • Correctly use the url_upload configuration variable.
  • Fixed the path in the bootstrap file.
  • Updated the default configuration to match the INSTALL file.
  • Added the option to follow symlinks in the default .htacces.
  • Started the work on issue 3, git synchronization.
  • Added details on how to use a SMTP server with SSL.
  • Added the upload of the SSH key for the end user.
  • Remove cariage returns in the SSH keys.
  • Solved most of issue 93 by not requesting diff content most of the time.
  • Fixed issue 93 by preventing the display of a large commit diff.
  • Added cache at the view level when displaying the source tree.
  • Added the bulk of the access control to the git repositories.
  • Removed the need to set a configuration variable.
  • Added the latest elements of the git repositories control.
  • Added a note about the plugins in the default conf file.
  • Added the documentation for the git synchronization.
  • Updated the French translations.

Gestion des clefs SSH dans InDefero

The 2009-01-14 at 22:26 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

La dernière série de commits dans InDefero devrait réjouir les utilisateurs de git.

Upload d'une clef SSH

Vous pouvez maintenant faire l’upload de votre clef publique SSH sur le serveur. Le travail sur le reste de l’intégration avance aussi à grand pas. Cela devrait être prêt d’ici à la fin du mois, peut-être même début de semaine prochaine si tout va bien.

Projet A - c'est parti !

The 2009-01-12 at 15:03 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Comme tout projet à la mode web 2.0, le projet est lancé en béta limitée. Donc bon attention, il n’y aura pas forcément de la place pour tout le monde.

Le projet, c’est la création en un clic de votre forge InDefero. Créez votre forge ici.

Maintenant, un peu de détails techniques. InDefero est codé avec le framework Pluf en PHP. InDefero est prévu pour créer une forge et non une ferme de forges, alors comment mettre cela en place ?

Héberger votre application en ferme avec PostgreSQL et Pluf

Le principe est le suivant, pour chaque forge, un schéma est créé dans la base, cela permet de faire une séparation des données entre toutes les forges. Si votre forge est à l’adresse toto.indefero.net, on va probablement utiliser le schéma toto. Un schéma c’est comme une sous base de données dans votre base de données principale.

Maintenant, ce qu’il faut, c’est pouvoir sélectionner le bon schéma en fonction de la forge. En effet, je ne fais pas la création d’un fichier de configuration par forge. Pour cela, dans le schéma public, je fais l’installation d’une petite application Pluf qui va contenir la liste des forges avec la correspondance domaine - schéma. Le schéma public est celui accédé par défaut par Pluf.

Maintenant on a, une liste des correspondances schéma - domaine et une série de forges chacune dans son schéma. Voici que les middleware de Pluf entre en jeu. Le premier middleware de la liste va simplement chercher dans la liste des forges si une forge correspond au domaine, si oui, la configuration est mise à jour et le schéma est changé. Si ce n’est pas le cas, je fais une redirection sur http://www.indefero.net.

L’intégralité de cette logique, en incluant la mise à jour des zones DNS, l’interface de création d’une nouvelle forge, tient en 725 lignes de code. Pluf simplicité et élégance.

Créez votre forge ! C’est gratuit pendant le temps de la béta.

InDefero 0.6.0 - Gestion des dépôts Mercurial, meilleure interface d'administration et correction de bugs

The 2009-01-02 at 21:57 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Tout beau, tout chaud InDefero 0.6.0 est là. Le changelog est bien massif et vous pouvez voir qu’au fur et à mesure, je ne suis plus le seul contributeur, yeah !

Benjamin Jorand (3):
     Added the Mercurial repository serving synchronization.
     Fixed issue 83, small issue in SyncSvn.
     Fixed to be consistent in the display of errors.

Julien Issler (2):
     Fixed issue 88, Mercurial support doesn't show all directories.
     Fixed issue 96, errors when parsing a Mercurial diff.

Loic d'Anterroches (24):
     Fixed to match the new path.
     Fixed grammar in French translations.
     Added more text extensions.
     Added more text extensions and give the ability to add in the config.
     Added the language selection in the user account.
     Fixed inconsistency in the link.
     Added the initialisation of the user language at registration time.
     Fixed to prevent entering empty bug reports.
     Added a partial fix of issue 93 to limit memory exhaustion.
     Fixed issue 94, commands have changed in git 1.6.
     Added ticket 86, preview attached files to issues.
     Added ticket 95, ability to get a new password when forgotten.
     Added the ability to mark a project as private at creation time.
     Added the base administration of the users.
     Added the filtering of the non validated users by default.
     Inforce the rule to have only letters and digits in the login.
     Fixed little glitch in the listing of the users.
     Added the ability to set the staff flag of a user.
     Removed the dead screen of the administration as not used for the moment.
     Added a little note that accounts with bad emails can be deactivated.
     Added ticket 90, propose to create a new documentation page when it doesn't exists.
     Better alignment in the table columns.
     Fixed to allow the dash (-) in the shortname of a project.
     Updated the French translations.

Nouveau site web pour InDefero

The 2008-12-10 at 10:29 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

C’est avec grand plaisir que je vous annonce la sortie du nouveau site d’InDefero. Il est bien entendu web n+1 compliant avec de jolies captures d’écrans, des citations et de gros liens pour cliquer.

Il est encore plus web n+1 compliant car il n’est ni codé avec PHP, ni RoR, ni Django, ni Erlyweb, ni Scala, ni le dernier framework à la mode, mais avec l’ultime emacs et de jolis fichiers textes. Regardez le source des pages, la vitesse du rendu, la précision nanométrique de bits sur le disque dur. C’est le top, c’est le nouveau site d’InDefero. Trêve de plaisanteries, c’est un petit site tout simple, 6 pages, de belles images, en HTML comme on aime bien.

Pourquoi ce site très à la mode dans sa présentation ? Parce qu’après 7 ans à publier du logiciel libre, j’en conclus, roulement de tambour, que la publicité est essentielle au bon développement d’un projet. Les gens doivent avoir envie d’utiliser votre logiciel, une page avec 4 liens ne donne pas envie, j’essaye donc avec ce site de cultiver l’envie. Vos commentaires avec l’esprit critique des casseurs de pub sont les bienvenus.

InDefero 0.5.0 - Synchronisation d'un dépôt Subversion, revue de code et bien plus encore

The 2008-12-06 at 13:17 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Téléchargez la dernière version d’InDefero. Les grandes nouveautés de la version 0.5.0 sont :

  • synchronise les dépôts Subversion avec l’interface web (création de dépôt, mise à jour des droits et des mots de passe) ;
  • mise en ligne de multiples fichiers avec un ticket ;
  • revue de code ;
  • interface d’administration pour ajouter des projets ;
  • support des gravatars ;
  • flux atom de la timeline ;
  • dashboard pour l’utilisateur ;
  • association des commits avec les utilisateurs dans la base.

Vraiment, une belle version d’InDefero.

Gestion des dépôts subversion dans InDefero

The 2008-12-03 at 22:15 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Vous pouvez maintenant créez de nouveaux projets avec InDefero et si vous utilisez Subversion pour le type de dépôt, InDefero fera automatiquement la création du dépôt subversion correspondant. Chouette ! Mais le mieux, la gestion des droits d’accès dépôt privé/publique, personnes autorisées, membres ou administrateurs est automatiquement faite, si vous changez les droits d’accès dans l’interface web, les changements sont immédiatement répercutés sur les droits du dépôt.

Encore mieux ? Oui, si un utilisateur change son mot de passe, c’est la même chose, le système met immédiatement à jour l’accès au dépôt…

Le code du plugin est disponible, un grand merci à Baptiste Michaud pour le travail ! Maintenant, il reste à faire la même chose pour git et Mercurial.

Support des Gravatars dans InDefero

The 2008-12-01 at 16:54 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Encore une petite nouveauté bien sympa pour aujourd’hui, le support des gravatars. Les gravatars ce sont ces petites images qui sont associées à des utilisateurs. L’image est trouvée à partir de l’email de l’utilisateur (un simple md5 de l’email). Si la personne n’a pas de gravatar, on n’affiche tout simplement rien, c’est plus propre qu’une image de substitution.

Gravatars dans InDefero

L’idée est venue d’un utilisateur sur le channel IRC. On verra dans la pratique si en haut à droite est la bonne place.

Gestion des projets dans InDefero

The 2008-12-01 at 07:54 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Une fonctionnalité d’InDefero attendue depuis longtemps que je suis en train d’implémenter.

Édition de projets dans InDefero

Cela permet l’ajout et la modification par l’administrateur de la forge de projets. L’effet de bord est qu’il n’est plus possible de changer le type de dépôt d’un projet une fois défini. En effet, pour chaque révision/commit dans le dépôt, l’information est stockée dans la base de données, changer le type de dépôt à la volée, par exemple, passer de Subversion vers git, risque d’entraîner des pertes de données. Je préfère donc moins de fonctionnalités mais plus de sécurité.

Au passage, un contributeur travaille sur la synchronisation entre InDefero et un hébergement Subversion pour automatiquement créer/modifier les projets, les droits des utilisateurs et leur mot de passe.

Travail sur la revue de code

The 2008-11-28 at 13:11 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Voici une capture d’écran de ce que j’arrive à faire pour la revue du code, cette capture d’écran est réalisée par la soumission d’un patch contre une version donnée des sources :

Revue de code dans InDefero

À gauche, vous avez l’ancienne version du code et à droite la nouvelle. En comparaison avec le diff d’un commit, vous avez plus de lignes de contexte (point 1) car j’applique réellement le patch contre les sources, je peux donc extraire plus que les 3 lignes d’avant après d’un patch standard. Vous pouvez facilement visualiser la différence entre l’avant et l’après (point 2) et je fais la jonction entre les différents éléments du patch pour chaque fichier (point 3) car l’ajout d’un contexte de 10 lignes peut regrouper les éléments.

Les choses maintenant à ajouter correspondent à la revue elle-même. Cela va d’abord être un commentaire pour chaque fichier et un commentaire général. Ensuite, et ceci va nécessiter du javascript donc c’est moins important, l’ajout de commentaires ligne par ligne. Ce qui est bien c’est que je travaille avec un patch, donc, le patch peut avoir n’importe quelle origine, le diff d’un commit pour la revue post commit et le diff d’un contributeur pour la revue pré commit.

InDefero, la pression des utilisateurs

The 2008-11-28 at 08:23 by Loïc d'Anterroches filed under InDefero, bug tracking and more.

Je ne m’attendais pas au succès InDefero. Il y a quelques jours je me suis dit, tiens, il faudrait que j’ouvre un channel de discussion sur l’IRC pour le projet. J’ouvre donc #indefero sur les serveur freenode, et là, je trouve déjà 6 personnes. Les utilisateurs m’avaient précédé. Depuis la reprise de mon journal en dépêche sur LinuxFr, nous sommes maintenant presque 15 personnes en continu sur l’IRC et les discussions le soir sont bien animées. La boucle sortie d’une version, test, retour d’expérience est très rapide. Presque trop rapide, il faut vraiment taper vite pour répondre aux questions, fixer le code et ajouter de nouvelles fonctionnalités. Si vous regardes la liste des mises à jour, vous comprendrez vite.

C’est vraiment un plaisir de voir l’accueil par les utilisateurs de cette application, cela motive énormément pour continuer de coder et cela me fait repenser la devise "Release early, release often", je pense qu’en plus du early il faut ajouter la notion d’esthétisme. Aujourd’hui, vous avez des milliers de projets libres et des centaines de bug trackers, pourquoi alors venir utiliser InDefero ? Pour inciter les gens à venir tester votre logiciel il faut qu’il soit beau et simple. Les gens ont compris que le nombre des options n’est pas la solution, l’important est de bien faire la chose voulue.

Je n’ai pas encore implémenté la logique adaptative du CMS Plume dans InDefero, mais cela va venir. C’est un système qui regarde comment vous utilisez l’application pour vous permettre d’avoir par défaut l’activation des options que vous utilisez le plus souvent. Simple, élégant, vous ne voyez même pas que le système est là, vous constatez simplement que l’interface vous correspond bien et répond naturellement à vos attentes. Cela me fait penser à une phrase dite dans Apple Seed : "Technical complexity for functional simplicity", une technologie complexe sous-jacente à une simplicité d’utilisation.

C’est un défi de maintenir la simplicité du logiciel tout en satisfaisant les attentes des utilisateurs. Un joli défi à relever !

Next Page


Logo of Plume CMS