Sonar 2.13 est disponible

Posté par  (site web personnel, Mastodon) . Édité par Lucas Bonnet, Nÿco, Mouns et baud123. Modéré par Lucas Bonnet. Licence CC By‑SA.
25
27
jan.
2012
Java

Sonar, l'outil d'analyse de la qualité du code source que l'on ne présente (presque) plus désormais, vient de sortir sa nouvelle version, comme toutes les 6 semaines ou presque.
Logo Sonar

La version complètement Open Source (LGPL v3) permet d'analyser du Java, PHP, Groovy, C#, Flex/ActionScript et du Javascript et fournir les résultats détaillés et agrégés dans un portail web contenant des tableaux de bords essentiellement techniques. Il s'intègre assez naturellement avec les outils d'intégration continue.

Les nouveautés sont détaillées dans la seconde partie. Vous pouvez tester par vous même sur l'instance publique de Sonar.

Nouveautés

Parmi les nouveautés de cette version 2.13, en plus des habituelles corrections de bugs :

  • un nouveau moteur de recherche interne plus large couvrant les modules, les fichiers sources et les tests unitaires en plus des projets ;
  • la possibilité de changer le niveau de sévérité des transgressions ;
  • la création de transgressions que les outils ne détectent pas, n'importe où dans le code source lors de revues de code manuelles ;
  • plusieurs nouveaux widgets liés à l'activité d'un projet ;
  • le passage à JaCoCo 0.5.5, Checkstyle 5.5 et PMD 4.3 pour Java.

Et dans la version 2.12, les fonctionnalités suivantes ont été ajoutées :

  • support de la syntaxe de Java 7 ;
  • intégration du moteur de couverture des tests unitaires JaCoCo, en plus de Cobertura ;
  • amélioration de l'onglet remontant les copier-coller.

Sachez que Sonar supporte plus de langages (principalement dits « legacy » à destination des entreprises : VB6, Cobol, Natural, etc.) et propose des modes de restitution plus haut niveau, mais cela passe par l'utilisation de plug-ins propriétaires, payants pour la plupart. C'est a priori comme cela que SonarSource, l'éditeur de l'outil, vit et peut offrir une base Open Source relativement solide à Sonar.

Feuille de route

Pour les versions à venir, les fonctionnalités suivantes sont prévues :

  • Sonar CPD pour tous les langages ;
  • meilleur suivi des nouvelles transgressions ;
  • meilleur support de systèmes tiers pour la gestion des utilisateurs et des groupes.

Sachez aussi que pas mal de nouveaux plugins sont en train d'arriver pour supporter de nouveaux langages : Python, Delphi, C++, Scala, etc. Ils devraient être sous LGPL v3. Tous les détails sont sur la page dédiée des plugins en cours de développement.

Aller plus loin

  • # Bravo

    Posté par  (site web personnel) . Évalué à 5.

    Bravo à toute l'équipe qui tient le rythme des releases !!!

  • # Hors sujet

    Posté par  . Évalué à 4.

    Il s'intègre assez naturellement avec les outils d'intégration continue permettant de faire une « inspection » en continu du code source.

    Cette phrase bégaie, non ?

    • [^] # Re: Hors sujet

      Posté par  (site web personnel) . Évalué à -1.

      pas plus qu'un eclipse tentant de recompiler ton code dès que tu finis une ligne de code, au prix de 100% d'un cœur qui y est dédié (quand ce n'est pas plus...).

      • [^] # Re: Hors sujet

        Posté par  . Évalué à 3.

        Rien a voir avec la mayonnaise.

        • [^] # Re: Hors sujet

          Posté par  (site web personnel) . Évalué à 2.

          je préfère les frites :-) si un peu tout de même, cf. ci-dessous l'interprétation que j'en avais (intégration pour, par exemple, jenkins - ex-hudson - et inspection pour sonar).

      • [^] # Re: Hors sujet

        Posté par  . Évalué à 3.

        Je pense qu'il parlait uniquement de la forme.

        Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

        • [^] # Re: Hors sujet

          Posté par  (site web personnel) . Évalué à 2. Dernière modification le 01 février 2012 à 21:50.

          J'ai enlevé la fin de la phrase. J'imagine qu'une formulation plus complète aurait été « Il s'intègre assez naturellement avec les outils d'intégration continue, permettant à Sonar de produire les rapports régulièrement et ainsi de faire une « inspection » - elle aussi - en continu du code source. »

  • # JaCoCo, non ?

    Posté par  . Évalué à 3.

    le passage à JoCoCo 0.5.5

    Sauf que la page Web pointée parle de JaCoco : "Java Code Coverage Library"

    • [^] # Re: JaCoCo, non ?

      Posté par  . Évalué à 2.

      C'est la suite du produit Emma, c'est ça ?
      Emma, c'est ce que j'utilisais sur ma PIC.
      On m'a pas prévenu du changement de nom :)

      • [^] # Re: JaCoCo, non ?

        Posté par  . Évalué à 2.

        Non c'est pas la suite.

        JaCoCo a été démarré par le gars qui maintient le plugin Eclipse d'Emma appelé EclEmma. Il avait plein de rapports de bug pour Emma, mais il n'y avait aucun mainteneur et pas de tests unitaires non plus. Alors il a décidé de réécrire une librairie pour vérifier la couverture de code.

        Voila comment JaCoCo est né, c'est une base de code complètement différente, donc ce n'est pas la suite d'Emma, mais un remplacement total.

  • # Présentation pas si superflue

    Posté par  . Évalué à 3.

    Je ne connaissais pas. C'est d'ailleurs bien dommage qu'en 4e année d'école d'ingénieur, on ne nous en ait jamais parlé... Ça a l'air d'être un outil très utile pour obtenir, en fin de développement, un code robuste. Je vais essayer de sérieusement me pencher dessus. Le lien « Testez Sonar » donne envie de s'y mettre, en tout cas.

    • [^] # Re: Présentation pas si superflue

      Posté par  . Évalué à 1.

      Je me permets de corriger : en fait, l'outil avait été mentionné en cours. Comme quoi, je parle parfois trop vite !

    • [^] # Re: Présentation pas si superflue

      Posté par  (site web personnel) . Évalué à 2.

      c'est à employer dans un outils d'intégration continue.... lancé tous les soirs, au matin tu as le résultats et tu peux les analyser

      www.solutions-norenda.com

    • [^] # Re: Présentation pas si superflue

      Posté par  . Évalué à 3.

      Comme dit plus haut, le concept meme du truc, c'est precisement de pas l'employer en fin de dev, mais a chaque commit :)

      Si t'attends la fin du dev, tu vas pleurer, et ca sera trop tard.

      Et sinon, serieux, l'integration continue, on vous en parle meme pas en ecole d'inge?!?

      If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

      • [^] # Re: Présentation pas si superflue

        Posté par  . Évalué à 2.

        Bof pas vraiment dans mon souvenir pas si vieux.
        En même temps, je ne rappelle pas avoir eu de cours expliquant bien les tests unitaires avec TP, sinon, je peux te dire que j'aurais perdu moins de temps pendant mes études. Pareil pour l'utilisation du logging au lieu des bons vieux system out dans du code multithreadé, bref, on apprend beaucoup de théorie, mais de tous petits ateliers de génie logiciel (UML ne compte pas) avec les bonnes pratiques ne ferait pas de mal du tout.

  • # Recette Chef

    Posté par  . Évalué à 1.

    Pour info, il y a une recette Chef pour installer Sonar avec différentes variantes (connecteur MySQL, Apache ou Nginx Proxy)

    https://github.com/fudriot/chef-sonar qui est un fork de https://github.com/ctrabold/chef-sonar (en attandant que l'auteur intègre les pull request)

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.