La dernière version de darcs, système de gestion de version intelligent et simple d'utilisation, est disponible depuis le 23 avril dernier. Il s'agit de la tant attendue version 2.8. Par rapport à git ou mercurial, darcs est plus simple d'utilisation, mais sur de gros dépôts, il peut souffrir de problèmes de performances. C'est grâce à sa théorie des patches, une vision différente des concepts de la gestion de version, qu'il peut proposer un mode de travail plus libre, et une interface plus simple.
Migration de PHP vers Git, Gitlab, Baregit
Ainsi qu'il a été annoncé dans la dépêche de sortie de la version 5.4 PHP rejoint le nombre toujours grandissant de projets utilisant Git.
En effet, la nouvelle est tombée, la migration depuis SubVersion/SVN est désormais complète.
Comme beaucoup de projets désormais, le dépôt mis en avant est sur le non-libre github, bien que le dépôt de référence reste sur http://git.php.net
You can clone or fork the source from our GitHub mirror, and we also now support pull requests made via GitHub. The source is also available via git.php.net
Tout comme l'utilisation de github par Linus pour le noyau, il est intéressant de se demander pourquoi cet usage assez massif de services non libres de la part d'équipes de développement pourtant au fait des licences et de leurs conséquences. Une raison serait évidemment plutôt pragmatique (il suffit de cliquer sur les deux liens de dépôt pour comprendre rapidement) et montre que github a su comprendre et pleinement maîtriser les concepts liés au développement utilisant un outil de source décentralisé offrant de nombreuses fonctionnalités, notamment wiki, gestion des demandes, pull request.
Toutefois, des projets tels que Gitorious ou le très prometteur Gitlab existent.
À noter également le lancement de Baregit pour ceux qui souhaitent un hébergement Git de qualité, rapide et surtout sur territoire français et donc non soumis aux lois américaines sur les logiciels.
Pour en revenir à PHP, l'accès au dépôt Git est décrit et une FAQ est également disponible. Notez que contrairement à l'annonce, la FAQ mentionne git.php.net comme dépôt principal. Pour les nouveaux arrivant sur les Distributed Concurrent Versions System (DCVS, Gestion de version décentralisée) notez qu'une page présentant le workflow utilisé est disponible.
Il ne reste plus qu'à espérer que PHP va continuer d'améliorer sa situation notamment concernant les tests unitaires et le processus de release et que Git sera un atout pour cette lourde tâche.
Mercurial 2.1 : Les phases
Mercurial, un puissant logiciel de gestion de versions écrit en Python, sort en version 2.1 après 3 mois de développement.
Pour rappel, Mercurial est un logiciel de gestion de version décentralisé, à savoir qu'il permet de travailler en équipe sans avoir besoin d'un serveur centralisé. Tous les développeurs pouvant se synchroniser entre eux, via deux méthodes :
- pull : réception des modifications d'un dépôt distant.
- push : envoi des modifications vers un dépôt distant.
Cette souplesse permet de hiérarchiser le développement d'un projet de mille et une façons. Cette souplesse possède un revers, quand l'on doit se synchroniser avec un dépôt distant on a souvent des conflits. Pour les résoudre, les développeurs font appel à deux méthodes :
- merge : fusion des modifications de deux branches en une seule, les conflits sont résolus par divers outils manuels ou automatiques.
- rebase, mq, histedit : modification de l'historique des modifications afin de le linéariser ou de le simplifier.
Dans le second cas, modifier son historique peut s'avérer bien plus désastreux que le problème initial ou l'on avait qu'un simple conflit. Git, le principal concurrent de Mercurial qui possède des fonctionnalités et des performances sensiblement identiques, est particulièrement sensible à des erreurs de rebase, car cette fonctionnalité est activé par défaut.
Pour éviter les erreurs de modifications d'historiques, Mercurial 2.1 introduit une nouvelle fonctionnalité : les phases.
Fossil, une forge pour DVCS
Fossil est le système de fichiers de Plan9. Ce n'est pas le sujet de cete dépêche.
Fossil c'est aussi un outil de gestion de version décentralisé, DCVS en court. Il est toujours un peu osé, par les temps qui courent, de parler d'un autre DCVS que le très apprécié Git, mais Fossil c'est aussi un peu plus que ça ; un plus qui m'a beaucoup séduit.
Fossil c'est aussi un wiki, un outil de gestion de tickets et une interface Web (et son serveur) dans un seul exécutable. Sans entrer dans les détails, il prend en charge les mêmes fonctionnalités que la plus grande partie des DCVS. Il se veut robuste et fiable, simple, un protocole réseau simple (HTTP) rendu suffisamment efficace pour fonctionner sur une ligne téléphonique 56k et facile d'utilisation (pas de configuration, commande simple). Ça c'est la partie "marketing".
Si la description sonne un peu comme celle de SQLite, ce n'est pas un hasard : Fossil est développé par les mêmes personnes, utilise SQLite pour le stockage et est utilisé comme gestionnaire de versions pour ce projet (et d'autres). Fossil n'est donc pas juste un projet sombre dans un coin du Net.
NdM : merci à Etienne Bagnoud pour son journal.
Sortie d'Anvil
J'ai le plaisir de vous annoncer que la toute première version d'Anvil (0.01) est désormais disponible. Anvil (enclume en Anglais) est un logiciel libre de forge s'appuyant sur le gestionnaire de version décentralisé Bazaar. Son but est de proposer un environnement collaboratif simple et une interface attrayante à Bazaar.
Anvil est écrit en Python avec le framework libre web.py et la base de données MySQL. Anvil est disponible sous GPLv3.
Hébergez vos projets avec Gitlab
Gitlab est une application de gestion de dépôts git sous licence MIT. Elle permet d'héberger sur votre propre serveur des dépôts git avec l'interface web offrant tout le nécessaire pour vos projets : navigation dans le code source, suivi des demandes de bugs et d'évolutions (« issues »), wiki, gestion des droits d'accès par équipe, commentaires, notifications, etc.
D'un point de vue technique, c'est une application Ruby on Rails avec les dépendances suivantes : Ruby 1.9, sqlite3, git, gitolite (pour la gestion des droits d'accès aux dépôts git) et pygments (pour la coloration syntaxique du code).
L'équipe développant Gitlab travaille sur le rythme d'une version par mois et la version 2.0 vient juste de sortir. Celle-ci apporte des changements importants : les très attendues « merge requests », un tableau de bord revu, une gestion des permissions plus fines, notamment grâce à la prise en charge de gitolite, des améliorations graphiques, des fils Atom pour les commits et issues, etc.
Un entretien avec FusionForge
Qui ne connaît pas FusionForge, la célèbre forge logicielle ? Mais, qui connaît bien FusionForge et ses auteurs ?
La seconde partie de la dépêches vous propose le compte rendu d’un entretien avec trois de ses développeurs francophones.
Subversion 1.7
Apache Subversion 1.7 est sorti le 11 octobre. Attendue de longue date, cette version majeure apporte de nombreux changements dans lesquels on ressent l’influence de la popularité croissante des gestionnaires de versions décentralisés.
Cette version 1.7 est compatible avec les versions précédentes, côtés client et serveur, même si les nouvelles fonctionnalités (détaillées dans la seconde partie de la dépêche) ne seront pas toutes disponibles.
Veracity, un nouveau gestionnaire de versions décentralisé
Veracity est un nouveau gestionnaire de versions décentralisé (DVCS), sous licence Apache. Il est développé en C par la société SourceGear, avec la possibilité d'embarquer des greffons en javascript.
Comparé à git ou mercurial, il essaye d'intégrer une expérience de développement plus large :
- interface web complète (vous pouvez voir à quoi elle ressemble en consultant le dépôt public de Veracity) ;
- flux d'activité ;
- suivi des bugs distribué ;
- graphe burndown.
Il est possible de l'installer sous GNU/Linux, Mac et Windows. Des paquets pour Ubuntu et un guide sont également disponibles pour vous aider à démarrer.
Gitbuster II
« If there’s something strange
In your history
Who you gonna call?
GitBuster! »
Qui ne s’est jamais retrouvé au milieu d’un conflit de merge cataclysmique, à ne plus savoir distinguer ciel et terre ? À moins d’être un utilisateur expérimenté, ce genre de situation a de quoi rebuter et faire passer à côté de toute la richesse de Git.
Gitbuster, développé par Julien Miotte est un frontal graphique à des outils comme « git rebase » , « git cherry-pick » et « git filter-branch » . Le projet est parti à l’origine d’un besoin très personnel de l’auteur de faciliter l’utilisation de « git filter-branch » , un outil très performant de réécriture des informations de commit. Le développement, guidé par les demandes de fonctionnalités, notamment de chefs de projet, s’est orienté vers d’autres fonctionnalités de Git, comme le rebase et le cherry-pick. |
Gitbuster offre les fonctionnalités suivantes :
- cherry-pick par glisser‐déposer d’une branche sur une autre ;
- résolution interactive des conflits de merge ;
-
création d’une branche à partir d’un commit (
git checkout 1234567 -b new_branch
) ; - modification des métadonnées de n’importe quel commit de l’historique ;
- cherry-pick à partir d’un dépôt distant (qu’il soit sur le Web ou dans un autre répertoire) ;
- modification automatique des dates de commit d’une plage horaire vers une autre.
Rififi autour de Subversion
« Peu de temps avant que nous ne partions tous en vacances de Noël, l'une des entreprises sponsorisant des développeurs dans la communauté Subversion, WANdisco, a envoyé un grand "fu#k you" au reste de la communauté par la voix de son CEO, Dave Richards », écrit Mark Phippard, l'un des principaux contributeurs sur son blog.
Subversion 1.3.0 est disponible
Subversion est un système de contrôle de révision, développé dans le but de remplacer CVS comme norme du contrôle de révision dans le monde du libre. La version 1.0 est sortie au terme de 5 ans de conception et développement sponsorisé par l'entreprise Collabnet, et regroupe maintenant une communauté très active. Un grand nombre de projets libres importants ont depuis migré vers Subversion (on notera par exemple les projets KDE et Gcc, ainsi que l'Apache Software Foundation).
Les deux améliorations majeures sont l'extension du contrôle d'accès par ACL aux deux serveurs, qui n'était auparavant utilisable qu'avec le module pour Apache 2, une refonte majeure des bindings Python et l'intégration de bindings Ruby très complets. Et bien entendu, un nombre d'améliorations mineures et de corrections de bugs.
Sortie de la version 1.0 de Git
Pour rappel, le projet Git a été lancé par Linus Torvalds lorsque la société BitMover a décidé d'arrêter de diffuser une version gratuite de son logiciel de gestion de versions BitKeeper, alors utilisé par les développeurs du noyau.
De quelques fichiers de code source C initialement distribués par Linus, Git est devenu un projet à part entière, avec de nombreux contributeurs. La maintenance de Git est d'ailleurs maintenant assurée par un autre développeur, Junio Hamano.
Git fait partie des outils de gestion de version distribués, qui selon leurs amateurs, sont très adaptés au modèle décentralisé de développement du Logiciel Libre. Git joue donc dans la même catégorie que Darcs, Bazaar, Monotone, Mercurial, SVK ou GNU Arch.
Comme l'explique la page officielle de Git, quelques points clés de ce logiciel sont la vitesse d'utilisation, à la fois pour le mainteneur du projet et pour les utilisateurs et le fait que l'historique est stocké sous la forme d'un graphe acyclique dirigé, ce qui facilite les fusions répétées et permet de travailler à long terme sur des branches. Toujours selon cette page, le projet Git doit être considéré comme une infrastructure de base pour d'autres projets, tels que Cogito, StGit, (h)gct, gitk, qgit ou gitweb. L'utilisateur se tournera donc plutôt vers une interface texte évoluée, telle que Cogito.
Linus développe un remplaçant original à BitKeeper
Linus Torvalds a passé ces derniers jours à tester différentes solutions SCM [source code management] et a commencé à écrire un content tracker nommé git pour remplacer BitKeeper. D'autres développeurs ont contribué des idées et du code à ce petit outil, au point qu'au bout de moins d'une semaine, il est prêt pour un test grandeur nature. Andrew Morton vient d'envoyer un email titré "Incoming" sur la linux-kernel mailing-list, suivi de deux centaines de patches, qui vont être intégrés à l'arbre officiel par l'intermédiaire de git.
Espérons que les développeurs du noyau pourront être aussi efficaces avec git qu'ils l'étaient avec BitKeeper. La rapidité de ce changement d'outils laisse à penser que l'on peut être optimiste à ce sujet.
BitKeeper : plus de version gratuite
BitMover a annoncé dans un communiqué de presse, le 5 avril, qu'elle cessait le développement de la version gratuite de BitKeeper. Il semblerait qu'un employé de l'OSDL ait commencé à réaliser de l'ingénierie inverse sur le protocole de BitKeeper et que cela n'ait pas plu à Larry McVoy, le principal interlocuteur de BitMover auprès des développeurs du noyau. Ce dernier a notamment déclaré : « ceci est vraiment un problème de la communauté open source et je dois dire que la communauté open source n'aurait pas pu échouer plus qu'elle ne l'a fait. »
BitMover livrera une dernière version gratuite de son outil qui pourra gérer plus de 64 000 modifications. Linus envisage la migration vers un autre système de gestion de version.
Ce brusque changement dans la politique de BitMover montre un des problèmes que peut poser l'utilisation de logiciels propriétaires dans le développement de Logiciels Libres ou de manière plus générale dans les entreprises.
Sortie de Subversion 1.0.0
Fusionforge 6.1 : Nouvelle version du moteur de forge libre
La communauté Fusionforge a publié sa nouvelle mouture du moteur de forge libre éponyme. Voici un petit journal qui retrace les nouveautés apportées par cette version, au‐delà d’un nombre élevé de bogues corrigés.
Sortie de Trac version 1.5.4
Trac est un outil de gestion de « tickets » (rapports de bugs) développé en Python. Il était beaucoup utilisé à l’époque de SVN mais a aujourd’hui laissé la place, dans beaucoup de cas, à des outils plus gros comme GitHub (pas libre) ou GitLab. Il continue toutefois son développement et est toujours utilisé par certains projets, en particulier parce qu’il est assez simple à personnaliser à l’aide de plug-ins et facile à déployer.
Les versions 1.5.x sont les versions de développement avant la publication d'une version stable 1.6.x. La branche 1.4 continue également des corrections de bugs. Le rythme de développement n'est pas très rapide puisque la version 1.5.3 date de mai 2021, et il y a finalement assez peu de changements d'une version à la suivante.
Sprint de programmation Darcs du 15 au 17 février 2013 à l'IRILL (Paris XIII)
Le projet Darcs organise son 8ème sprint de programmation du vendredi 15 au dimanche 17 février 2013 à l'IRILL (Initiative de Recherche et Innovation sur le Logiciel Libre), au 23 avenue d'Italie à Paris XIII (métro place d'Italie).
Darcs est un logiciel de gestion de versions décentralisé capable de réordonner automatiquement les patchs présents dans un dépôt, ce qui permet des créations et des fusions de branches plus simples qu'avec ses confrères Mercurial, Git et Bazaar.
Sa dernière version stable est la 2.8.4, sortie le 7 février dernier.
Le projet tourne principalement grâce au temps libre de ses contributeurs, mais également grâce à des projets Google Summer of Code, ainsi que des dons qui couvrent notamment les frais d'organisation des sprints. Le sprint est ouvert à tous, il suffit de s'annoncer sur le wiki pour pouvoir venir.
Ce sprint servira à consolider la prochaine version 2.10.
Conférence Git Merge le 8 et 9 avril 2015 à Paris
En 2013 GitHub avait organisé la première Git Merge à Berlin. Pour les dix ans de Git, GitHub récidive en organisant une Git Merge à La Gaîté lyrique à Paris dans le 3ème arrondissement.
En 2013 cette conférence était gratuite, mais avec un nombre de places limitées, donc il fallait être dans les premiers à s'inscrire pour avoir une place (sauf pour les contributeurs à Git). On peut maintenant s'inscrire depuis le site de la conférence, ce qui nous amène notamment sur un site d'achat pour y accéder, vendant les places 99$.
Le programme, détaillé en seconde partie de la dépêche :
- 8 Avril : échauffement
- 9 Avril : évènement principal
Informations plus détaillées, notamment d'ordre pratique sur le site de la conférence.