In
FOSS
Fos or FOSS may refer to:
Companies
* Foss A/S, a Danish analytical instrument company
*Foss Brewery, a former brewery in Oslo, Norway
* Foss Maritime, a tugboat and shipping company
Historic houses
* Foss House (New Brighton, Minnesota), Unite ...
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".
As re ...
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
SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrorin ...
. This usage of the word stems from the metalworking
forge
A forge is a type of hearth used for heating metals, or the workplace (smithy) where such a hearth is located. The forge is used by the smith to heat a piece of metal to a temperature at which it becomes easier to shape by forging, or to th ...
, used for
shaping metal parts.
For
software developer
Software development is the process of conceiving, specifying, designing, Computer programming, programming, software documentation, documenting, software testing, testing, and Software bugs, bug fixing involved in creating and maintaining applic ...
s 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
A bug tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system.
Many bug tracking systems, such as those ...
,
continuous integration, etc. When a
FOSS
Fos or FOSS may refer to:
Companies
* Foss A/S, a Danish analytical instrument company
*Foss Brewery, a former brewery in Oslo, Norway
* Foss Maritime, a tugboat and shipping company
Historic houses
* Foss House (New Brighton, Minnesota), Unite ...
development community
forks
In cutlery or kitchenware, a fork (from la, furca 'pitchfork') is a utensil, now usually made of metal, whose long handle terminates in a head that branches into several narrow and often slightly curved tines with which one can spear foods ei ...
, 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
Gitea () is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, kanban boards, tickets, and wikis. It supports self-hosting but also pr ...
.
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 invol ...
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
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 ...
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
*
wiki
A wiki ( ) is an online hypertext publication collaboratively edited and managed by its own audience, using a web browser. A typical wiki contains multiple pages for the subjects or scope of the project, and could be either open to the pu ...
s
*
download services
*
bug tracking system
A bug tracking system or defect tracking system is a software application that keeps track of reported software bugs in software development projects. It may be regarded as a type of issue tracking system.
Many bug tracking systems, such as thos ...
Some provide other features as well:
*
code review
Code review (sometimes referred to as peer review) is a software quality assurance activity in which one or several people check a program mainly by viewing and reading parts of its source code, and they do so after implementation or as an interr ...
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
Rest or REST may refer to:
Relief from activity
* Sleep
** Bed rest
* Kneeling
* Lying (position)
* Sitting
* Squatting position
Structural support
* Structural support
** Rest (cue sports)
** Armrest
** Headrest
** Footrest
Arts and enter ...
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
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, continuous ...
,
GitLab
GitLab Inc. is an open-core company that operates GitLab, a DevOps software package which can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmitriy Zaporozhets and Dutch developer ...
,
Gitea
Gitea () is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, kanban boards, tickets, and wikis. It supports self-hosting but also pr ...
, etc.) to enable
interoperability
Interoperability is a characteristic of a product or system to work with other products or systems. While the term was initially defined for information technology or systems engineering services to allow for information exchange, a broader defi ...
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-governin ...
and the associated protocol
ActivityPub
ActivityPub is an open, decentralized social networking protocol based on Pump.io's ActivityPump protocol. It provides a client/server API for creating, updating, and deleting content, as well as a federated server-to-server API for delive ...
(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
Rest or REST may refer to:
Relief from activity
* Sleep
** Bed rest
* Kneeling
* Lying (position)
* Sitting
* Squatting position
Structural support
* Structural support
** Rest (cue sports)
** Armrest
** Headrest
** Footrest
Arts and enter ...
API
An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
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
GitLab Inc. is an open-core company that operates GitLab, a DevOps software package which can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmitriy Zaporozhets and Dutch developer ...
supports
OAuth2 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, continuous ...
). Some forges can act as an authentication provider (for instance
Gitea
Gitea () is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, kanban boards, tickets, and wikis. It supports self-hosting but also pr ...
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
Online chat may refer to any kind of communication over the Internet that offers a real-time transmission of text messages from sender to receiver. Chat messages are generally short in order to enable other participants to respond quickly. Ther ...
(for instance
mattermost has a plugin for GitHub and is natively support by GitLab).
Examples
Free software
*
Allura
*
FusionForge
GForge is a commercial service originally based on the Alexandria software behind SourceForge, a web-based project management and collaboration system which was licensed under the GPL. Open source versions of the GForge code were released from 20 ...
*
Gitea
Gitea () is a forge software package for hosting software development version control using Git as well as other collaborative features like bug tracking, code review, kanban boards, tickets, and wikis. It supports self-hosting but also pr ...
*
GitBucket (GitHub compatible)
*
Joinup (Drupal-based)
*
Kallithea
Kallithea (Greek: Καλλιθέα, meaning "beautiful view") is a district of Athens and a municipality in south Athens regional unit. It is the eighth largest municipality in Greece (96,118 inhabitants, 2021 census) and the fourth biggest i ...
*
Launchpad Suite
*
Phabricator
Phabricator is a suite of web-based development collaboration tools, which includes ''Differential'' code review tool, ''Diffusion'' repository browser, ''Herald'' change monitoring tool, ''Maniphest'' bug tracker, ''Phriction'' wiki.
Phab ...
*
Redmine
Redmine is a free and open source, web-based project management and issue tracking tool. It allows users to manage multiple projects and associated subprojects. It features per project wikis and forums, time tracking, and flexible, role-based acc ...
*
SourceHut
*
Trac
Trac is an open-source, web-based project management and bug tracking system. It has been adopted by a variety of organizations for use as a bug tracking system for both free and open-source software and proprietary projects and products. Tra ...
*
Tuleap
Freemium
Freemium, a portmanteau of the words "free" and "premium," is a pricing strategy by which a basic product or service is provided free of charge, but money (a premium) is charged for additional features, services, or virtual (online) or physical (o ...
software
*
GitLab
GitLab Inc. is an open-core company that operates GitLab, a DevOps software package which can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmitriy Zaporozhets and Dutch developer ...
*
GForge Advanced Server
Free online services
*
Joinup collaboration platform
Joinup is a collaboration platform created by the European Commission. It is funded by the European Union via its
Interoperability Solutions for Public Administrations Programme (ISA Programme).
Joinup was launched on 9 December 2011. It replac ...
*
Launchpad
A launch pad is an above-ground platform from which rocket- missiles or space launch vehicles take off vertically.
Launch pad may also refer to:
Computing
* Launchpad (macOS), an application launcher introduced in Mac OS X Lion
* Launch Pad (s ...
*
OSDN
OSDN (formerly SourceForge.JP) is a web-based collaborative development environment for open-source software projects. It provides source code repositories and web hosting services. With features similar to SourceForge, it acts as a centralized ...
(Open Source Development Network)
*
SourceForge
SourceForge is a web service that offers software consumers a centralized online location to control and manage open-source software projects and research business software. It provides source code repository hosting, bug tracking, mirrorin ...
*
GNU Savannah
GNU Savannah is a project of the Free Software Foundation initiated by Loïc Dachary, which serves as a collaborative software development management system for free Software projects. Savannah currently offers CVS, GNU arch, Subversion, Git, ...
sourcehut(while in alpha)
Freemium online services
*
GitLab
GitLab Inc. is an open-core company that operates GitLab, a DevOps software package which can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmitriy Zaporozhets and Dutch developer ...
*
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, continuous ...
*
Bitbucket
Bitbucket is a Git-based source code repository hosting service owned by Atlassian. Bitbucket offers both commercial plans and free accounts with an unlimited number of private repositories.
Services Bitbucket Cloud
Bitbucket Cloud (previ ...
Discontinued software
*
Savane (software)
Savane is a free web-based software hosting system. It includes issue tracking (bugs, tasks, support, news and documentation), project member management by roles and individual account maintenance.
History
The GNU Project's GNU Savannah w ...
*
GForge
GForge is a commercial service originally based on the Alexandria software behind SourceForge, a web-based project management and collaboration system which was licensed under the GPL. Open source versions of the GForge code were released from 2 ...
Community Edition (last release April 23, 2010), not to be confused with the proprietary
GForge
GForge is a commercial service originally based on the Alexandria software behind SourceForge, a web-based project management and collaboration system which was licensed under the GPL. Open source versions of the GForge code were released from 2 ...
first released October 1, 2018.
Discontinued online services
*
BerliOS (It was disbanded in 2014, some projects have been moved to
Joinup collaboration platform
Joinup is a collaboration platform created by the European Commission. It is funded by the European Union via its
Interoperability Solutions for Public Administrations Programme (ISA Programme).
Joinup was launched on 9 December 2011. It replac ...
.)
*
CodePlex
CodePlex was a forge website by Microsoft. While it was active, it allowed shared development of open-source software.
Its features included wiki pages, source control based on Mercurial, TFVC, Subversion or Git, discussion forums, issue trac ...
(Shut down on December 15, 2017)
*
Gitorious
Gitorious was a free and open source web application for hosting collaborative free and open-source software development projects using Git revision control. Although it was freely available to be downloaded and installed, it was written primar ...
(deprecated, superseded by GitLab)
*
Gna.org
*
Google Code
Google Developers (previously Google Code) , application programming interfaces (APIs), and technical resources. The site contains documentation on using Google developer tools and APIs—including discussion groups and blogs for developers usin ...
*
Open Source Assistive Technology Software (OATS)
* Project Kenai (created by
Sun Microsystems
Sun Microsystems, Inc. (Sun for short) was an American technology company that sold computers, computer components, software, and information technology services and created the Java programming language, the Solaris operating system, ZFS, the ...
but shut down by Oracle)
* Tigris.org (Shut down on July 1, 2020)
See also
*
Collaborative development environment
A collaborative development environment (CDE) is an online meeting space where a software development project's stakeholders can work together, no matter what time zone or region they are in, to discuss, document, and produce project deliverables. ...
(CDE)
*
Project management software
Project management software (PMS) has the capacity to help plan, organize, and manage resource tools and develop resource estimates. Depending on the sophistication of the software, it can manage estimation and planning, scheduling, cost control ...
(PMS)
*
Software project management
Software project management is an art and science of planning and leading software projects. It is a sub-discipline of project management in which software projects are planned, implemented, monitored and controlled.
History
In the 1970s and 1 ...
*
Comparison of source-code-hosting facilities
A source-code-hosting facility (also known as forge) is a file archive and web hosting facility for source code of software, documentation, web pages, and other works, accessible either publicly or privately. They are often used by open-source ...
*
List of free software project directories
The following is a list of notable websites that list free software projects. These directories and repositories of free software differ from software hosting facilities (or software forges) in the number of features they offer and the type of col ...
*
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 testing, so ...
(ALM)
References
Project hosting websites
{{programming-software-stub