Forge (software)

Web-based collaborative software platform for developing and sharing computer applications

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Forge" software – news · newspapers · books · scholar · JSTOR (August 2015) (Learn how and when to remove this message)

|

A screenshot of a git repository displayed by Gitea

In free and open-source software (FOSS) development communities, a forge is a web-based collaborative software platform for both developing and sharing computer applications.

For software developers 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

[edit]

The term forge refers to a common prefix or suffix adopted by various platforms created after the example of SourceForge in 2001.[1] 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[2] is "The complete developer platform to build, scale, and deliver secure software". The GitLab tagline[3] 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 platforms.

## Similar online services for developers

[edit]

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 sometimes 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

[edit]

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

[edit]

### API and webhooks

[edit]

In addition to the web user interface, it is common for a forge to provide a REST API with a documentation (GitHub,[4] GitLab,[5] Gitea,[6] 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[7]).

### Federation

[edit]

Federation and the associated protocol ActivityPub (introduced in 2018) allows forges to communicate with each other about their activities (for instance when issues are created[8] or a commit is pushed[9]). Although native federation support is sometime discussed[10] or in progress[11] it is not yet available. Third party projects emerged to bridge the gap such as a plugin for the pagure forge[12] or a proxy supporting ActivityPub and translating it to REST API calls to the designated forge.[13]

### Authentication

[edit]

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[14]). Some forges can act as an authentication provider (for instance Gitea is an OAuth2 provider[15] as well as GitLab[16]).

### Integration

[edit]

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[17] and is natively support by GitLab[18]).

## Examples

[edit]

### Free software

[edit]

* Allura
* Forgejo[19]
* FusionForge
* Gitea
* GitBucket [Wikidata] (GitHub compatible)[20]
* Kallithea
* Launchpad Suite[21]
* SourceHut [Wikidata][22]
* Tangled[23]
* Tuleap
* Phorge (Phabricator fork/continuation)[24]
* Gogs[25]

### Open-core software

[edit]

* GitLab (Community Edition and Enterprise Edition)

### Freemium software

[edit]

* GForge Advanced Server

### Free online services

[edit]

* Codeberg
* OSDN (Open Source Development Network)
* SourceForge
* GNU Savannah

### Freemium online services

[edit]

* GitLab[26]
* GitHub[27]
* Bitbucket[28]
* SourceHut[22]

### Discontinued software

[edit]

* Phabricator[29]
* 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

[edit]

* 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[30]
* 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)[31]

## See also

[edit]

* 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

[edit]

1. ^ Maguire, James (October 17, 2007). "The SourceForge Story". Archived from the original on July 16, 2011. Retrieved April 12, 2012.
2. ^ "Build software better, together". GitHub. Retrieved 2023-11-22.
3. ^ "The DevSecOps Platform". about.gitlab.com. Retrieved 2023-11-22.
4. ^ "GitHub REST API". Retrieved 31 August 2021.
5. ^ "GitLab REST API". Retrieved 31 August 2021.
6. ^ "Gitea REST API". Retrieved 31 August 2021.
7. ^ "Gitea webhook". Retrieved 31 August 2021.
8. ^ "forgefed issue". Retrieved 31 August 2021.
9. ^ "forgefed commit". Retrieved 31 August 2021.
10. ^ "Federated GitLab". Retrieved 31 August 2021.
11. ^ "Gitea federation theme". GitHub. Retrieved 31 August 2021.
12. ^ "Forgefed pagure plugin". Retrieved 31 August 2021.
13. ^ "Fedeproxy forge federation". Retrieved 31 August 2021.
14. ^ "GitLab sign-in with GitHub". Retrieved 31 August 2021.
15. ^ "Gitea OAuth2 provider". Retrieved 31 August 2021.
16. ^ "GitLab OAuth2 provider". Retrieved 31 August 2021.
17. ^ "GitHub Mattermost Plugin". GitHub. Retrieved 31 August 2021.
18. ^ "GitLab Mattermost". Retrieved 31 August 2021.
19. ^ "Forgejo - Beyond coding. We forge". Forgejo. 2022-12-15.
20. ^ "GitBucket". gitbucket.github.io. Retrieved 2025-04-12.
21. ^ "Launchpad Suite in Launchpad". launchpad.net. 21 December 2004.
22. ^ a b "sourcehut - the hacker's forge". sourcehut.org. 2021-03-31.
23. ^ "Tangled". tangled.sh. Retrieved 2025-04-13.
24. ^ "Welcome in Phorge". phorge.it. 2025-01-18. Retrieved 2025-02-01.
25. ^ "Gogs". gogs.io. Retrieved 2025-04-17.
26. ^ "GitLab Pricing". GitLab.
27. ^ "Pricing · Plans for every developer". GitHub.
28. ^ "Bitbucket Pricing". Atlassian.
29. ^ "Phacility is Winding Down Operations".
30. ^ "The end of Gna?". 2016-11-20. Archived from the original on 2017-05-05. Retrieved 2017-09-13.
31. ^ "Tigris.org: Shut down on 1-July-2020". Archived from the original on 2020-06-30. Retrieved 2022-03-02.

This programming-tool-related article is a stub. You can help Wikipedia by expanding it.

|

* v
* t
* e

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template