NLnet grant application for federation in Gitea (deadline August 1st, 2022)

Thanks for the vote of confidence :heart:

1 Like

To: entrust2022@forgefriends.org
Subject: Forwarding address for all NGI Entrust communications

Hi,

entrust2022@forgefriends.org is meant to be used to increase the bus factor in the NGI Entrust grant application[0]. It is forwarded to to @dachary, @6543, @gusted, @Dodecahedron

Cheers

[0] NLnet grant application for federation in Gitea (deadline August 1st, 2022)


Loïc Dachary, Artisan Logiciel Libre

1 Like

Made a last proofread pass on the grant application. It is ready to be sent.

Submitted today, recorded with Code: 2022-08-067

application.html (7.9 KB)

1 Like

Subject: Acknowledgement of your proposal Federated software forges with Gitea

Dear Anthony, Loic et al,

this mail serves to acknowledge receipt of your joint grant application “Federated software forges with Gitea” (2022-08-067). Some of you have been through this before, so they know the project will be carefully reviewed for eligibility in two rounds following the criteria set out here:

https://nlnet.nl/entrust/eligibility

We expect the first round to take about five weeks, but given natural variation in the amount of projects and their complexity it may take longer or shorter. When the first round of review is done, we will inform you whether or not your project will be selected to enter the second round of the August 2022 call. Meanwhile, keep up the good work - and why not check out some of the wonderful projects already funded by NLnet Foundation:

https://nlnet.nl/project/current.html

Or have a look at how you can help out with reducing the impact of software patents on the FOSS ecosystem:

https://nlnet.nl/help

Kind regards,
on behalf of NLnet foundation,

[redacted]
Strategy Director
[redacted]


Support NLnet, the open internet and open source with just 5 minutes
of your time. Make a difference today.

Subject: Questions Federated software forges with Gitea

Dear Anthony,

you applied to the 2022-08 open call from NLnet. We have some questions regarding your project proposal Federated software forges with Gitea.

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?

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)

[ 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 ]

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?

Thank you very much for your swift reply.

Kind regards,
on behalf of NLnet foundation,

[redacted]
Strategy Director
[redacted]

Regarding the previous proposal.

Their concern might be that this will be a deja vu of the previous proposal(applying, but not using the funds), it should be easy to show that this won’t be the case, given there’s already a draft PR for actually functioning federation for Gitea and Dachary that can step up and modify beneficiaries if any of us falls out.

I’m not sure, but I don’t think we ever got in touch with Andrew or Tech regarding this new proposal.


Will this work also help other forge softwares, besides Gitea, to federate or use ActivityPub?

As for this we can reference we will be using ActivityPub standard where possible and ForgeFed strictly for the forge side, such that issues and pull-requests can be federated with other service (like Mastodon, even though we might need a compatibility layer, due to threads vs list). (Kind of possible already)

For forges that eventually will implement federation (via ForgeFed, currently Vervis) they will be able to interact with federated Gitea forges, even though this is not really documented currently, as Gitea2Gitea is hard enough. But it is our goal to not just have Gitea2Gitea and be as standardized as possible. (Really requires dedicated testing, nobody has tried this so far with other forge software, this really needs more thoughts).


How will you ensure the proposed Gitea implementation plays well with other federating forges?

Re-iterating on the previous question, be standardized as possible have integration with other forge software. Hard to automatically test this… For now we can work with forges that will or have ForgeFed capabilities manually. Later on we could create a test-suite (outside of Gitea).


Are validation/test suites available or planned for?

I’m not sure how we would do this, it is easy to test Gitea2Gitea and have more tests available for go-ap(in their repositories), but federation with other software(such as Mastodon and forges) is something I haven’t thought of and doesn’t seem to be trivial to do so.


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?

@dachary I think you can help with responding to this question?

Indeed and hopefully the differences you mentioned (ongoing work, different people and past involvement) will be convincing enough to motivate them to give it another shot.

I’ve tried multiple times to get in touch with both since the proposal was submitted but did not get any reply. Both have been notified as soon as the proposal was drafted but did not comment. 6543 met @zeripath earlier this month and maybe they discussed it? It’s worth asking in any case and maybe you and @Dodecahedron will have better luck than I did.

This is a very good point. Back when the previous grant application was drafted, vervis was not actively developed. But that changed since and the work of @fr33domlover creates new opportunities for Gitea to interact with Vervis. In addition there is support for ActivityPub / ForgeFed in pagure, via a plugin.

Ideally it would be possible to rely on a testsuite maintained by ActivityPub and/or ForgeFed, but those are unmaintained. I think the question is related to the deprecated https://test.activitypub.rocks/ linked in the specs. Reviving this would be a significant undertaking though.

It is worth mentioning that @fr33domlover intends to contribute in this area as he explained in the chatroom.

We’ve not discussed hourly rate just yet but now is a good time. I think (but it’s a matter of personal opinion) that 60€/hour is fair and could be applied to everyone involved. That was the rate agreed on by @zeripath an @techknowlogick for the previous proposal. This rate translates into 30€/hour on my bank account, in France, after all taxes (unemployment, retirement, health insurance, etc.) are payed (I’m a strong believer in paying taxes, even in a context where government does not use them as wisely as they should).

The breakdown of each tasks will have an associated amount which, divided by the hourly rate, should translate into something that is reasonable (not too much, not too little) to complete the task.

If that’s ok with you @Gusted @Dodecahedron @6543, I will draft a reply for you to review and comment on. For now all that is required from you is to answer the following:

  • Does a 60€/h hourly rate for your work seem fair? If not, what would be your hourly rate?

For the record, regarding the 60€/h rate:

For the record I wrote:

6543
can I book Dockerimage creation for vervis too?

I’ll write that down in the task list, yes.

This is blocked until there is an explicit confirmation from @zeripath. It is important to get clarity.

In the event we get an explicit confirmation, this is a draft response.


Dear [redacted],

We appreciate you reviewing our application, and the following is our response to your questions.

We are anticipating working with three people on this and are requesting a €60/h rate. We have asked for €50,000 to ensure there will be enough funding to work on the following tasks:

  • Implementing ActivityPub + ForgeFed extension with the help of the go-ap library, to support federation between Gitea forges.
  • Improving situation for federation with other forges(via ForgeFed) and mainstream federation software(ActivityPub, e.g. Mastodon).
  • A monthly videoconference, which will be held in public and recorded to discuss the monthly progress.
  • Implement testing infrastructure to guarantee compatibility with other federation software.
  • Collaborate with ForgeFed to build the appropriate terminology and data models.

These tasks will be the outcome of the requested funding.

(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)

Efforts have been made to contact Andrew about this new proposal, but currently we have also been unable to inform him about this. However, as you indicated, the prior project has halted, and this is a revival proposal with new (motivated) participants. To avoid a Déjà vu, Loïc is included as participant, he will be able to add beneficiaries, if other persons are motivated enough to take over these tasks. We understand that we need to wait for the prior grant to expire before advancing with this application.

It will be a difficult effort to implement Gitea2Gitea, so we must focus on testing to ensure its compatibility with itself. We also intend to test against Vervis, which has already implemented ForgeFed and is maintained by a ForgeFed member. Other than keeping things as standardized (by collaborating with ForgeFed) as possible, no other big forge has adopted federation, therefore there isn’t much effort to be made here.

(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 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.

Kind regards,
Anthony, Loïc, 6543 and Gusted

2 Likes

@Dodecahedron would you please explicitly state in this topic whether a 60€/h rate is ok with you? Just so it is written down somewhere for posterity.

Yes, a 60€/h is fine with me.

1 Like

For the record, from the forgefriends chatroom:

@dachary zeripath is ok, just afk until monday (or earlyer, if he cant keep his fingers away from pc :wink: )

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.


Dear [redacted],

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. Andrew has not been responsive on this topic since January 2022 and we can only assume he has no objection that the work is offloaded to us.

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.

Kind regards,

Anthony, Gusted, 6543 and Loïc

2 Likes

For the record @6543 agrees with the reply.

@Dodecahedron and @Gusted also agree with a +1 on the question in the chat.

Asked @6543 for confirmation about this in the chat.

I’ve seen in the past how careful you are with these matters and I would be comfortable sending the reply to NLnet even if there are no publicly available traces of this from Andrew himself. But it is ultimately for you to decide. What do you think?

It appears that I misremembered, my bad. I propose to replace:

In addition, Andrew also explicitly approves the submission of this grant.

with:

Andrew has not been responsive on this topic since January 2022 and we can only assume he has no objection that the work is offloaded to us.

Mail received today from NLnet.


Subject: Re: Questions Federated software forges with Gitea

Hi Anthony et al,

did you get our message below? We can also push the grant application to
the next call, if you prefer that - this would give you some extra time
to answer?

Kind regards,

Heya @dachary,

Yeah feel free to offload this work. Unfortunately due to my PhD, Security issues and other work in Gitea I’ve not been able to dedicate time to getting this work started - I’m deeply ashamed of this and quite frustrated that I haven’t been able to get this started.

I am concerned however, that ActivityPub isn’t going to be the correct way to get this going and also within Gitea itself we need a significant amount of antispam work to be done before this goes.

I’d be happy to talk technically about this