Lecture
Amid the rapid advance of digital technologies and the rise of distributed development teams, platforms that enable effective collaboration on software are becoming increasingly important. One such platform is Forge — a name that covers several solutions, ranging from Git hosting to cloud APIs for visualising engineering data. This paper examines the key implementations of Forge, including Forgejo as an alternative to GitHub, and Autodesk Forge as a tool for integrating and visualising CAD/BIM data. The aim is to determine which of these solutions are best suited to particular development scenarios, and how they can be integrated into existing workflows.
In free and open-source software (FOSS) developer communities, a forge is a web platform for collaborative software development, intended for building and sharing computer applications.
For software developers, it is an online service providing access to the tools needed to work and communicate with colleagues. It provides a workflow for submitting changes and taking part in discussions. The goal is to reach an agreement that allows those changes to be merged into the software repository.
For users, a forge is a repository of computer applications, a place to report bugs, a channel for receiving information about security issues, and so on.
The source code is stored in a version control system and linked to a wide range of services such as code review, a bug database, continuous integration, and so on. When a developer community forks, it duplicates the contents of the forge and can modify it without permission. A community may rely on services spread across several forges: they are not necessarily hosted on a single domain.
Screenshot of a git repository displayed by Gitea
The term «forge» refers to a common prefix or suffix adopted by various platforms modelled on SourceForge in 2001. This use of the word derives from the term «metal forge», referring to the shaping of metal parts.
As of 2023, the two most widely used collaborative development platforms do not market themselves as «forges». GitHub's tagline is «The complete developer platform to build, scale, and deliver secure software». GitLab's tagline is «The most comprehensive AI-powered DevSecOps platform». Although all the technical aspects of what constitutes a «forge» are the same for both, the term «forges» does not appear in their documentation or marketing materials.
In FOSS developer communities, however, and ever since the first SourceForge fork appeared in 2001, the term forge has remained in wide use to denote online collaborative software development platforms.
Some online services cannot be considered forges, even though they share some of a forge's core aspects. For example, a standalone code review service such as Gerrit is sometimes integrated into a forge that lacks a built-in code review feature, but it cannot be used to distribute software to end users.
Similarly, online services focused on project management or issue tracking, such as Trac, Redmine or OpenProject, do not give software developers a workflow for discussing proposed changes and merging the results into a repository. These services may include limited integration with various version control systems in order to display and reference the code they contain, but this in itself is more of a feature than a workflow available to a developer.
The term «forge» usually denotes two different types of concept:
All these platforms provide similar tools useful to software developers working on hosted projects:
Some of them also provide additional features:
In addition to the web user interface, a forge often provides a documented REST API (GitHub, GitLab, Gitea, etc.) to enable interoperability with other products. Forge users can also set up webhooks to notify a third-party online service of events in their software project (for example, a webhook can be triggered when a new issue is created).
Federation and the associated ActivityPub protocol (introduced in 2018) allow forges to exchange information about their activity (for example, when issues are created or a commit is pushed). Although support for built-in federation is sometimes discussed or under development, it is not yet available. To address this, third-party projects have appeared, such as a forge plugin or a proxy server that supports ActivityPub and converts it into REST API calls to a given forge.
There is no single sign-on (SSO) that applications and users could rely on to authenticate across all forges. Instead, forges typically support several authentication providers: if a user already has an account, they can use it to authenticate on the forge without creating a new one (for example, GitLab supports OAuth2 providers such as GitHub). Some forges can act as authentication providers themselves (for example, Gitea is an OAuth2 provider, as is GitLab).
To improve the experience of users and system administrators working with several online services, some forges are integrated with popular third-party software and services such as online chat (for example, Mattermost has a plugin for GitHub and built-in support for GitLab).
Forge is not merely a name but a whole spectrum of platforms, each solving unique problems in the field of collaborative development. Forgejo offers a lightweight, self-hosted and federated approach to source code management, particularly relevant for teams seeking independence from large commercial hosting providers. Autodesk Forge, meanwhile, opens up possibilities for visualising and automating engineering processes, making data accessible through cloud APIs. The choice of a specific platform depends on the project's goals, technical requirements and the team's organisational structure. Adopting Forge-based solutions can substantially improve the transparency, scalability and efficiency of development — especially in multidisciplinary and international projects.
Comments