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

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

The following reply was sent today to NLnet. It is almost exactly what was approved eight days ago, only with a reference to @zeripath answer in this topic.


Subject: Re: Questions Federated software forges with Gitea
CC: entrust2022@forgefriends.org

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. In addition, Andrew Thornton also explicitly and publicly approves the project 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

https://forum.forgefriends.org/uploads/short-url/sTWDkxDeFacVisnM6GpQ8NaLga7.ods

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

Received the following answer.


Subject: Re: Questions Federated software forges with Gitea
To: entrust2022@forgefriends.org

Hi Loïc, Anthony, Gusted and 6543
thank you for the clear answers.

Happy to learn you are cooperating with the ForgeFed effort, it is important for such efforts to have a broader base.

Currently we have no further questions. We will continue the review, and should any additional information be needed we’ll get back to you.

Meanwhile, have a great week!

Best,

Thanks for your statement: it allowed the grant application to move forward. Regarding your concerns about ActivityPub I’m intrigued to discuss it more. Would you mind if we move this to a new topic before I comment?

2 Likes

That is a great discussion where I am happy to participate as well.

1 Like

Received today. As instructed I suggest we do not discuss it outside of this topic: this is one step forward, which is good news indeed. But this is not final and some administrative steps are required and it is entirely possible that there is a blocker.


Subject: Good news about your proposal to NLnet
From: nlnet

Dear Anthony, Loïc, “Gusted” and “6543”,

you applied to the first NGI0 Entrust open call from NLnet, round August 2022. We have kept you in suspense for a while, because this call was the single largest in our history in terms of proposals that needed to be processed. This is done, however, and currently a selection of the projects is pending the final stage review by an independent review committee to validate their eligibility, and we are happy to inform you that this includes your project “Federated software forges with Gitea” (2022-08-067). Should your project pass that final hurdle (which under normal circumstances it should, but please do not seek external publicity until it is officially confirmed), the selection will be made public and we will contact you in order to establish a Memorandum of Understanding. The final amount of the grant will be determined at that point.

We will then also need to share some information about the project both with the general audience and with the European Commission. In the interest of time, we ask you to prepare a one paragraph management summary of the project. For examples we refer you to NLnet; NGI Zero PET

We kindly request you to send us this summary as soon as possible.

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

Kind regards,
on behalf of NLnet foundation,


The following reply was sent October 12th, 2022 with text copy/pasted from the generic grant application:

From: loic@dachary.org
CC: Anthony Wang, Loïc Dachary, Gusted, 6543 entrust2022@forgefriends.org
Subject: Re: Good news about your proposal to NLnet

Hi [redacted],

Thanks for the good news :slight_smile: Here is the one paragraph management summary, just in case all goes well:

Gitea is a self hosted software forge where developers can work together on software projects and users can report bugs or request features. It is very popular with over 100 millions pulls on the Docker Hub. As of Gitea version 1.17, when a project is hosted on a Gitea instance, every developer is expected to create an account on that instance in order to participate. Compared to email, it is as if it was necessary to create an account on gmail.com to send a message to someone with an @gmail.com email address and another on yahoo.fr to send a message to someone with an @yahoo.fr email address. But in 2022 there are two: the W3C ActivityPub protocol published in 2017 and forgefed, an emerging standard (since 2019) to describe activities happening on software forges. They can be used by Gitea instances to communicate with each other and create a federation of forges continuously communicating with one another instead of a constellation of isolated silos. A federated Gitea will enable software developers to work on the same project even when they use different Gitea instances. There will be bridges between isolated Gitea instances that software projects can use to synchronize in real time.

We collectively keep our fingers crossed and hope there won’t be unexpected problems!

Cheers


From: nlnet
Subject: Re: Good news about your proposal to NLnet

Hi Loïc et al,

We collectively keep our fingers crossed and hope there won’t be unexpected problems!

same here.

Best,

1 Like

Here is a draft workplan to be prepared in case the grant is accepted.

The following resources were used:

And some tasks were added relative to moderation since it is an important topic that was somewhat overlooked when preparing the grant application.

The spreadsheet has twenty five items and a total grant amount (set to 50000 because that is the amount requested but there is no guarantee it will be the amount allocated):

  • First column: sequence number [1,25]
  • Second column: unique name of the task
  • Third column: three lines description of the task
  • Fourth column: milestones deliverables that are either merged pull requests, published documents or videoconference recordings (at most three)
  • Fifth column: percentage of the funding dedicated to the task. It is 2% so that all 50 items total 100%.
  • Sixth column: the payment that would be requested upon completion of the task, calculated using the total grant amount and the percentage allocated to the task.

From my experience things can get very confusing when tracking payments because the money received will not always be associated with the proper label (banks tend to truncate things or just trim). Since the amount paid is the only reliable way to track what was paid and when, the amount allocated to the task is augmented by a prime number so that factorizing them conveniently provides the list of tasks that were paid.

2 Likes

I added myself for the community management task of the tentative workplan for lack of a better alternative. But then I discovered that @onepict who is in the Matrix room has a community management background. So I asked her if she would consider doing this work instead of me and she is considering it.

She is busy right now but this can be discussed further after October 31st, unless someone objects to such a substitution.

I will of course still be available pro-bono to make sure the administrative part of the grant is taken care off, even if I don’t work on any paid task.

See the discussion.

What do you think?

Got mail today at 14:04 UTC+2

Subject: Good tidings from NLnet
To: entrust2022@forgefriends.org

Dear Anthony et al,

Congratulations! We have received the green light from the independent review committee. That means your project “Federated software forges with Gitea” (2022-08-067) is one of the selected proposals eligible to receive a grant from NLnet foundation in the August 2022 NGI0 Entrust call!

We should set up a call in order to undertake the necessary further steps - leading up to a Memorandum of Understanding that includes a concrete project plan with pertinent milestones. Note that the final amount of the grant will be determined in dialogue with you, also taking into account any new insights during the negotiations.

We at NLnet Foundation are very much looking forward to working with you, together with our partners in NGI0 Entrust - which we will tell you more about during our upcoming call. You will also find the key information in the attached document.

Can you please indicate some convenient dates in the coming weeks?

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

Kind regards,
on behalf of NLnet foundation,

[Redacted]

4 Likes

Replied the following today and scheduled a poll to find dates.

@gusted @6543 @Dodecahedron could you please fill the poll for dates of the kickoff with NLnet at Sondage - kickoff - Framadate ? It is a one hour videoconference call where we will layout the workplan (pretty much the discussion we had a few days ago). It does not yet need to be final at this stage. NLnet will also explain to us how things go and ask question if there are things they do not get in how we plan to approach the work.


To: NLnet
Subject: Re: Good tidings from NLnet

Hi [redacted],

Thanks a lot for these excellent news! We collectively drafted a workplan two days ago: we are prepared. I’ll get back to you shortly with three dates and time that are convenient for all of us.

Cheers

1 Like

Replied the following today. Unfortunately there are no dates / times where everyone is available. Since @Dodecahedron is the primary contact for the grant, the dates and times were sorted in order of priority according to his availability. Although it would be much better if everyone is present during the call, it will not be a blocker if someone cannot make it.


To: NLnet
Subject: Re: Good tidings from NLnet

Hi [redacted],

Here are possible dates / times for the call, in order of preference:

  • October 31st 6pm UTC+2
  • October 28th 6pm UTC+2
  • November 1st 6pm UTC+2
  • November 2nd 6pm UTC+2

Cheers


Update: October 29th, 2021

Hi [redacted],

A gentle ping. If the delays are too short we can plan for dates later in November. Just say the word and we will propose new time slots.

Cheers

1 Like

Received today on 6:25PM UTC+1

Subject: Intake call Federated software forges with Gitea

Hi Loïc, Anthony, Gusted, 6543,

Would (all or most of) you be available for a call on e.g. Friday 11th,
18:00 CET (UTC+1)? (or 17:00 if it works for you)

— [Redacted], NLnet

1 Like

For the record:

To: NLnet
Subject: Intake call Federated software forges with Gitea

Hi [redacted],

Friday 11th 17:00 UTC+1 works for Anthony, 6543 and myself. Gusted unfortunately cannot make it but, with your permission, we will record the call for his benefit and prepare any question he may have beforehand.

Cheers


From: NLNet
Subject: Intake call Federated software forges with Gitea

Hi Loïc,

Friday 11th 17:00 UTC+1 works for Anthony, 6543 and myself. Gusted unfortunately cannot make it but, with your permission, we will record the call for his benefit and prepare any question he may have beforehand.

recording such calls is not something we do, that gives a rather uncomfortable feeling to what is otherwise a very informal session. I hope you understand.
Gusted is actually also involved with another project, so he might be able to participate in that call… and it is really not that complex to begin with.

Best,


To: NLnet
Subject: Intake call Federated software forges with Gitea

Hi [redacted],

I understand, thanks for explaining. And indeed… since Gusted will have another opportunity for this, there is no need.

Cheers

@6543 @Gusted @Dodecahedron as discussed briefly before, I proposed that @onepict becomes an additional beneficiary of the grant and takeover the community management tasks that are currently assigned to me in the grant. She described her vision in detail and I find it compelling.

Could you please “like” this comment if you have no objection or write down your concern if any?

1 Like

@6543 @Gusted @Dodecahedron @onepict the intake call (confidential) happened and went well, IMHO. The next actions are:

  • NLnet send us a Memorandum of Understanding (contract, abreviated MoU)
  • we finalize the action plan that will be included in the MoU

I will prepare a second draft of the action plan for us to discuss during the upcoming forgefriends monthly meeting. @onepict would you like to organize this meeting with me?

1 Like

Here is a draft of the workplan for review and collaborative editing Gitea federation workplan - HedgeDoc

  • It is no longer a spreadsheet because NLnet now has an online web interface to conveniently track the progress of each task.
  • The tasks are coarse grain (5%, 10% or 20% of the total amount) because NLnet now has an online web interface that makes it convenient to submit request for payment for a partial amount. For instance if a pull request implementing followers/following is merged, and required five days of full time work, a request for payment can be made for the corresponding amount.
  • Each task has been described to NLnet during the intake call yesterday and no concern was raised regarding their scope and relevance in the context of the grant.
  • The description of the tasks contain a lot of detailed task which does not mean all of them need to be completed: it is quite difficult to predict how efficient the developers will be. Those that cannot be completed in time will be left out.

@6543 @Gusted @Dodecahedron @onepict could you please review the workplan and let me know if you have any question?

@onepict the Community management & Diversity task is where you’ll contribute: feel free to reword it however you prefer. You’re familiar with how NLnet works and I’d be very grateful if you could let me know if something feels off.

@6543 the work you’re doing for Vervis packaging will fit in the Testing tools and code for federation task and the milestone deliverable will be URL to new software packages to use for testing.

@Gusted @Dodecahedron all other tasks are fair game for either of you, feel free to add a task that you may be willing to work on.

During the course of this grant my work will be limited to reviewing the request for payment and doing the necessary legwork to welcome new beneficiaries and otherwise making it possible for the grant to be used effectively.

1 Like

@realaravinth during the initial discussions of the workplan (october forgefriends monthly meeting) you said you might be interested to work on the federation testing part of the grant and everybody in the call approved that you are made a beneficiary of the grant, if at all possible. Please take a look at the new draft workplan and let me know if you are still willing to and I’ll add your name to the list. Again, that’s just in case you have the time and inclination to work on a task that is in scope for the grant. It is perfectly fine if it turns out you don’t have time after all.

Thanks for the ping! Yes, I would love to work on writing tests, setting up testing in Gitea and another forge software, as laid out in the work plan. I expect to be busy with school till March, but I’ll have plenty of time after that :slight_smile:

I made a small correction ForgeFlux/northstart is an internal ForgeFlux service, whereas ForgeFlux/starchart is the search tool

1 Like

The draft MoU was received 14/11/2022 but I did not notice it was in the inbox, my bad. I sent the following acknowledgement today.


Hi [redacted],

I realize just now that I did not acknowledge receiving the draft MoU. We have a meeting tomorrow to finalize the workplan and I’ll send the MoU filled with the required details before Monday.

Thanks again for your help!

Hello Loïc,

here is the draft Memorandum of Understanding. We will still need the correct address, etc. [redacted]

As discussed, the next step is to create a concrete project plan with task and milestones. The project plan can remain quite high level. There is an example in the annexe of the MoU, but feel free to suggest something that works well for you - such as a spreadsheet. Your productivity matters most in this project, and we can be flexible.

Please check if everything in the MoU is clear, and do not hesitate to send us any issues or questions you may have.

Kind regards,
on behalf of NLnet foundation,