One musing: I did run into my first "issue" with federated Git hosting the other day while setting up Neovim on a new machine. One of the plugins I use is hosted on Tangled and I guess its backing Knot was down. This was awkward for two reasons:
1. It as unclear to me from the Tangled website the backing knot was the issue (for a while I thought it was something on my end)
2. I really had no backup plans for something like a Neovim plugin's source forge being down and, clearly, neither did the Neovim package manager as it just kept showing an error on every session I started with no way to fix it :).
I suppose in the long run we really shouldn't be assuming that code storage is just Always There or easily cached somewhere, but I anticipate some growing pains in the mean time. ATProto doesn't seem to have the benefit ActivityPub has where if the instance I wanted to view content on was down I can usually find some other instance that's gotten the messages.
Pretty much. We want to make running your own git remotes as easy as possible. Lets you scale on your own too.
> ATProto doesn't seem to have the benefit ActivityPub has where if the instance I wanted to view content on was down I can usually find some other instance that's gotten the messages.
It does give you (or anybody) the ability to index this data independently, and not miss messages -- which AP doesn't afford. Different tradeoffs!
Someone (or some group) could also in theory go fully content-addressing with their data store, and make content available based on their hash, effectively layering that missing benefit on top of the existing architecture. Someone could probably vibecode this together in some hour(s) :)
I do agree that the sweet spot in federated git hosting could be a system merging the features of tangled with the features of radicle
But I have to admit that the design tradeoffs are really different
this problem could exist with any package manager, the go package manager is one example, where it allows specifying packages from any git url. we host a mirror of all git repositories on our infra, and serve that when the backing knot is down. you could choose to trust that and pull from there (verifying that the tarball has a known correct hash), the way the go package manager pulls from proxy.golang.org.
But yeah I recognize it's an issue for any package manager. I suppose I just forgot that even something like my local editor is reliant on remote forges now unless I go out of my way to mirror it all.
Happy to answer any questions at all.
So what’s the state of Tangled today? Say I have a Tangled server (instance? host?) up and running with my repos. Some stranger wants to contribute. What do they have to do before they can open issues or send PRs or whatever?
Your Tangled git server that you'd want to run is a 'knot'[1]. It's not exactly analogous to Forgejo because it's headless, but that makes it super light on resources to run.
[0]: https://atproto.com/guides/the-at-stack#pds [1]: https://tangled.org/docs/knots/self-hosting/
This is great. I'm delighted at the idea of having my own knot hosting my projects, talking to my friend's knot, and coordinating on a global project's knot, all without having to lock everyone into one centralized point of failure (even mine). Amazing. I love it!
soon, repos will be able to declare a contribution policy: presently its open to all (anybody can open an issue), but owners can choose to limit this to just contributors for example.
Also, will Tangled support private repos that are only visible or fetchable to specific people? Would that even make sense in its model?
private repos are coming very soon, we have a working demo of private repositories.
From my very limited testing private repos were the big missing piece; interested in other areas yet to be filled in.
its undocumented at the moment but you push over https as well.
somebody has set up a git credential helper here: https://tangled.org/pds.dad/tangled-core/blob/feature%2Fgit-...
What can I expect as a developer using Tangled to build (and deploy) my app? What is the native platform? What are typical other CI systems that have been adapted to work on Tangled (Dagger, Drone, whatnot, especially if there are repos to demonstrate the adaption)? What can I expect as enterprise or lone developer using Tangled or self-hosting or federation?
The system is called Spindle, but what about it? What does it take inspiration from, what are things like it that would help us spool up on this?
Back when you first launched, I thought running a knot was already pretty easy :) Could you expand on how it's different now, and what part(s) aren't now easy to self-host, if there is any?
https://tangled.org/docs/self-hosting/indexer/
we have also stabilized lexicons, so if you are a selfhoster, you can expect to not require a breaking upgrade!
Some feedback:-
* I found the UI on the homepage/timeline a bit busy - lots going on. Notifications, Recents, Announcements don't seem like they need to live on this page?
* The Activity chart on a users profile page seems a bit wild to me. I'd suggest simplifying it or just using what GitHub/GitLab use with their square grid activity chart - it's what users are most familiar with. It's kind of analagous to all the LLM/Chat applications in recent years - they all converged on the same UI because that's what works - no need to reinvent the wheel when users understand an existing pattern. Plus - it's better for marketing:- people like to share their activity on GitHub/GitLab as it quickly conveys how much work they've done over the year - your current page doesn't.
git clone https://tangled.org/tangled.org/core
And it failed? Cloning into 'core'...
warning: redirecting to https://knot1.tangled.sh/did:plc:j5hmlfdrwkvtxm7cjmu7j2is/
remote: Thanks for using knot1.tangled.sh!
remote: Enumerating objects: 99191, done.
remote: Total 99191, done.
Receiving objects: 100% (99191/99191), 122.19 MiB | 39.12 MiB/s, done.
Resolving deltas: 100% (49286/49286), done.
error: invalid path 'localinfra/fixtures/blobs/did:plc:igzuueb63dytyy3tpaweofuu bafkreieify5bix4cmrj4iuxiceb6srr2boltkbbf7yizwtgwurqv42sltm'
fatal: unable to checkout working tree
warning: Clone succeeded, but checkout failed.
and retry with 'git restore --source=HEAD :/'
You can inspect what was checked out with 'git status'
It's not a great look when the very first thing I'd want to try to do: 1. Redirects from .org to .sh suspiciously
2. falls over.
I now have to try to work out whether that other domain is deliberate or compromised.Try cloning on WSL, in the VM's filesystem, and let us all know how that goes.
I just wanted to read the source locally. I know things are getting worse by the month for developers on Windows because other developers are increasingly not giving a shit to support it, but it's odd to have a repo that doesn't even clone on windows.
Not building is common, not passing tests even if it builds is extremely common, but not even cloning is a new one.
I guess eventually I'll give up and switch to linux, but I'm still paid to work on Windows. I guess maybe it's finally time to look into a real dev-container setup for this kind of thing and I can do this all a bit more securely too.
I am asking because I have been waiting for that change. I intend to make all the public repos from https://juju.bi (code forge I am building) interoperable with Tangled and basically behave as knot server.
Pre-update, code review UI was horrific compared to GitHub. Post-update, code review is much better, but "Comments" section without a "Comment" button is unforgivable. People are probably closing PRs right and left without knowing it. Shift-Enter is a submit action.
I'm a keyboard-first user, but for something which can end up in somebody's inbox notifications, UI button is the way to go.
I just don't understand how such a prolific pattern is being ignored.
atcr.io/tangled.org/knot:2
Does anyone know if ‘tangled.org’ is verified / guaranteed to be owned by tangled.org?