Forge federation: monthly report September 2022

September 22, 2022

The Friendly Forge Format (F3) was refactored entirely and submitted for inclusion in Gitea. Followups of grant applications for both F3 and Gitea were published.

Development

Friendly Forge Format (F3)

The Go reference implementation was refactored. The library implements the high level logic (for instance for mirroring) while drivers deal with the concrete storage of data. For instance the Gitea driver is based on the Gitea API and the F3 driver stores information in files.

The F3 documentation now contains a description of the layout of the file hierarchy in addition to the JSON Schema.

A F3 driver for inclusion in Gitea was developed. It is not based on the Gitea API, it is designed to use the internals of Gitea instead. It was proposed as an optional addition to the Gitea codebase to support the F3 format as an alternative to the existing import/export.

Development strategy

It has been 18 months since forgefriends started, with a Python code base. A year ago the decision was made to move to Go instead and start from scratch, primarily to take advantage of the existing Gitea codebase. Although a Python forge exists (https://pagure.org), it is not actively maintained. Go is also better because it can be used as a library to implement Python or Ruby packages, which would help with the inclusion of forgefriends within existing forges. A year later it is still seems to be the right decision, despite the time it took for the people involved to learn Go and re-implement what already existed in the Python codebase.

A detailed topic was published in the forum to layout the consequences and future directions of this strategy.

Collaboration

Live coding

Some work was done to advance the federation within Gitea during a live coding session.

Online Coworking

The format of the online coworking sessions is now about two hours and used primarily to discuss and share ideas around forge federation. They happen every other week and are recorded. During one of them the main topic was the documentation of the F3 format. Another was focused on replying to followup questions regarding the NLnet funding proposal.

forgefed

There has been a lot of activity and a number of improvements to the specifications, either being discussed or already merged (last update is September 16th). Of particular interest is the rework of the Modeling & Behavior: Describe Join->Accept->Grant flow.

Gna!

Gna! (formerly Hostea) will deploy GitLab as well as Gitea which makes it an even more interesting experimental ground for forge federation.

Transparency and funding

F3 passed the first round of NGI Assure and received followup questions that were discussed and answered during an online coworking session.

F3 received followup questions to the OTF grant application and a reply was sent. It is still at the stage of a concept note and awaiting a “determination” that will decide if it is worth going further and submit a full fledged proposal.

Gitea passed the first round of NGI Entrust and received followup questions that are being worked on. Approval from zeripath is expected before this grant application moves forward.