Notre équipe a exploré la meilleure solution pour faciliter le travail de nos développeurs, en particulier lors de la gestion de projets complexes ou de plusieurs projets simultanément, en automatisant et en standardisant certains processus au sein de l'entreprise. Nous visions à rendre les processus plus efficaces et parfaitement intégrés au travail quotidien d'un développeur, afin qu'il ne les remarque pas lors du passage d'un projet à un autre.  

Tout d'abord, nous avons essayé de créer des scripts pour automatiser le travail des développeurs, en les aidant à compiler, flasher, tester et sauvegarder les logiciels. Cependant, cela s'est avéré inefficace avec de nombreux projets – pour introduire un changement, par exemple dans l'environnement de développement, nous devions le copier dans chaque projet séparément pour synchroniser les choses.

Après avoir approfondi le problème, nous avons finalement créé une solution qui répondait à nos besoins. Nous souhaitons vous présenter scargo.

Qu'est-ce que scargo ?

Scargo est un outil open-source que nous avons créé sur la base de Rust Cargo gestionnaire de packages et du cycle de vie logiciel. Pour expliquer au mieux ses fonctionnalités et ses avantages, nous devons d'abord vous en dire plus sur Cargo.

Rust Cargo est un système de build et un gestionnaire de paquets pour le langage de programmation Rust. Il a été développé dans le cadre du projet du langage Rust. Cargo permet aux développeurs Rust de gérer facilement les dépendances de leur projet en téléchargeant et en compilant automatiquement toutes les bibliothèques et tous les outils requis. Il offre également un moyen pratique de compiler, tester, empaqueter et mettre à jour les projets Rust à l'aide d'une interface en ligne de commande simple.

Pour construire scargo, nous avons utilisé l'interface de Cargo comme base car elle est bien définie et les utilisateurs la connaissent déjà, mais nous l'avons adaptée pour le C++. De plus, nous avons étendu ses fonctionnalités pour gérer l'environnement de développement CI/CD. Cela nous a permis d'automatiser ce que nous devions auparavant gérer manuellement.

Scargo vous permet de :

  • créer un nouveau projet (binaire ou bibliothèque)
  • compiler le projet
  • exécuter des analyseurs de code statique
  • corriger automatiquement le problème choisi sur la base de l'analyse du vérificateur
  • exécuter des tests unitaires
  • générer la documentation à partir du code source
  • travaillez avec l'environnement Docker prédéfini en fonction de l'architecture choisie
  • Déboguer le logiciel,
  • And more …

Les avantages de scargo – gestionnaire de cycle de vie des packages et du développement logiciel pour les projets C++ et embarqués

Scargo nous aide à standardiser notre travail. Il nous permet de créer et de gérer des bibliothèques de composants et de propager l'environnement de développement à travers divers projets (l'environnement est unifié par la dockerisation), tout en maintenant la cohérence de la documentation. Le système de travail est identique pour tous les développeurs grâce à un seul outil, qui gère les commandes et dicte un certain flux du processus, garantissant ainsi le maintien d'un code de haute qualité dans chaque projet.

Scargo est idéal pour les projets C++ et embarqués utilisant des microcontrôleurs ESP32 et STM32, car il permet le flashage, les tests et le débogage externes. Il peut être intégré à du matériel spécifique et est sous licence MIT, ce qui permet de le livrer avec le matériel, garantissant un environnement de développement unifié sur l'ensemble du projet, un code de haute qualité et une plus grande efficacité du travail des développeurs.

Du côté de la gestion de projet, scargo simplifie l'intégration des nouveaux développeurs et accélère la configuration des projets, ce qui réduit considérablement les coûts et fait gagner du temps.

À l'avenir, nous certifierons scargo pour répondre aux exigences des réglementations médicales et automobiles dans l'UE et aux États-Unis.

Essayez scargo

Vous trouverez toutes les informations sur l'utilisation de scargo sur son site officiel page web GitHub. Il peut être téléchargé ici.  

Si vous avez des questions, contactezme.