Coccigrep, un grep sémantique pour le langage C basé sur Coccinelle

Posté par  (site web personnel) . Modéré par patrick_g. Licence CC By‑SA.
45
2
sept.
2011
C et C++

Lorsque l'on travaille sur un projet C comportant un certain nombre de fichiers et de lignes de code, il arrive fréquemment que l'on se pose des questions comme "Mais où est modifié le champ data de ma structure Packet ?". grep ne suffit pas pour répondre à ce genre de questions car ne comprenant pas C, il ne sait pas, par exemple, que la variable monbopkt est une structure Packet.

coccigrep, basé sur coccinelle qui est un outil très puissant de recherche et de modification automatique de code, est un logiciel libre chargé de répondre à ce genre de questions. Il vient d'être publié en version 1.0rc1, sous licence GPL v3. Il est écrit en Python et s'interface avec les éditeurs Vim et Emacs, ce qui permet de faire les recherches depuis l'éditeur.

Petit éventail des outils de construction (« builder ») libres

Posté par  . Modéré par patrick_g. Licence CC By‑SA.
43
5
sept.
2011
Ligne de commande

Je vous propose dans cette dépêche de revenir sur la panoplie d'outils de construction qui s'offre à nous (c'est à dire les outils permettant d'automatiser les étapes de préprocessing, compilation, éditions des liens, etc).
Je ne cherche pas à faire un comparatif, mais juste à les décrire pour en faire ressortir les avantages et inconvénients ainsi que les cas d'utilisation. Cette dépêche peut être vue comme un état de l'art allégé des outils de construction libres.

Je tiens à remercier les contributeurs de cette dépêche :

  • GeneralZod
  • tiennou
  • NedFlanders
  • claudex

Ce sont eux qui ont écrit la majeure partie de cette dépêche et qui l'ont améliorée et complétée grâce à leurs connaissances et au temps qu'ils y ont consacré.

Cette dépêche a pour objectif de faire découvrir ou redécouvrir des outils de constructions. Si vous en connaissez d'autres n'hésitez pas à en parler en commentaire.

Review Board 1.6

34
7
sept.
2011
Technologie

Review Board est une application web libre de revue de code collaborative. Originellement initiée chez VMware, elle est développée en Python/Django, et publiée sous licence MIT. Review Board se repose sur SVN et Git, mais aussi le vénérable CVS, ainsi que Bazaar et Mercurial (et accessoirement les proprios Perforce et ClearCase).

La revue de code étant un des parents pauvres du développement logiciel par son côté rébarbatif, un outil centralisé et collaboratif se révèle bien évidemment très largement supérieur à des méthodes empiriques par courriel et bavardages en ligne éparpillés. De plus, il amène un côté convivial et fun, couplé à un début d’effet social. Si la « sauce » prend dans une équipe de taille moyenne, cela peut beaucoup apporter en termes de qualité de code, entre autres.

La version 1.6 vient d’être publiée et apporte beaucoup de nouveautés : la liste est trop longue pour être détaillée ici. Pour ceux qui ne connaissent pas, jetez un rapide coup d’œil sur les copies d’écran. Review Board permet de gérer les requêtes de revue, les revues en elles‐mêmes, les diffs et les commentaires. En outre, ce logiciel propose un tableau de bord avec statistiques.

Fusionforge 5.1 & sa communauté

Posté par  (site web personnel) . Modéré par tuiu pol. Licence CC By‑SA.
28
11
juil.
2011
Technologie

Fusionforge, anciennement Gforge, anciennement Sourceforge, publie sa version 5.1, résultat de un an de développement et près de 3000 commits. Cette version est une consolidation des efforts réalisés pour relancer la vitalité de ce projet trop méconnu ou oublié.

La version 5.1 est dédiée à Alexandre Neymann, contributeur gforge puis fusionforge, décédé il y a peu.

Un point historique des forges, des nouveautés de fusionforge ainsi que de sa communauté est contenu dans le corps de cette dépêche.

Journal The Architecture of Open Source Applications

Posté par  (Mastodon) . Licence CC By‑SA.
38
30
mai
2011

Un livre qui n'a pas l'air trop mal vient de sortir sous le titre "The Architecture of Open Source Applications". Il est composé de 25 chapitres et chaque chapitre détaille un logiciel libre, souvent par un de ses contributeurs majeurs. Chaque application est ainsi décortiqué pour nous en montrer les entrailles. Bref, un excellent voyage du côté obscur du code, ce qu'on a rarement l'occasion de voir.

En prime, le livre est lui-même libre (CC-BY), il est disponible sur Lulu (…)

PlantUML, un nouvel outil de génération UML

Posté par  . Modéré par Bruno Michel.
22
19
déc.
2010
Doc
PlantUML est un outil Java permettant d'écrire très rapidement des diagrammes UML en utilisant un langage texte simple et intuitif. Il supporte actuellement sept types de diagrammes : séquence, cas d'utilisation, classe, activité, composant, état et objet qui peuvent être générés au format PNG ou SVG.

Ainsi, par exemple le texte

@startuml
Alice -> Bob: synchronous call
Alice ->> Bob: asynchronous call
@enduml

génère le diagramme de séquence suivant :

Diagramme de séquence généré par PlantUML où Alice appelle Bob de manière synchrone, puis de manière asynchrone

Il est également possible de changer l'aspect visuel grâce à des paramètres de skin.

Grâce au soutien de la communauté open source, un écosystème de greffons a pu voir le jour : intégration Word / Open Office, intégration Eclipse, intégraton Emacs, intégration Javadoc / Doxygen, intégration MediaWiki / DokuWiki / Confluence, etc.

Des éditeurs graphiques ont également été développés comme PlantUML editor ou EasyUmlEditor et le projet PlantUML dependency permet la génération de la description PlantUML à partir d'un code source Java.

Sortie de la version 2.4 de Sonar

Posté par  (site web personnel) . Modéré par Benoît Sibaud.
Étiquettes :
10
16
déc.
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source.

La version 2.4 de Sonar vient de sortir. Parmi les améliorations et corrections de bogues se trouvent également plusieurs fonctionnalités majeures qui viennent enrichir la plate-forme :
  • Possibilité de personnaliser les dashboards de projets

  • Ajout d'un centre de mise à jour des greffons

  • Ajout d'un moteur de règles d'architecture

  • Support de Maven 3


NdM : comme dit par Francesco dans les commentaires de la dépêche précédente « Par défaut, Sonar permet de gérer la qualité de codes écrits en Java. D'autres langages peuvent être ajoutés via des greffons (libres et / ou commerciaux). »

Entretien avec Stefano Zacchiroli, Responsable du Projet Debian

Posté par  (site web personnel) . Modéré par patrick_g.
44
22
août
2010
Debian
Stefano Zacchiroli (Zack) a été élu Responsable du Projet Debian en avril dernier. Il est actuellement en post-doctorat au laboratoire "Preuves, Programmes et Systèmes" de l'université Paris 7 (où travaille également Roberto Di Cosmo). Son travail s'inscrit au sein du projet européen de recherche Mancoosi qui vise à améliorer les gestionnaires de paquets des distributions.

Au sein de Debian, Zack s'occupe des paquets liés au langage de programmation OCaml et il est aussi très impliqué dans tout ce qui touche l'assurance qualité. En septembre 2009, il a également lancé l'initiative "Release Critical Bugs of the Week" qui se propose de corriger chaque semaine des bugs bloquants du projet Debian.

En lisant ce qui précède, on comprend que Zack est quelqu'un de très occupé. Pour ajouter à son fardeau, j'ai essayé de collecter les questions se trouvant dans la proposition d'entretien initiée par Florent, j'en ai ajouté quelques-unes et j'ai envoyé le tout par mail. Il a eu la gentillesse d'accepter de répondre à cet entretien pour les lecteurs de LinuxFr. Qu'il en soit chaudement remercié.

Sortie de la version 2.2 de Sonar

Posté par  (site web personnel) . Modéré par Nÿco.
Étiquettes :
13
22
juil.
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source.

La version 2.2 de Sonar vient de sortir. Parmi une soixantaine d'améliorations et corrections de bogues se trouvent également trois fonctionnalités majeures qui viennent enrichir l'outil ainsi que augmenter les possibilités de l'étendre par des greffons :
  • Filtres : les utilisateurs peuvent définir des filtres et créer des onglets afin d'obtenir une vue sur un sujet particulier. Par exemple : tous les projets, les tests unitaires dont l'exécution est la plus longue, les classes avec une couvertures par les tests unitaires < 50% et une complexité moyenne par méthode > 10...
  • Favoris : il est maintenant possible de marquer une ressource (projet, module, package, fichier) comme étant une ressource favorite ce qui permet de la retrouver par la suite dans un onglet dédié aux favoris.
  • Le chargeur de classe des greffons : chaque greffon est maintenant exécuté dans son propre classloader. Le principal avantage en est que les greffons peuvent maintenant déclarer leurs propres dépendances au lieu d'être limités aux bibliothèques fournies par Sonar.

Journal "Développer sans bug" avec FindBugs?

Posté par  (site web personnel) .
Étiquettes :
5
12
juil.
2010
Il existe nombre d'outils d'audit de code dans l'univers du développement Java qui sont autant d'armes contre les faux-pas de développement. FindBugs (qui porte bien son nom...) propose de parcourir les applications java à la recherche de motifs à problèmes.

L'outil développé par l'Université du Maryland appartient à la famille des analyseurs statiques comme PMD ou CheckStyle. Il ne cherche pas à observer l'application en action mais plutôt à se plonger dans son code. Cependant FindBugs se différencie au sein (…)

Sortie de la version 2.1 de Sonar

Posté par  (site web personnel) . Modéré par tuiu pol.
12
27
mai
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source.

La version 2.1 de Sonar vient de sortir. Parmi une cinquantaine d'améliorations et corrections de bogues se trouvent également trois fonctionnalités majeures qui viennent enrichir l'analyse de la conception et de l'architecture :
  1. La cartographie des bibliothèques : qui utilise quelle bibliothèque et en quelle version ?
  2. Détection des appels aux méthodes obsolètes ;
  3. Détection du code mort.

Cette version améliore également la gestion des langages dans la plate-forme. L'analyse de nouveaux langages est apparue par l'intermédiaire de greffons open source (pour PHP, Flex, .Net) ainsi que commerciaux (pour Cobol, Visual Basic, PL/SQL).

Journal QML: le futur des interfaces graphiques

Posté par  (site web personnel) .
Étiquettes :
32
13
mai
2010
Vous connaissez sans doute Qt ? Mais si... cette bibliothèque libre en C++ qui permet de faire des applications graphiques, utilisé par KDE. Vous aurez remarqué que les interfaces "classique" sont encore faites avec des widgets rectangulaires sans aucune imagination. Ce sont des interface des années 90-00.

Avec la future version de Qt (4.7), vient un nouveau langage permettant de faire des interface graphiques digne des années 10: QML

L'idée c'est de pouvoir faire des interfaces graphiques animées et de (…)

Sortie de Scub Foundation Socle Technique Java Open Source

Posté par  (site web personnel) . Modéré par tuiu pol.
6
16
avr.
2010
Java
Scub foundation est un socle technique (basé sur Maven) composé d’un ensemble de modèles de projets, de frameworks, de conventions, d’outils et de procédures qui structurent les développeurs et leurs développements.

Concrètement, ce socle technique offre au développeur un environnement de développement intégrant les meilleurs éléments Open Source (Eclipse, Maven, Spring, GWT…) ainsi que des modèles de projet.
Scub Foundation a été conçu avec les objectifs suivants :
  • Ne pas réinventer la roue (Intégration d’Eclipse et des frameworks populaires comme hibernate, spring, gwt, JUnit…).
  • Avoir des modèles de projets pour chaque type de projet mais avec des structures identiques.
  • Avoir des tâches automatisées pour l’ensemble du cycle de vie du projet (compilation, packaging, test…).
  • Développement SOA (intégration de la notion de noyau et du découplage Interface/implémentation).
  • Gestion automatique des dépendances / librairies.
  • Gestion des environnements de production, test, développement…
  • Une documentation complète pour rapidement mettre à niveau son équipe ou intégrer un nouveau membre.

Sortie de la version 2.0 de Sonar

Posté par  (site web personnel) . Modéré par Florent Zara.
Étiquettes :
18
18
mar.
2010
Java
Sonar est une plate-forme libre (LGPL v3) permettant de gérer la qualité du code source Java

La version 2.0 amène dans Sonar la gestion du septième axe d'analyse de la qualité du code source. Pour rappel, les six axes déjà présents dans Sonar sont : couverture de code par les tests unitaires, vérification du respect des règles de codage, recherche de bugs potentiels, distribution de la complexité du code, recherche du code dupliqué et insuffisance de commentaires.

Le septième axe consiste à analyser le Design et l'Architecture d'une application ainsi qu'à faire ressortir des métriques orientées objet. Les fonctionnalités principales disponibles sont :
  • Identifier les dépendances indésirables afin de couper les cycles entre packages ;
  • Navigation dans les dépendances entre composants à l'aide d'une DSL (Dependency System Matrix) ;
  • Permettre la chasse aux classes qui portent plusieurs responsabilités.
En plus de ces nouvelles fonctionnalités, la nouvelle version contient près de cinquante améliorations et corrections.

Journal Des outils d'audit de code Java

Posté par  (site web personnel) .
Étiquettes :
10
17
fév.
2010
Le langage Java n'est pas un langage qui s'exprime avec juste un éditeur de texte et un compilateur... Les IDE et outils d'aide au développement sont légion et pour cause, il serait dangereux de s'en passer. C'est particulièrement vrai pour les outils d'audit de code dont voici deux exemples.

UCDetector (prononcer "You See Detector") est un plugin Eclipse qui comme son nom l'indique se propose de détecter le code mort (Un-needed Code Detector) dans les sources Java.

Premier avantage : (…)