Forge (software)

Last updated

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

Contents

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

History

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

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:

All these platforms provide similar tools helpful to software developers working in the hosted projects:

Some provide other features as well:

Interoperability

API and webhooks

In addition to the web user interface, it is common for a forge to provide a REST API with the 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

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

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

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

Free software

Freemium software

Free online services

Freemium online services

Discontinued software

Discontinued online services

See also

Related Research Articles

<span class="mw-page-title-main">Eclipse (software)</span> Software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. It is the second-most-popular IDE for Java development, and, until 2016, was the most popular. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

<span class="mw-page-title-main">Mantis Bug Tracker</span> Bug tracking system

Mantis Bug Tracker is a free and open source, web-based bug tracking system. The most common use of MantisBT is to track software defects. However, MantisBT is often configured by users to serve as a more generic issue tracking system and project management tool.

<span class="mw-page-title-main">GForge</span>

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 2002 to 2009, at which point the company behind GForge focused on their proprietary service offering which provides project hosting, version control, code reviews, ticketing, release management, continuous integration and messaging. The FusionForge project emerged in 2009 to pull together open-source development efforts from the variety of software forks which had sprung up.

A source-code-hosting facility 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 software projects and other multi-developer projects to maintain revision and version history, or version control. Many repositories provide a bug tracking system, and offer release management, mailing lists, and wiki-based project documentation. Software authors generally retain their copyright when software is posted to a code hosting facilities.

<span class="mw-page-title-main">Launchpad (website)</span>

Launchpad is a web application and website that allows users to develop and maintain software, particularly open-source software. It is developed and maintained by Canonical Ltd.

Google Developers is Google's site for software development tools and platforms, 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 using Google's developer products.

The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.

<span class="mw-page-title-main">GitHub</span> Hosting service for software projects

GitHub, Inc. is an AI-powered developer platform that allows developers to create, store, and manage their code. It uses Git software, providing the distributed version control of Git plus access control, bug tracking, software feature requests, task management, continuous integration, and wikis for every project. Headquartered in California, it has been a subsidiary of Microsoft since 2018.

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.

<span class="mw-page-title-main">OpenAM</span>

OpenAM is an open-source access management, entitlements and federation server platform. Now it is supported by Open Identity Platform Community.

YouTrack is a proprietary, commercial browser-based bug tracker, issue tracking system, and project management software developed by JetBrains. This software is designed to facilitate query-based issue search with auto-completion, manipulating issues in batches, customizing the set of issue attributes, and creating custom workflows.

<span class="mw-page-title-main">Jenkins (software)</span> Open source automation server

Jenkins is an open source automation server. It helps automate the parts of software development related to building, testing, and deploying, facilitating continuous integration, and continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase, and RTC, and can execute Apache Ant, Apache Maven, and sbt based projects as well as arbitrary shell scripts and Windows batch commands.

Security Assertion Markup Language (SAML) is a set of specifications that encompasses the XML-format for security tokens containing assertions to pass information about a user and protocols and profiles to implement authentication and authorization scenarios. This article has a focus on software and services in the category of identity management infrastructure, which enable building Web-SSO solutions using the SAML protocol in an interoperable fashion. Software and services that are only SAML-enabled do not go here.

<span class="mw-page-title-main">Accounts & SSO</span> Single sign-on framework for computers

Accounts & SSO, accounts-sso, or lately gSSO is a single sign-on framework for computers.

iDempiere Community Powered Enterprise. Full Open Source Business Suite

iDempiere. Community Powered Enterprise, also known as OSGi + ADempiere, is an open source Enterprise Resource Planning (ERP) software that is fully navigable on PCs, tablets and smartphones, it also has customer relationship management (CRM) and supply chain management (SCM) functions. It is in contrast to proprietary or most other open source ERP solutions driven only by a community of supporters.

<span class="mw-page-title-main">GitLab</span> Open-source Git software package

GitLab Inc. is an open-core company that operates GitLab, a DevOps software package that can develop, secure, and operate software. The open source software project was created by Ukrainian developer Dmytro Zaporozhets and Dutch developer Sytse Sijbrandij. In 2018, GitLab Inc. was considered to be the first partly-Ukrainian unicorn.

<span class="mw-page-title-main">Gitter</span> Open source messaging software

Gitter is an open-source instant messaging and chat room system for developers and users of GitLab and GitHub repositories. Gitter is provided as software-as-a-service, with a free option providing all basic features and the ability to create a single private chat room, and paid subscription options for individuals and organisations, which allows them to create arbitrary numbers of private chat rooms.

<span class="mw-page-title-main">Nextcloud</span> Free and open-source file hosting software suite

Nextcloud is a suite of client-server software for creating and using file hosting services. Nextcloud provides functionality similar to Dropbox, Office 365 or Google Drive when used with integrated office suites Collabora Online or OnlyOffice. It can be hosted in the cloud or on-premises. It is scalable, from home office software based on the low cost Raspberry Pi, all the way through to full sized data centers that support millions of users. Translations in 60 languages exist for web interface and client applications.

<span class="mw-page-title-main">Gitea</span> Free forge based on Git written in Go

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, continuous integration, kanban boards, tickets, and wikis. It supports self-hosting but also provides a free public first-party instance. It is a fork of Gogs and is written in Go. Gitea can be hosted on all platforms supported by Go including Linux, macOS, and Windows. The project is funded on Open Collective.

References

  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. "Launchpad Suite in Launchpad". launchpad.net.
  21. "sourcehut - the hacker's forge". 2021-03-31.
  22. "Product". GitLab.
  23. "GitLab Pricing". GitLab.
  24. "Pricing · Plans for every developer". GitHub.
  25. "Bitbucket Pricing". Atlassian.
  26. "Phacility is Winding Down Operations".
  27. "The end of Gna?". 2016-11-20. Archived from the original on 2017-05-05. Retrieved 2017-09-13.
  28. "Tigris.org: Shut down on 1-July-2020". Archived from the original on 2020-06-30. Retrieved 2022-03-02.