“SonarSource City Tour Paris” est une journée organisée chaque année par SonarSource dont le but est de présenter une nouvelle version de “SonarQube”. Cette nouvelle version sera la 6.7 LTS et sortira très prochainement.

Comme chaque nouvelle version, il y a des améliorations qui sont faites sur les règles de Maintenability (Technical Debt) de Reliability (Potential Bugs) et Security (Vulnerabilities), mais il y en a d’autres comme le support de nouveaux langages et SonarLint.

SonarQube 6.7 LTS met aussi l’accent sur :

  • Continous Code Quality (Continous Inspection, Detect Tricky Issues, Centralize Quality, Devops Integration …)
  • Depth of Analysis
    • Pour comprendre l’existence d’un bug (Exemple : une méthode avec une complexité cognitive très élevée)
    • Surtout avec un DataFlow Analysis (Exemple : l’utilisation d’une propriété à plusieurs endroits)
  • Smart & Powerful Reporting
    • Plus de statistiques
    • Un focus sur l’information essentielle
    • Plus d’explications sur les bugs

 

Une nouvelle attendue, le Branch Management

La nouvelle la plus attendue de cette version est le Branch Management. En effet, SonarQube propose deux modes de gestion de branche :

  • Une première qui a tendance à vivre longtemps pour les maintenances et qui hébergera les versions d’un projet. Ce type de branche nécessite une certaine configuration.
  • La deuxième, en revanche, possède une durée de vie plus courte. Celle-ci est destinée à du “Features” ou du “Bug Fixing”. Sur ce type de branche, il n’y a pas encore de measure ni de quality gate et le statut des issues n’est pas maintenu.

Des webhooks sont mis à disposition pour qu’un système externe puisse s’y connecter afin de mettre à jour les statuts des pull request.

D’autres nouveautés attendues

Beaucoup d’autres nouveautés sont présentées sur cette version, à savoir :

  • SonarTS : Un analyseur pour TypeScript
  • SonarTSQL : Un analyseur pour T-SQL
  • Une extension SonarLint pour VS Code et Atom
  • Une extension SonarLint pour MainFrame
  • Le Support for ARM Compilers
  • Cognitive Complexity

Toutes ses informations permettent de savoir :

  • Si les projets
    • ont un quality gate qui ne passe pas ?
    • ont un risque élevé ?
  • Si les équipes fixent les issues jour par jour ?
  • Où le risque se trouve dans mon code projet ?
  • Est-ce qu’il y a une évolution suite à la correction des issues ?
  • Les actions faites lors d’un pic d’issues ?
  • L’état du portfolio d’un projet ?

L’équipe de SonarSource a mis notamment l’accent sur l’utilisation des différents produits pour maximiser l’apport dans un cycle d’intégration continue :

  • En partant d’un environnement de développement (utilisant SonarLint qui est connecté à une instance SonarQube) en passant par l’intégration continue à travers VSTS ou Jenkins par exemple, jusqu’à la visualisation des résultats par les stakeholders.

En suivant ce processus, l’équipe de Support consacrera plus de temps pour un support plus pertinent.

Nouvelles éditions, nouvelle facturation

Parmi les nouveautés citées ci-dessus, il y en a celles qui ne sont présentes que sur des éditions commerciales. Voici la liste des éditions proposées par SonarSource:

  • Community : c’est l’édition FOSS.
  • Developer : cette édition inclue la gestion des branches, les notifications et les langages modernes
  • Entreprise : c’est l’édition proposée sur l’ancienne version en incluant tous les langages
  • Data Center : celle-ci propose de la Haute Disponibilité

Le support devient optionnel et le prix de base pour chaque édition est lié à la volumétrie d’usage (LoC).

SonarCloud

A ses offres “On-Premise”, vient s’ajouter “SonarCloud”.

SonarCloud est la version “SonarQube as a Service”. Elle contient évidemment toutes les fonctionnalités et elle héberge les projets clients avec leurs “quality profile” respectives.

Actuellement, ce service ne permet qu’une authentification via GitHub et BitBucket. Une authentification tierce n’est pas encore implémentée. Malheureusement, tout ce qui concerne une personnalisation n’est pas offert par ce service, à savoir :

  • Les plugins customs
  • Les rules customs

Le plus avec cette offre cloud, c’est que l’utilisateur aura l’accès à de nouveaux analyseurs chaque semaine et des features toutes les deux semaines.

Parlons de choses sérieuses : le prix.

SonarSource offre un prix, pareil que pour les éditions “On-Premise”, lié au volume d’utilisation (LoC). Ce service peut être gratuit si l’utilisateur propose une solution OpenSource.

 

SonarSource City Tour - Sonar C# Analyzer

Roadmap

A la fin de cette journée, les équipes de SonarSource nous ont présenté leur roadmap. Il y aura beaucoup d’améliorations qui mettront en évidence le travail effectué par les développeurs dont le but est de motiver à “bien coder”. Ci-dessous, quelques fonctionnalités qui feront parties de la prochaine version :

  • Un Dashboard développeur : ce dashboard ‘’My Activity’’ permettra d’avoir une idée sur :
    • Les contributeurs d’un projet
    • Comment agréger les informations pour fournir au développeur son activité concernant les issues, les duplications et le code coverage
    • Sur les points bonus d’un développeur : Un système de points cumulés suite à l’amélioration de la qualité du code. Ses points permettront de gagner des badges.

 

SonarSource City Tour - Developper Activity

  • Le Live-Update : chaque modification dans une issue ou autre, sera directement visible sur le Main Dashboard du projet.
  • Chaque changement, par exemple une modification dans la quality gate, alertera les utilisateurs via une notification. Un webhook pourra être utilisé pour notifier les systèmes externes.
  • L’intégration avec des outils d’ALM : VSTS, GitHub et BitBucket.
  • L’authentification VSTS fera partie de cette roadmap.
  • L’aperçu rapide de la qualité des projets. Un clic donnera plus d’infos sur la qualité du projet en détail.

 

SonarSource City Tour - Sonar C# Analyzer

    • Pouvoir mettre à jour les statuts des détails analysés et prévenir des merges potentiels si le projet ne passe pas la qualité de code. Ci-dessous un aperçu d’une intégration avec Bitbucket

SonarSource City Tour - Intégration avec Bitbucket

    • Une meilleure gestion de vulnérabilités :
      • vérification des users inputs
      • propagation des strings “unsafe”
      • vérifier les chaines utilisées pour créer des pages HTML ou des requêtes SQL, le contenu d’un mail etc.
      • analyse à travers les fichiers et les dépendances du code. Le moteur data flow doit être complétement path-sensitive et context-sensitive
    • Une navigation plus facile entre les fichiers

Pour conclure sur SonarSource City Tour

Chaque année, SonarSource montre son investissement sur leurs outils permettant à chaque utilisateur de se concentrer sur la qualité de code avec des visions différentes (développeur, stakeholders etc…).

J’espère que vous allez profiter de cette version, de ce retour sur la journée “SonarSource City Tour Paris” et ses nouveautés qui peuvent être apportées dans votre environnement CI.

Livre Blanc Cell'insight 1 DevOps