Open ghost opened 4 years ago
Thanks Rob for reaching out!
Summarizing our video call, for you & posterity to see:
go-fed/activity/streams
, for example passing an ActivityStream JSON literal string into a JSONResolver
, and in callback functions (like func(context.Context, vocab.ActivityStreamsCreate) error {}
) play around with the ActivityStreams API.FederatingActor
in go-fed/activity/pub
, which has a small API. The devil is in the constructor, which takes a bunch of interfaces: func NewFederatingActor(c CommonBehavior, s2s FederatingProtocol, db Database, clock Clock) FederatingActor
. Stub out and mess around with it.Then, if go-fed is the solution going forward, we can talk about the ForgeFed RDF ontology and getting it code-generated for forgefed.
Some design choices/notes about go-fed I had mentioned:
For ActivityStreams:
orderedItems
from a regular Collection
). Consequence is binary bloat in sheer code generated.For ActivityPub:
Create
or Delete
(but defaults can be augmented or overridden).go-fed/activity/pub
implements a synchronous process (but can have asynchronous S2S delivery). To make async, it requires client code to call Actor
APIs in a work queue or something similar, as the impl attempts to call Lock
and Unlock
appropriately.Concluding remarks:
Update: v1.0.0
has now been released. :) If you would like advice with integrating into gitea, let me know.
FYI - Cross-referencing to current open Gitea issues related to ForgeFed:
As well as 2 mentions on the Gitea Roadmap issue: https://github.com/go-gitea/gitea/issues/6998#issuecomment-496016933 and https://github.com/go-gitea/gitea/issues/6998#issuecomment-549372328
@robjloranger if you are interested in contributing, then @cjslep wrote an extensive report of steps to be taken to get others up to speed. Check the issue at https://github.com/go-gitea/gitea/issues/14186
I'm hoping to work on forgefed integration in gitea, or a standalone go forge.
As there is a lot of prior work done here already it only makes sense to improve the overall community by contributing to this and related work under go-fed.
I'm not really sure where to start at the moment so just wanted to drop in here and see if there is something you would recommend to start with or somewhere else you might need help.