En informatique, une forge désigne un système de gestion de développement collaboratif de logiciel.
L'objectif d'une forge est de permettre à plusieurs développeurs de participer ensemble au développement d'un ou plusieurs logiciels, le plus souvent à travers le réseau Internet.
De fait, une forge permet de rassembler des projets et des développeurs. Mais la plupart des forges permettent aussi à des personnes ne pratiquant pas la programmation de participer, par exemple les traducteurs ou les graphistes, ou les utilisateurs qui s'entraident dans des forums ou soumettent des rapports de bogues. Une forge permet donc de rassembler tous ces gens autour du développement de projets de logiciel.
Les forges représentent donc un bon moyen d'assurer la transparence du développement d'un projet et de trouver des contributeurs afin que le projet soit actif.
Il existe plusieurs forges actuellement disponibles sur le Web dans lesquelles des développeurs peuvent faire héberger gratuitement leurs projets.
Souvent, ces forges sont dédiées à l'hébergement de projets de développement de logiciel libre, parfois elles acceptent des projets développant des logiciels non-libres (mais dont les sources sont accessibles).
On peut par exemple citer SourceForge.net, qui est la première forge (historiquement) à proposer ce type de service à grande échelle.
Des forges comme GNU Savannah sont dédiées à l'hébergement exclusif de projets de logiciels libres.
Les outils offerts par une forge sont principalement :
L'avantage d'une forge est de rassembler tous ces outils en un seul ensemble intégré et cohérent, et de les mettre à disposition de plusieurs personnes afin qu'elles puissent développer ensemble leurs projets. En effet, avant l'apparition des forges, les développeurs souhaitant collaborer pour le développement d'un projet devaient installer chaque application séparément, ce qui demande bien plus de travail et de temps.
Ensuite, la forge peut aussi permettre de présenter son projet (ce qui peut être utile pour attirer des contributeurs potentiels) grâce à des outils comme :
Cela peut être organisé sur une page de présentation du projet, qui rassemble aussi la licence du projet, les technologies utilisées, la compatibilité...
Plus largement, les forges tendent à intègrer de plus en plus d'outils également présents dans d'autres plates-formes collaboratives facilitant le travail de groupe, l'organisation et la synchronisation dans les projets, mais aussi des outils plus spécifiques au développement de logiciels (outils d'intégration continue : de tests, packaging etc.)
Les plates-formes de forges ne fonctionnent pas toutes elles-mêmes à base de logiciels libres, ou dans un cadre bénévole, ce qui pose évidemment la question de l'utilisation et du stockage des données des projets déposés sur ces forges. Un article de la Free Software Foundation Europe résume cette question en s'intéressant à la « dérive de SourceForge ».
De même, le fait que le logiciel SourceForge soit devenu un logiciel propriétaire a poussé la création de nombreux « forks ». Ainsi, plusieurs forges libres sont basées sur une version antérieure de SourceForge, il s'agit de :