In
FOSS development communities, a forge is a web-based
collaborative software platform for both developing and sharing computer applications. The term ''forge'' refers to a common prefix or suffix adopted by various platforms created after the example of
SourceForge. This usage of the word stems from the metalworking
forge, used for
shaping metal parts.
For
software developers it is an online service to host the tools they need to communicate with their coworkers. The source code itself is stored in a
revision control
In software engineering, version control (also known as revision control, source control, or source code management) is a class of systems responsible for managing changes to computer programs, documents, large web sites, or other collections o ...
system and linked to a wide range of services such as a
bug database,
continuous integration, etc. When a
FOSS development community
forks, it duplicates the content of the forge and is then able to modify it without asking permission. A community may rely on services scattered on multiple forges: they are not necessarily hosted under the same domain. For instance it is not uncommon for discussions to be hosted on
Discourse
Discourse is a generalization of the notion of a conversation to any form of communication. Discourse is a major topic in social theory, with work spanning fields such as sociology, anthropology, continental philosophy, and discourse analysis. ...
while the source code is hosted on
Gitea.
For users, a forge is a
repository of computer applications, a place where
bugs can be reported, a channel to be informed of
security issues, etc.
Software forges became popular in 2001,
and have proven successful as a
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development inv ...
environment for
millions of software projects.
Technology
Two different kinds of concepts are commonly referred to by the term ''forge'':
* a ''service'' offered on a Web platform to host software development projects;
* an integrated set of ''software'' elements which produce such platforms, ready for deployment.
All these platforms provide similar tools helpful to software developers working in the hosted projects:
*
source code management systems
*
mailing-lists or
forum
Forum or The Forum (plural forums or fora) may refer to:
Common uses
*Forum (legal), designated space for public expression in the United States
*Forum (Roman), open public space within a Roman city
**Roman Forum, most famous example
*Internet ...
s
*
wikis
*
download services
*
bug tracking system
Some provide other features as well:
*
code review
Interoperability
API and webhooks
In addition to the web
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
, it is common for a forge to provide a
REST API with the a documentation (
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
,
GitLab,
Gitea, etc.) to enable
interoperability with other products. Forge users can also install
webhooks to notify a third party online service when an event happens on their software project (for instance the webhook can be called when a new issue is created).
Federation
Federation
A federation (also known as a federal state) is a political entity characterized by a union of partially self-governing provinces, states, or other regions under a central federal government (federalism). In a federation, the self-govern ...
and the associated protocol
ActivityPub (introduced in 2018) allows forges to communicate with each other about their activities (for instance when issues are created or a commit is pushed). Although native federation support is sometime discussed or in progress it is not yet available. Third party projects emerged to bridge the gap such as a plugin for the pagure forge or a proxy supporting ActivityPub and translating it to
REST API calls to the designated forge.
Authentication
There is no
SSO that applications and users could rely on to authenticate with all forges. Instead it is common for a forge to support a number of authentication providers: if a user already has an account they can use it to authenticate on the forge and do not need to create a new account (for instance
GitLab supports
OAuth2
OAuth (short for "Open Authorization") is an open standard for access Delegation (computer security), delegation, commonly used as a way for internet users to grant websites or applications access to their information on other websites but witho ...
providers such as
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
). Some forges can act as an authentication provider (for instance
Gitea is an OAuth2 provider as well as GitLab).
Integration
To improve the user and the system administrator experience when using multiple online services, some forges are integrated with popular third-party software and services such as
online chat (for instance
mattermost
Mattermost is an open-source, self-hostable online chat service with file sharing, search, and integrations. It is designed as an internal chat for organisations and companies, and mostly markets itself as an open-source alternative to Slack a ...
has a plugin for GitHub and is natively support by GitLab).
Examples
Free software
*
Allura Allura may refer to:
* Allura, Karnataka, a village in Bidar district, Karnata, India
* Apache Allura, software
* Princess Allura, a fictional character
* Allura Red AC, a dye
See also
* Alura (disambiguation) Alura may refer to:
* Alura Coach ...
*
FusionForge
*
Gitea
*
GitBucket (GitHub compatible)
*
Joinup (Drupal-based)
*
Kallithea
*
Launchpad Suite
*
Phabricator
*
Redmine
*
SourceHut
*
Trac
*
Tuleap
Freemium software
*
GitLab
*
GForge Advanced Server
Free online services
*
Joinup collaboration platform
*
Launchpad
*
OSDN (Open Source Development Network)
*
SourceForge
*
GNU Savannah
sourcehut(while in alpha)
Freemium online services
*
GitLab
*
GitHub
GitHub, Inc. () is an Internet hosting service for software development and version control using Git. It provides the distributed version control of Git plus access control, bug tracking, software feature requests, task management, co ...
*
Bitbucket
Discontinued software
*
Savane (software)
*
GForge Community Edition (last release April 23, 2010), not to be confused with the proprietary
GForge first released October 1, 2018.
Discontinued online services
*
BerliOS
BerliOS (short for "Berlin Open Source") is a project founded by the Fraunhofer Institute for Open Communication Systems (FOKUS), Berlin, to coordinate the different interest groups in the field of open source software (OSS) and to assume a neu ...
(It was disbanded in 2014, some projects have been moved to
Joinup collaboration platform.)
*
CodePlex (Shut down on December 15, 2017)
*
Gitorious
Gitorious was a free and open source web application for hosting collaborative free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software ...
(deprecated, superseded by GitLab)
*
Gna.org
Gna! was a centralized location where software developers could develop, distribute and maintain free software. The service was shut down in 2017 after 13 years in service for dozens of software projects and millions of downloads served.
Since Ma ...
*
Google Code
*
Open Source Assistive Technology Software (OATS)
* Project Kenai (created by
Sun Microsystems but shut down by Oracle)
* Tigris.org (Shut down on July 1, 2020)
See also
*
Collaborative development environment (CDE)
*
Project management software (PMS)
*
Software project management
*
Comparison of source-code-hosting facilities
*
List of free software project directories
*
Application lifecycle management
Application lifecycle management (ALM) is the product lifecycle management ( governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software tes ...
(ALM)
References
Project hosting websites
{{programming-software-stub