
In
free and open-source software (FOSS) development communities, a forge is a web-based
collaborative software
Collaborative software or groupware is application software designed to help people working on a common task to attain their goals. One of the earliest definitions of groupware is "intentional group processes plus software to support them."
Regar ...
platform for both developing and sharing computer applications.
For
software developer
Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
s it is an online service to host the tools they need to work and communicate with their coworkers. It provides a workflow to propose modifications and engage in discussions. The goal is to reach an agreement that will allow these modifications to be merged into the software repository.
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.
The source code itself is stored in a
revision control system and linked to a wide range of services such as a
code review,
bug database,
continuous integration, etc. When a 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.
History
The term ''forge'' refers to a common prefix or suffix adopted by various platforms created after the example of
SourceForge in 2001.
This usage of the word stems from the metalworking
forge, used for
shaping metal parts.
In 2023 the two most widely used collaborative development platforms are not advertised as being ''forges''. The GitHub tagline is "The complete developer platform to build, scale, and deliver secure software". The GitLab tagline is "the most comprehensive AI-powered DevSecOps Platform". Although they share all the technical aspects of what constitutes a forge, the documentation and marketing material does not make use of the term ''forges''.
However, in FOSS development communities and since the inception of the first SourceForge fork in 2001, the term ''forge'' is still commonly used to designate online
collaborative software
Collaborative software or groupware is application software designed to help people working on a common task to attain their goals. One of the earliest definitions of groupware is "intentional group processes plus software to support them."
Regar ...
platforms.
Similar online services for developers
Some online services do not qualify as a forge, even when they share some of its essential aspects. For instance a standalone code review service such as
Gerrit is sometime integrated in a forge that lacks integrated code review but cannot be used to distribute the software to end users.
Similarly, online services that focus on project management or issue tracking such as
Trac,
Redmine or
OpenProject do not provide a workflow to be used by software developers to discuss the changes they propose and merge the outcome in the software repository. These services may include limited integration with a range of version control system, for visualization and citing code it contains, but that alone is more of a feature than a workflow a developer can use.
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
forums
*
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 fro ...
, it is common for a forge to provide a
REST API with a documentation (
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
,
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 called a federal state) is an entity characterized by a political union, union of partially federated state, self-governing provinces, states, or other regions under a #Federal governments, federal government (federalism) ...
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 providers such as
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
). 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 has a plugin for GitHub and is natively support by GitLab).
Examples
Free software
*
Allura
*
Forgejo
*
FusionForge
*
Gitea
* (GitHub compatible)
*
Kallithea
Kallithea (Greek language, Greek: Καλλιθέα, meaning "beautiful view") is a suburb in Athens#Athens Urban Area, Athens agglomeration and a municipality in South Athens (regional unit), south Athens regional unit. It is the eighth larges ...
*
Launchpad Suite
*
*
Tangled
*
Tuleap
*
Phorge (Phabricator fork/continuation)
*
Gogs
Open-core software
*
GitLab (Community Edition and Enterprise Edition)
Freemium software
*
GForge Advanced Server
Free online services
*
Codeberg
*
OSDN (Open Source Development Network)
*
SourceForge
*
GNU Savannah
Freemium online services
*
GitLab
*
GitHub
GitHub () is a Proprietary software, proprietary developer platform that allows developers to create, store, manage, and share their code. It uses Git to provide distributed version control and GitHub itself provides access control, bug trackin ...
*
Bitbucket
* SourceHut
Discontinued software
*
Phabricator
* 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 (It was disbanded in 2014, some projects have been moved to
Joinup collaboration platform.)
*
CodePlex (Shut down on December 15, 2017)
*
Gitorious (deprecated, superseded by GitLab)
*
Gna.org
*
Google Code
*
Open Source Assistive Technology Software (OATS)
* Project Kenai (created by
Sun Microsystems
Sun Microsystems, Inc., often known as Sun for short, was an American technology company that existed from 1982 to 2010 which developed and sold computers, computer components, software, and information technology services. Sun contributed sig ...
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 (ALM)
References
Project hosting websites
{{programming-software-stub