ForgeFlux NLnet (August 1, 2023)

Hi,

I’m applying for the NLnet August 2023 deadline with ForgeFlux. Here’s my grant proposal:

This was a last minute proposal so I understand that it’s too late to request a proofread (suggestions welcome!), So I’m posting here in the interst of transparancy :slight_smile:

1 Like

I missed it completely. That was indeed a little short. Good luck!

[ForgeFlux] NLnet NGI0 August 1, 2023

Your name (max. 100 characters)

Aravinth Manivannan

Email address

realaravinth@batsense.net

Country

India

Project name (max. 100 characters)

ForgeFlux

Website

https://forgeflux.org

Abstract: Can you explain the whole project and its expected outcome(s). (max: 1200 characters)

Federation in Gitea is underway but Gitea is but one forge software. Most projects are concentrated either on GitHub, or the main GitLab instance. While federation in Gitea is useful, popular forge instances like github.com and gitlab.com will be unreachable from the federated forge network.

ForgeFlux aims to implement federation external to the forge software, by way of the forge’s HTTP APIs. With ForgeFlux’s adapter, federation can be implemented for any forge software (GitHub, GitLab, SourceHut, etc.) or a combination of softwares that represent a forge ecosystem (cgit+mailman+jira, Gitea+Vijunja).

ForgeFlux aims to reach the majority of developers who are behind walled gardens. It will give them an easy way to interact with the larger, free software forge network while also providing an easy way to migrate away. In essense, it gives developers on GitHub access to the federated forge network and developers on other forge implementations access to the vast developer tools ecosystem built around GitHub.

Have you been involved with projects or organisations relevant to this project before? And if so, can you tell us a bit about your contributions?

I have ported an older version of forgefriends’ F3 file format. I have been involved in a managerial capacity in the ForgeFed project and I am also part of the Gitea federation grant.

I have been working on the ForgeFlux project for the past 1.5 years. We built Starchart (https://starchart.forgeflux.org), a search engine for the federated forge network to improve project visibility for non-GitHub software forges.

We also have a partially complete federation adapter that implements webfinger and profile discovery for GitHub and Gitea/Forgejo profiles.

Requested Amount

38,400

Explain what the requested budget will be used for?
Does the project have other funding sources, both past and present?

The budget will be used to pay the my salary at €20/h

Compare your own project with existing or historical efforts.

Gitea is implementing federation natively, it will enable all Gitea instances to federate.

Forgefriends is implementing a federation proxy, similar to ForgeFlux. They are implementing proxy capabilities on a fork of Forgejo. Enabling federation on a different software forge using their approach will require forgefriends developers to become familiar with the software forge’s codebase and make modifications to it. ForgeFlux takes a more versatile approach: it only requires familiarity with the forge implementation’s HTTP API.

What are significant technical challenges you expect to solve during the project, if any?)

Authentication and authorization: ForgeFlux will be controlling a service actor (bot account) on the forge it is adding federation capabilities. Creating new accounts or temporary new accounts to represent federating users or repositories is not an option. So we have to figure out ways to represent activities of multiple federating actors through the same service actor, while also guarding access to protected resources.

User interface: Since temporary views to represent federating users isn’t possible, we shall have to resort to replicating repositories on the native forge and adding textual clues to comments and other activities to indicate authorship.

Rate limiting: GitHub and GitLab have rate limits. Representing an entire network through one service actor will run us into rate limits.

Moderation: ForgeFlux can be abused to spam forge instances. Since current software forge implementations do not have federated moderation tools, a ban on a ForgeFlux service actor could cut off the entire forge network of the banning forge instance. More fine-grained moderation tools must be implemented within ForgeFlux and users must be empowered to use them before blocking and reporting ForgeFlux service actors.

Describe the ecosystem of the project, and how you will engage with relevant actors and promote the outcomes?

We will first build against Forgejo (forgejo.org), since they are a strong supporter of forge federation. We shall be using forgefriends’ F3 (f3.forgefriends.org) under the hood.

In addition we will consider a strong integration with the ForgeFed specification. There are challenges to integrate with ForgeFlux, but also opportunities to improve ForgeFed based on our uses cases and feedback.

We’ll work closely with the Social Coding Movement (https://coding.social) to improve the development workflows offered by ForgeFlux.

We shall also work with the Solidground project (https://solidground.work) to integrate with their platform and grant access to the development tooling that come with it. Solidground just passed a R&I phase and will be an early adopter of WebAssembly-on-the-server to facilitate the polyglot plugin mechanism and hexagonal architecture of their Groundwork integration platform and found the existing project of wasmCloud (https://wasmcloud.com/) to build on top of.

1 Like

Cleared first round, received email a few minutes ago :tada:

Dear Aravinth,


due to a record breaking amount of submissions it has taken us much longer than expected but it is my pleasure to inform you that your project "ForgeFlux" (202<redacted>) has been selected to enter the second round of the August 2023 call. While the first round is solely based on your proposal, this strict selection round is potentially interactive. As your project is looked into in more depth, the reviewers may need some additional information to properly assess your application, in which case they will contact you.

Note that proposals are reviewed with regards to urgency, relevance and value for money. Unfortunately we will not be able to fund all projects proposed, as much as we would like that. For the next three weeks we will be therefore be thoroughly evaluating the remaining proposals for the second round, during which we may ask you to supply additional details. After that we will inform you on the outcome of this second (and final) selection round.

If you meanwhile have any questions, please let us know.

Kind regards,
on behalf of NLnet foundation,
1 Like