Since @zeripath approved, I’ll amend @Gusted reply now instead of waiting for the 27th.
(TODO: add the amount of effort for these tasks, I roughly think ~40% implementing Gitea2Gitea and ~60% improving to smooth things out and have good compatibility with other federation software)
My intuition is that at least 60% of the effort is the implementation of Gitea2Gitea and 40% spread on the other tasks.
(TODO: talk about test-suite for ForgeFed, but feels a bit out-of-touch for Gitea as this is on protocol-level IMO, but we as trend-setters could and will help with this.)
As discussed during today’s meeting, this is a non-trivial topic. But it is enough to state that there will be work done to help set the conditions for cross forge testing, with the vervis docker image in particular.
We appreciate you reviewing our application, and the following is our response to your questions.
As you mention another project led by another prolific Gitea developer - Andrew Thornton - is already provisioned with a grant related to ActivityPub and Gitea (NLnet; Federated software forges with Gitea). You state they have not been able to “advance the workplan”. Their work wasn’t on go-ap but go-fed, which claims from its README to support ForgeFed already (but also seems to have lost some steam). Is Andrew aware of this proposal, and does he agree that the project should be offloaded to you? (I tried to get in touch with him, but did not get a hold of him so far)
This grant application was designed in public and both beneficiaries of the previous grant had every opportunity to see and comment on it. In addition, Andrew also explicitly approves the submission of this grant.
You noticed that go-ap is used as a basis for this grant instead of go-fed. The decision is mostly a consequence of go-fed being unmaintained but also because of technical reasons. There has been public discussions within Gitea, led by the authors of this grant, that concluded around May 2022 that go-ap was the right choice. In other words, go-ap is now unanimously agreed on to be the library of choice for the implementation of ActivityPub within Gitea.
[ Note that two grants to work on the same thing in the same project would be a bit of a problem to justify at our end, but that other project would time out next month when the fund it is attached to ends - so of we don’t move too fast there it should be possible to avoid a collision ]
There is no time pressure and waiting for the previous grant to time out would be fine to avoid collision.
You requested 50000 euro. Can you provide some more detail on how you arrived at this amount? Could you provide a breakdown of the main tasks, and the associated effort? What rates did you use?
All beneficiaries (Anthony, Gusted, 6543 and Loïc) work at a €60/h rate. We have asked for €50,000 to ensure there will be enough funding to work on the following tasks. Note that they are very similar to the previous grant because only a fraction of it was implemented.
- Add support for ActivityPub and ForgeFed extension with the help of the go-ap library (60% of the time)
- Contribution to the go-ap library (15% of the time)
- Implement a testing infrastructure to verify the conformance with the specifications (10% of the time)
- Collaborate with ForgeFed to build the appropriate terminology and data models (5% of the time).
- Improving situation for federation with other forges (via ForgeFed) (5% of the time).
- Organize a monthly videoconference, which will be held in public and recorded to discuss progress (5% of the time).
A detailed workplan will be provided with a breakdown of each task, with the corresponding milestones. It will be based on the workplan of the previous grant (attached to this mail).
2022-gitea-nlnet-workplan.ods (14.7 KB)
How will you ensure the proposed Gitea implementation plays well with other federating forges? Are validation/test suites available or planned for?
Will this work also help other forge softwares, besides Gitea, to federate or use ActivityPub?
The focus will be primarily to ensure Gitea instances can communicate with each other, which is in itself a difficult task. We also intend to test against Vervis, which has already implemented ForgeFed and is maintained by a ForgeFed member. There may be opportunities to test against more software forges such as pagure, should their development resume.
As previously stated, Gitea will implement ActivityPub and ForgeFed, with the purpose of federating with other federated software that also implements these protocols. We will publish our use of Federation to assist other applications in understanding how to interface with Gitea through the protocol.
Anthony, Gusted, 6543 and Loïc