Types de logiciels de dépôt de code
Dans un processus de développement logiciel, une fois que votre programme quitte les limites de votre système ou de votre machine, il y a généralement quatre composants clés dont vous aurez besoin pour un développement plus réussi de votre création : un site Web bien optimisé, une liste de diffusion pleinement active, un bon traqueur de problèmes et un dépôt de code sécurisé.
Même si la plupart des infrastructures requises par un projet de développement logiciel peuvent déjà être disponibles sur les systèmes internes de l’entreprise, il existe une large gamme d’outils et de services qui peuvent faciliter les équipes de développement dans leurs efforts pour maintenir et publier un logiciel bien construit et réussi.
Il existe quelques types différents de solutions de dépôt de code. Il y a celui que l’on appelle un service hébergé – des installations de code source hébergées par un fournisseur de services réputé, qui est connu comme un dépôt institutionnel – qui sont généralement exécutés et gérés par l’organisation avec leurs propres services de contrôle de version. Sinon, il y a aussi le type de dépôt de code avec une infrastructure conçue et gérée par l’entreprise elle-même.
Services hébergés
Les services hébergés sont une solution courante pour les développeurs de logiciels qui travaillent avec des collaborateurs et des committers sur des projets complexes, surtout lorsque ces collaborateurs sont répartis dans plusieurs institutions.
Certains de ces services hébergés publics et dépôts de code sont en fait assez populaires dans l’industrie, ce qui inclut GitHub, GitLab, BitBucket, Launchpad, SourceForge, Savannah et Assembla. Cependant, toutes ces solutions ne proposent pas exactement les mêmes services. GitHub offre un environnement solide aux développeurs de logiciels en tant que service axé sur les développeurs. BitBucket est un service hébergé par Atlassian, un fournisseur de services connu pour ses solutions collaboratives, qui incluent Confluence et JIRA.
GitLab, d’autre part, est un gestionnaire de dépôt Git basé sur le Web qui est livré avec des fonctionnalités de wiki et de suivi des problèmes. Le service propose également un dépôt local qui peut être installé dans l’infrastructure de l’institution ou de l’organisation.
SourceForge est l’une des plateformes hébergées les plus anciennes et les mieux établies pour les projets de développement de logiciels et les dépôts de code source. Le fournisseur de services offre la majorité des fonctionnalités et des capacités que l’on peut attendre d’un référentiel.
Launchpad est hébergé par Canonical et il s’adresse à plusieurs utilisateurs bien connus comme Ubuntu et MySQL. Le service est livré avec le suivi des fonctionnalités et des spécifications ainsi que la gestion des versions Soyuz.
Assembla est un fournisseur de services hébergés populaire parmi les petites équipes et organisations. Il offre des facilités de gestion de projet étendues ainsi que des services de développement de logiciels. Savannah s’adresse à la majorité des logiciels GNU et à quelques solutions non-GNU. La plateforme se concentre sur l’hébergement de projets de développement de logiciels libres.
Dépôts de code institutionnels
Malgré la disponibilité d’une multitude de services hébergés et de dépôts de code sur le Web, il existe toujours un certain nombre d’entreprises et d’organisations qui gèrent leurs propres services de contrôle de version, leurs gestionnaires de listes de diffusion et leurs services.
Le plus souvent, ce type de dépôt de code ou de service de développement logiciel est beaucoup plus efficace si les développeurs et les committers affectés au projet sont basés dans l’organisation qui héberge le service. Cependant, les référentiels institutionnels sont également capables de gérer une poignée de collaborateurs externes.
Gérer et exploiter votre propre infrastructure
Donc, il y a le service hébergé, le référentiel institutionnel, et puis il y a le système de contrôle de révision autogéré comme SVN, CVS ou Git. Il existe également des solutions qui permettent aux organisations de gérer leur propre dépôt de logiciels à l’aide de paquets comme Trac, GitLab, Savane (qui alimente SourceForge ainsi que Savannah), LibreSource, GForge et Codendi.
Ce type de solution de dépôt de code nécessite un engagement sérieux, du temps et des efforts pour mettre en place et maintenir le flux de travail et le processus de développement. Cependant, le gain est qu’il donne aux équipes de développement et aux entreprises le plus de contrôle sur leurs projets et leur dépôt, en particulier lorsqu’il s’agit de personnalisation.