I'd like to move my code off #Github. But to where? #Gitea, #Gitlab, etc. are basically things in the same area. #Git itself is decentralized, and I hate to centralize it again. Yet people seem to have forgotten git send-email. #sourcehut looks somewhat interesting. Are there other takes on #Git collaboration that make efforts to preserve decentralization?
@slips To be honest, I'm not entirely sure I know what I want. I've used distributed VCS since before Github (or even Git) existed, and things like git format-patch make tons of sense to me. But I am aware, not to many others. In short, Git is based for decentralized collaboration but the world has standardized on centralized collaboration. I'm looking for things that can nudge that needle back in the decentralized direction. https://www.reddit.com/r/git/comments/5w55pp/gitdit_decentralized_issue_tracking_for_git/ is interesting, for instance.
@slips Yep, I know. Although there's value in replacing one centralized service controlled by a corporation with a centralized service not controlled by a corporation, it's still a centralized service.
@brennen@kelbot You sent me down an interesting path. I just learned of @forgefed and #gogs, which seems to be a gitea-like idea. AFAICT, nobody has implemented federation yet, but people are interested!
@codeberg Speaking about that, are they plans to provide per-project emails so that email patches can be made part of the normal interface? (Most maintainers don't know how to deal with them in my experience, so making the patches look like any other MR would be a great step forward on that side)
@F1RUM@codeberg Thank you, yep! Codeberg is on my radar as a solid Gitea instance. If I wind up with #Gitea, that might a place I go to if I don't host it myself.
@jgoerzen BTW, Gitea is working on federation between instances. It already supports seamless migration including all metadata, so hopping between instances is fine.
We always encourage maintainers to prominently state they are accepting patches via email, too. @F1RUM
@aw Interesting! I hadn't known of git-request-pull. Yes, I worry that many people don't have a local MTA configured and so git-send-email (or, it seems, git-request-pull) aren't going to work and they'll be baffled why.
@eludom 3/ So centralization is causing important details about a project to be locked up at #github -- bad enough -- but also forcing humans to context switch between local code and remote website, and fragmenting discussion into n different places. The only reason people haven't risen up against the high barriers to entry at #Github is because "everyone" already has a #Github account, right?
@eludom The important question right there. So I love about #DVCS that every participant is, technologically, an equal peer. The only thing special about the Linux kernel tree is the sociological agreement that it's special. But with #github and similar (#gitlab, #gitea, etc), the site becomes special. My repo on my laptop isn't an equal participant; I have to clone it to Github to even attempt that. With the centralization of so much metadata about the project, failure of GH is risky. 1/
@eludom 2/ And the #Github -style workflow is TERRIBLE when you stop to think about it. Any PR of any size can't be effectively reviewed in the web interface. So you have comments on the web, and code locally, and are constantly having to context switch, which is expensive for humans. The hub CLI and clients only mitigate this to a small extent. The original #git workflow - patches via email with integrated discussion - still makes tons of sense to me.
@jgoerzen@eludom this may be a bit of a tangent, but I'd like to understand better why people like "patches via email" so much.
I agree it's nice to submit your contribution from the commandline.
However, once you've sent it, I usualy quite miss the reporting of a forge: giving the contribution a URL, tracking the state (waiting for review, reviewed with comments, merged, closed).
@jgoerzen@eludom sending to a private address you're in the dark: did they get the email at all? Was it marked spam?
With a mailinglist, when you don't get a quick reply (which you can't always expect), having you contribution hidden in the email archive for months ago makes you wonder - did they forget about it? Should I remind someone?
Having it in the 'open prs report' is nice, and easier to discover esp. for others that don't follow the list closely.
@jgoerzen@eludom I agree the GitHub review web interface leaves a lot to be desired, but on the other hand: is context-switching between the code and a consolidated webpage so much worse than context-switching between the code and a large email thread/tree? I didn't find other options (gerrit etc) very pleasant to use here either, but still better than wading through a mailing list archive...
@jgoerzen@eludom I'm definitely not trying to say GitHub is so great, I share your desire to bring more decentralization back to the forefront - but I'd like to understand better what people like so much about email for collaboration.
My personal feeling so far is that we indeed need better tools for 'contribution tracking' (that should include good email interfaces as well), but 'just' going back to mailinglists would throw out a lot of baby with the bathwater.
@ij Those are thought-provoking points. There is a network effect on those sites, which can be helpful, but it's a 2-edged sword. To be sure, my projects are always somewhat obscure and I occasionally get drive-by PRs and issue submissions, but not very often. I guess I've seen the main thing as "I already have an account here, so I can make a PR a way I know" rather than surfacing interesting projects.
Did you mean a push mirror from localhost to codeberg, or from codeberg to #github?
@jgoerzen Well, in the case of Codeberg, I think it's from Codeberg to somewhere else, according to the screenshot.
But as Codeberg is using Gitea, I assume that this option does also exist on self-hosted Gitea installations.
Another bonus for Codeberg/Gitea: afaik there is work on implementing ActivityPub in Gitea, which could result in a better network effect of distributed Gitea instances. At least an interesting option, I'd say...
@jgoerzen Well, with Codeberg/Gitea (maybe also with others) you could setup a push mirror. My consideration was: when I use my own Gitlab/Gitea instance, I won't be found on the internet. If using a more centralized service like Codeberg my projects will more likely to be found and contributors may benefit from having already an account there.
As always: it's a tradeoff to some degree, but with Codeberg I don't feel that locked in like with Github because of the non-profit org.
@jgoerzenhttps://radicle.xyz/ is not at all like email coordination, but may be interesting to you nonetheless. I haven't looked closely in a while but it had promise (maybe not quite realized) the last time I did.
@jgoerzen One barrier to making hydra hosting meaningful is that wherever you host the bug tracker will in practice be the primary host, in the sense that if it goes down, you've lost a lot of important data.
One solution would be to use something like git-bug to keep issues inside your repo, which you replicate to the multiple equal remotes: https://github.com/MichaelMure/git-bug
I also have not tried this yet, in part because there is no bridge to SourceHut issues yet.
@clacke Yes, making email-based MR (and issues for that matter) first-class citizens would (I think) greatly lower the entry barriers that are currently associated to them. @codeberg
@silmathoron We threw some ideas around for an external API-based service, fetching IMAP accounts, converting into issues and MRs, or forwarding requests from Codeberg to other, e.g. proprietary, forges.
Maybe I'll spell this out and create an issue, but we'd need community contributions - we can't currently work on that ourselves. @clacke
@jgoerzen It is bare-bones simple which is a bit of a downside, but it's super, super easy to maintain once you set it up, you just need static file hosting somewhere. there are a lot of forks with additional features like markdown, etc
@jgoerzen Selfhost and publish your own repo, and also sync it with a service that helps you with additional features, like bug trackers and "pull requests". But don't rely on the services unless you understand why they exist and how they will be able to continue existing.
@jgoerzen Others already have mentioned @codeberg and I recently blogged about it on planet.d.o as well. I think, Codeberg is a good option, if you don't want to host yourself, but do want to move away from Github, because Codeberg is a German-based non-profit organization.
@chris Thanks! It was taken by my son on one of our flights together. My long-repressed aviation dream got un-repressed a few years ago What kind of flying did you do? Also #AOPA has a rusty pilots program in case you ever get back into it π
@jgoerzen I tried to move off. Setup my own Gitea for a while, tried Gitlab and others too. In the end I couldnβt get rid of my GitHub account as too much still happens there. Today I use it as the main repo. Considering if I publish to a package repo like npm, etc there isnβt much difference anyway I donβt know how much it matters. That said, I also back up all my repos just in case.
@chris I can understand. I guess I encourage people to try to break the Github monopoly that's out there, as much as they can. It's so ingrained in even Go and such.