index.md 3.9 KB

ForgeFed is an upcoming federation protocol for enabling interoperability between version control services. It's built as an extension to the ActivityPub protocol, allowing users of any ForgeFed-compliant service to interact with the repositories hosted on other instances.

The goal of the project is to support all of the major activities connected to project management, including bug reports, merge requests, and notifications across instances.

This website serves as the authoritative source for finding up to date information about the project.

Why ForgeFed?

The current state of code collaboration is dominated by centralized, proprietary platforms. Free alternatives to these platforms exist (for example NotABug and Pagure) but they do not solve the problem of centralization.

This project tries to address exactly this problem. Our wish is to devise a free and standardized mechanism for enabling collaboration across any version control platform.

Project status

The best way to keep track of our progress is to follow us on the Fediverse. Our roadmap is here.

We publish specification drafts, implement them in our reference implementation, and publish demos that demonstrate ForgeFed federation features. Demos we've published:

  1. Ticket comment federation demo, May 2019
  2. Federated opening of new tickets, July 2019
  3. Push activities and repo following, October 2019

As of February 10, 2020: we're working towards finishing and announcing Draft 1. Vervis, the reference implementation, already supports federation of:

  • Repository following
  • Repository push notifications to followers
  • New issue creation
  • Issue commenting

What remains to implement (federate) for the draft:

  • The Create flow of issue creation
  • Sending a patch / merge request

We hope to start getting NLNet funding, and to implement ForgeFed in an existing forge, Pagure.

Work group

Community and development discussions are conducted on the ForgeFed Forum, with informal, real-time collaboration often taking place on the #peers IRC channel on freenode. In order to be most widely adopted, we strive to assemble the most diverse and representative group including: users, implementers, and various domain experts. Anyone who is experienced with working on existing forges or federated "social" services, and anyone with experience in writing technical specification documents is encouraged to join the working group.

Implementations

  • Vervis is the reference implementation of ForgeFed. It serves as a demo platform for testing the protocol and trying new features
  • mcfi is another command line implementation for testing the protocol

Project links