Top
Best
New

Posted by icy 15 hours ago

We need a federation of forges(blog.tangled.org)
534 points | 339 commentspage 2
ecshafer 15 hours ago|
Why? I really don't see the purpose of a federation of git repos. Git is already totally decentralized. 99% of projects only have a small list of committers. Tangled just doesn't solve an actual problem. Github was used because it was an easy to set up, free, place to store code and share it, and it had source viewing which was a step up from sourceforge. With multiple solutions available that makes this easy, its just not necessary to federate anything. The common user account part of github just isn't critical.
malicka 11 hours ago||
Discoverability. Without federation, people are pretty much dependant on GitHub to make sure their software gets out there.
tardedmeme 10 hours ago||
How do you discover new software using GitHub? Let's say I want an RSS reader for Linux - how does GitHub help me find one? I must have never used this part of GitHub.
OneDeuxTriSeiGo 3 hours ago||
Github has search functionality and grouping of repos by topic, etc. So you can browse repos related to a specific topic. Or you can click on someone's profile and see the projects they've worked on and maybe one of them is interesting.
varun_ch 14 hours ago||
There’s a lot more to GitHub than just the git part. Issues, PRs, etc.
ecshafer 14 hours ago|||
Why does issues and prs need to be federated? I can't think of any part of Github that benefits from federation. Just set up your own instance.
haskman 14 hours ago|||
They do if you want to collaborate with others. No one is going to want to create accounts on your personal instance
iamnothere 13 hours ago||||
Because we are headed into a world where attacks on project hosting are more common, and loss of issues/PRs can halt a project while setting up an alternative and attempting to restore archived information.

The attacks span from forged DMCA takedowns, to national blocking orders, to suspicion that a contributor is from a sanctioned country (whether they still live there or not), to rogue project admins, and some other more creative attacks.

Project infrastructure should be distributed, with copies of data in as many computers as possible, across as many jurisdictions as possible.

LelouBil 14 hours ago||||
It's easier and enables more features to have 1 common platform.

For example, the social features of GitHub, which I like (like stars, browsing repositories by tags etc..)

But also For PRs, the way to make a pull request to a repo hosted at A, from your own node hosted at B.

And like other commenters said, you can do this workflow with git over email like a lot of projects to, but the main goal of the federation here to me is the user experience, the UI being able to link all of theses separate repositories, issues, PRs, etc, like everything was hosted at the same place.

332451b 13 hours ago|||
I think initiatives for forge federation are trying to do too much. When running a forge for a project, I'd don't want to be dealing with spam or large amounts of data from other instances. And people should be able to report bugs and upload attachments, without having to give permission to share those with other instances.

A good system to download and migrate issues and pull requests is important, but that doesn't require federation.

I would love to see a smaller scoped federation of:

  - Forks across instances, including for the purpose of PRs (Git)
  - Activity feeds and notifications (Activity or ATproto)
  - Authentication and some user settings (OAuth)
delf 12 hours ago|||
One approach is to keep it all in git itself, the way GitSocial does: https://gitsocial.org/
nightpool 11 hours ago||
I'm a huge supporter of federation, but I've never understood the use-case for a "federation of forges". What data are the forges exchanging? Why should the forge for Blender have any connection to the forge for Ubuntu?

Most of the value I get from Github is having a single login that I can take from project to project. Independent forges can get the same value simply by supporting social login, without needing the complexity of a "forge federation" system.

malicka 11 hours ago||
If people want to find software, they search GitHub. If you self-host a forge, no one will ever find your software unless you’re a preestablished big name (like Blender). To avoid throwing your code into the void, you’re pretty much forced to mirror with GitHub, at least.

To avoid this and make smaller forges as a block a viable competitor, there needs to be a singular network that solves discoverability and lets you find software from any host – like ForgeFed would.

There’s also the concern with the friction created by requiring newbies to log-into a dedicated forge for contributions (which ForgeFed solves), but I reckon that’s a secondary and related concern.

nightpool 10 hours ago|||
This is an indexing problem, not a federation problem. Personally, if I want to find software, I use Google, Rubygems, or NPM. Github is a distant third option. But this project is about data interchange between forges. It doesn't solve the indexing / discoverability problem.

Having a better code search crawler that can grab data from independent git repos would be really cool. But being able to submit a PR from server 1 to server 2 is pretty unrelated to that.

tcfhgj 9 hours ago|||
> If people want to find software, they search GitHub.

people really do that?

Klonoar 6 hours ago||
The only time I ever search GitHub is when I'm trying to debug or understand some esoteric API (usually Apple-specific) and I'm looking for anybody else who has actually used the god damned thing.

If I'm looking for software/libs/etc, GitHub search is the absolute last thing I would even think to look for.

hirako2000 11 hours ago|||
Git is decentralized by design. It can support federation, it just happens that GitHub solved the UI, issues, PR so that even new comer can come in and do git stuff and track issues on the screen. But centralized it.

Federation would be closer to git, but not so decentralized that when one node goes offline you may not have any upstream to pull from, or not be able to find them.

Git doesn't solve availability. Federation may solve it, by staying closer to the decentralized philosophy. That's my read.

nightpool 10 hours ago|||
Not sure I understand, you're talking about mirroring git repo data between multiple different nodes? That seems unrelated to what's proposed in the OP--maybe you're seeing something I'm not?
tcfhgj 9 hours ago||
if I fork a repository to my forge, I expect my forge to have an independent copy of the repo
nightpool 9 hours ago||
How does that fix "when one node goes offline you may not have any upstream to pull from"? You'd still have your own local copy—just like git—but you wouldn't be able to access any sense of "upstream"
hirako2000 8 hours ago||
By hosting a knot.

You may ask, well, that's like hosting forgejo or any other git server, where is the federation?

Tangled uses a protocol. So knots would adhere to that protocol allowing to pull from any upstream.

That's my understanding of federation. not saying tangled will go as far as figuring out discovery across their cloud hosted knots and self hosted infra. But that can be done, and claiming to be able to pulling from any repo with a single identy would imply just that.

Scaled 11 hours ago|||
The biggest problem IMO is discoverability. I need an easy way to find open source projects that are on scattered servers. GitHub project search is limited to GitHub.
nightpool 10 hours ago||
The OP says that tangled only supports event federation. How does it help with discoverability?
OneDeuxTriSeiGo 3 hours ago||
Events in atproto speak are changes to metadata/records, i.e. repo/MST events on a PDS.

So for tangled that means federation of issues, PRs, comments, follows, stars, and anything defined in an atproto lexicon. i.e. everything except the actual git repo itself. Those repos are singularly hosted on a given knot for the time being.

Now it's not a huge leap to imagine extending functionality to support cross-knot mirrors but that's not a supported feature yet. And of course you can always just fork a repo instead.

foresto 10 hours ago|||
Interoperable identity providers would indeed be useful.

Beyond that, maybe resilience when a project's host disappears, changes its policies, or gets blocked by a government?

nightpool 9 hours ago||
How does tangled solve that? Repository contents are still hosted by the forges themselves.
foresto 8 hours ago||
I was addressing the question of a use-case for a "federation of forges". Not any specific design or implementation.
nightpool 8 hours ago||
That sounds more like you want better decentralization, like IPFS or BitTorrent, not necessarily federation between different forge instances. I'm not familiar with any existing federated system that would be resilient to government censorship. Certainly Mastodon and Bluesky aren't.
tao_oat 11 hours ago||
In this case the benefit would be:

- your data lives in one place, your Personal Data Server (PDS). You can self-host this if you like - The AppView (in this case, tangled.org) aggregates the data from many PDS's into one view. - If tangled.org enshittifies, you can do all the same things from any other AppView -- tangled.org itself is not privileged in any way.

Social logins on independent forges help, but personally I'd rather have a single account to manage -- and the AT protocol means that any individual forge can go down, but the data remains accessible from other AppViews.

nightpool 10 hours ago||
In this case the PDS is only storing social data though, right? The forge would still store the repository data itself.
4lx87 10 hours ago||
Looks really cool but ATProto means I won't be using it. I'm not going to invest in another network when we already have an open one.

We already have the web. The web already has OAuth. OAuth is already widely supported. IndieAuth already offers a very simple and standard approach to personal OAuth servers, if people really want to run their own identity server.

"Feeds" are perfectly doable using the web. It's already pull-based. We don't need another protocol to listen for changes at a URL. The web already has support for different content types and document schemas, we don't need to reimplement content types and schemas as ATProto "lexicons".

mikey_p 10 hours ago||
The web still has other protocols on top of it, like RSS. Just because the "web" exists doesn't mean that solves every problem.

Also OAuth only handles auth and permissions and doesn't do anything for provided federated views of disparate data sources.

Also this isn't about identity either, you're really misunderstanding what this is about.

4lx87 10 hours ago||
You're right. RSS builds on top of the web. ATProto does not. I'd say RSS is a resource format / content type, not a communications protocol. A resource format intended for syndicating updates – exactly what ATProto and ActivityPub do (but decided to invent new formats instead of extending RSS/Atom. JSON all the things!).

It is very much about identity. To use tangled you need to use ATProto and authenticate using ATProto – rather than using the existing open standard for authentication used by pretty much everyone at this point (missed opportunity to login to Tangled using GitHub). What's crazy is people still use the web to interact with tangled anyway.

icy 10 hours ago|||
AT Protocol uses OAuth: https://atproto.com/specs/oauth
skybrian 10 hours ago||
The thing about file formats is that there are so many to choose from. From a distance they may seem much the same, but ATproto has its own conventions for database records and links between them that makes it easier to replicate data without breaking references.

It's like records are born to replicate for better or worse. They get downloaded immediately and you have no control over where they go after that. Anybody can tap into one of the firehoses spewing them all over the place. But they're all linked together and if links break it's because nobody kept a copy of that record.

Other file formats don't work quite the same way. A git repo is easy to clone and pull from, but things like call graphs are language-specific.

It seems hard to say what apps this sort of replication is right for.

tardedmeme 11 hours ago||
A federation doesn't mean the forges talk to each other. It only means there's more than one, and data flows between them. This can occur by developers pushing and pulling from different remotes. You already have a different remote for each fork, you lose nothing if they're also on different servers. Communication about the project can also happen in many places.
ksymph 7 hours ago||
Tangled is pretty cool. I'm not particularly into atproto, and I think the connection kind of distracts from the reality of what it is and can do.

You can host your git repo on their servers, or your own. You can host issues/pull requests/runners/etc on their servers, or your own. Regardless of where a repo is hosted, you can interact with it from a single account, and with that same account interact with others' repos connected to tangled. Plus it has native jujutsu support, though you can use plain ol' git if you want to, too.

Do I think a forge with those features necessarily needs to use atproto to exist, or that atproto is the ideal version of itself? No, not really. But the site is there, and it has some pretty neat features I want; I don't need to love the stack to use it, any more than I do Github's.

divbzero 13 hours ago||
It appears that git format-patch + git send-email is a mature and widely used approach. Wouldn’t it make more sense for the open source community to work on streamlining that process instead of trying to build momentum with new approaches?
OneDeuxTriSeiGo 12 hours ago|
For what it's worth, under the hood tangled is extremely similar to this approach.

Personally as just a random person in the community I've been building an appview for tangled that lets you interact with it as if you were just using git format-patch + git send-email + some MUA.

You can conceptually treat the tangled lexicon as a schema for encoding a git patchset based mailing list into IPLD/atproto records and vice versa. Doing this is slightly lossy but only barely. Otherwise it's pretty seamless.

delf 12 hours ago||
GitSocial allows cross-forge collaboration without any 3rd party dependencies as it keeps everything in git: <https://github.com/gitsocial-org/gitsocial/blob/main/documen...>

Git IS the federation layer in this case.

embedding-shape 12 hours ago|
How do you authenticate the identity when people are submitting patches between two repositories running on two different servers?
delf 12 hours ago||
There's a federated identity spec and implementation: https://github.com/gitsocial-org/gitsocial/blob/main/documen.... For GH/GL, just an api call to verify signature, for custom domains, it's .well-known/gitmsg-id.json
evbogue 1 hour ago||
We need git-ssb
999900000999 14 hours ago||
You will never get around the free rider problem.

If I want to create 100 repos of vibe coded projects every month someone will have to pay for it.

At this point, just give me an honest version of GitHub that tells me what things actually cost. 5$ a repo, and another 1 per gb stored in LFS, cool.

icy 14 hours ago||
The cool thing is you can just host your own knot then. Host repos of whatever size you want.
cedws 13 hours ago||
Man I really want to like this thing but this jargon is so stupid.
OneDeuxTriSeiGo 12 hours ago||
The jargon is just naming the free-standing components after rope/string related things. i.e. tangle, knot, spindle, etc.
tardedmeme 10 hours ago|||
Just call them what they are. Federations/networks, servers, repositories...
OneDeuxTriSeiGo 3 hours ago||
You got pretty much none of the names right.

Tangle: the appview server of the tangled network.

Knot: the git server that holds an arbitrary quantity of git repos.

Spindle: CI servers/runners/nodes.

Each one is the name of a component and the name for those components is pretty arbitrary.

fgfarben 11 hours ago|||
I think they're mad because 'knot' is a furry fetish term.
sakjur 2 hours ago||
Pretty much every word in English seems to have an innuendo meaning to someone, do anyone truly care past the age of 15?

I find Tangled's language a bit annoying because I'm pretty sure if this caught on it's even more single word concept rather needlessly. If the protocol is called Knot, then call a server a Knot instance or Knot server. If the runner protocol is called Spindle, each server which responds to that could be a Spindle runner. That'll serve two functions: It'll let people contextually hook the terms up against existing terms and still retain the option of evolving into singular word concepts if they prove successful enough for that to happen.

From my point of view as a non-native speaker, the frequent overloading of commonplace words add to the confusion of learning English. I don't like that. It's far from a big hurdle, but just big enough to earn a soft little sigh from me.

Your comment was the only thing that made me even care to comment: Isn't it rather unlikely that the person you're commenting on takes issue with a kink rather than any other reason why "knot" and "spindle" might be poor choices? Who knows, they might even have a good reason, but you started out with assuming bad faith and at least I tend to just leave conversations at that point.

sambuccid 14 hours ago||
Similar UI but donation based and public repo only: codeberg.org

Fixed low cost but different UI: sourcehut.org

999900000999 13 hours ago||
Source Hut looks cool, the website is confusing though. What build systems do I get for 4$ a month ?

Getting my friends to feel comfortable moving ( so they can view the UX ) too will be a challenge.

d_silin 15 hours ago|
Federated solutions seem to be the future, after once-beloved provider becomes the crumbling monopoly.
mikepurvis 15 hours ago||
It's not a clear one-way trip though. The "original" blogosphere of the 2000s was heavily federated with MovableType supporting trackbacks and then later systems automating that further with pingbacks. Ultimately it all fell to spam and hosting complexity though, and now almost all blogs are on a handful of centralized hosts again.

Spam/moderation is going to be the biggest hurdle to overcome with any distributed forge effort. It'll likely come down to some kind of web-of-trust/vouching system, but it's delicate balancing ease of access with not making it a slog to constantly manage spam.

hamdingers 13 hours ago||
Has it ever worked?
d_silin 13 hours ago||
Mastodon, Discord?
hamdingers 13 hours ago||
Is Mastodon successful enough to be called "the future" of its niche? MAU is 1/3rd what it was at the peak, and bluesky + mastodon MAU combined is microscopic compared to twitter (I use none of these services, no dog in this fight, just looking at numbers).

Discord is not federated.

More comments...