Forge federation: monthly report March 2022

March 20, 2022

Most of the work done in the past month revolved around writing software. In part within the new Friendly Forge Format project but also as contributions to the main branch of the Gitea codebase.


Gitea incremental import/export

The ability to store the foreign ID of issues during migration in the database was merged in Gitea after seven weeks of discussions. It is not an uncommon delay for changes that involve adding a new table to the database. It is generic enough to be used for comments, pull requests etc. as explained in detail in the description of the pull request. The migration format for comments was also modified to contain an identifier of the migrated comment so that future migrations can figure out which comments are new. The rather complex function handling the migration of pull requests was isolated and tested.

ActivityPub support in Gitea

A sentient dodecahedron joined forgefriends, started by creating tasks in the community list and proposed a pull request to add go-fed in Gitea. It is an unusually large dependency and it is expected that it will be discussed.

Friendly Forge Format

Aravinth Mannivanan’s contribution to the documentation and validation of the Gitea migration format is stalled because of another pull request. It looks like the work on the Gitea internal format will go slower than anticipated. Instead of waiting for it to happen, a new project was launched: the Friendly Forge Format. It provides:

  • Format specifications with JSON Schema, with validation and documentation
  • A reference implementation to convert from and to various forges

It is an ambitious undertaking but it starts with a codebase extracted from Gitea and will build on it. Once it is functional, it will be contributed to Gitea in order to replace the current migration code. The documentation part is being worked on as part of the python reference implementation.

Gitea code walkthrough

One additional Gitea code walkthrough was published to clarify the codebase that is reused or modified by the forgefriends project.



To reduce the cost of keeping backups in the cloud for an extended period of time, offline backups were installed and are now in service.

New libvirt hypervisor

A new libvirt hypervisor was bought (i7, 1TB nvme, 64GB RAM) and installed with It may be used to host Gitea forge instances with federation enabled in the future.


The project was found to make efforts similar to forgefriends to overcome the language barrier by having facilitators available for translation during meetings.



Two new contributors stepped in to help with forgefriends. Raphaël Laguerre will look into the system administration aspects specific to Gitea. Nathanaël Cretin chose to contribute to the Friendly Forge Format.

Until a few weeks ago the forum section was hosted on the forgefriends forum. The project now has its very own forum which also hosts projects that have a larger scope than forgefriends such as Social Coding FSDL. There were discussions, in the chat room, about expanding the scope of the forgefriends community with the idea that it broader than the current definition but no consensus was reached. A project to encompass forgefriends and ForgeFlux may be created in the future.

Chapril forge and Codeberg

There has been recurring discussions regarding privacy expectations in private repositories hosted on public forges. It is part of a larger topic that matters with federation: content moderation. The conclusion that was reached is that private repositories should not be moderated: it does more harm than good.

Loïc Dachary no longer has time to participate in the maintenance of Chapril and was offboarded.

Transparency and funding

The grant earmarked for diversity ran out of time. Only 600€ out of 5,000€ was spent.

The libvirt hypervisor was paid for by Loïc Dachary for 1569.51€ as a donation to the forgefriends project.

Details on transparency and funding are available in the forum.