@ta180m The main reason I like gh is for project discovery. People can find my stuff and I spend (too much) time looking on gh for cool projects I should stay aware of.
Will gitea federation help replicate that or not really?
Will there be an option to follow (follow is the wrong word - flow through, index) all of an instance’s content so that self hosted instances don’t feel too seperated?
@daniel Gitea isn't working on discoverability, but Forgeflux's North Star project (https://github.com/forgeflux-org/northstar) is actively developing repo indexing and search for the entire ForgeFed federation.
For following an entire instance, we haven't really considered that feature, but you will be able to mirror individual repos including issues, PRs, and releases.
@ta180m Thanks for the brilliant response! Northstar sounds good, if it works, but seems a little bare bones atm. Hopefully it see more dev soon (that sounds kinda snobby - sorry). Is there any change for integration with such services (like with the explore section of gitea), or is it likely to stay as a separate tool
Mirroring including issues and PRs will be good, but I guess my second question doesn’t make the most sense without the first being in place.
@daniel I'm not sure if North Star will be integrated with Gitea. Currently, we plan on using the Gitea explore feature to search for all users and repos that this instance has interacted with (similar to Mastodon), but in the future we could definitely consider integrating North Star for federation-wide search or set up a separate service like Peertube's Sepia Search.
@ta180m Thank you for taking the time to answer my questions - great work for working on all of this!
@helene iirc the AP spec required servers to continue processing types that they don't recognize as best as they can. Mastodon could extract the name and content of ForgeFed ticket objects and render them as posts, for instance.
Type arrays are another solution, but Mastodon doesn't support them and go-ap, the library Gitea is using for federation, also doesn't support them the last time I checked.
Yea, I don't think "violate spec" is accurate. #ActivityStreams-core:
> Consuming implementations that encounter unfamiliar extensions MUST NOT stop processing or signal an error and MUST continue processing the items as if those properties were not present. Note that support for extensions can vary across implementations and no normative processing model for extensions is defined.
@helene I think you're working with the assumption that all clients must work with all activity types. That in my opinion is wrong. Doing a "best effort" thing on what a client doesn't understand seems enough to me. Best effort being handling the properties that the client already understands (attributedTo, inReplyto, name, summary, To, CC, samd)
@helene for all the examples you gave above, I think they're all reasonable examples of servers processing types they don't understand. For instance treating repos as accounts is perfectly fine because you can follow repos, and treating issues as posts also makes sense so fediverse users can comment on them or even do emoji reacts.
@ta180m I think you're working under a misapprehension here, if your server is doing more with activities than just receiving them, handling their side-effects, and distributing them to recipients you are also a client, not just a server.
If you display an activity or its object in a format that is meant for human consumption, again, you are a client.
@helene it's possible that we have a different definition of what "processing" an activity means. In my opinion "best effort" processing of an unknown activity type means mostly distributing it to its local recipients, even if you work under the assumption that their clients don't understand the type.
If your server doesn't do that, then I think it can be called broken from a "federation" point of view because it interrupts the context/flow of an activity chain.
You can start with this guide: https://socialhub.activitypub.rocks/t/guide-for-new-activitypub-implementers/479
And find a lot of info on the forum. Don't hesitate to ask questions there.
Also I co-maintain 3 fediverse lists at https://delightful.club where you find a lotta codebases to learn from.
And use hashtags and @activitypub group when asking questions on the fedi.
@mike @helene Thanks for the correction. I'm actually not working on Gitea-Mastodon interoperability right now, and it was someone else that told me Mastodon was the problem and supposedly violating the spec. Also, Mastodon and go-ap (the AP library Gitea is using) both don't support type arrays, so that complicates any solution involving type arrays.
@w the only reason I included it was because I get asked that question *a lot*. I'm not trying to be "dishonest" here.
@w I'm sorry if my post offended you and I didn't mean to criticize or ridicule people that claim Git is already decentralized.
What I wanted to explain is that Git itself is just a fancy distributed filesystem, and needs something else like mailing lists or ForgeFed to be fully decentralized.
@w thanks for the feedback and I'll try to use it to improve the wording and explanation in my article.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!