So this is inspired somewhat by a question about somebody wanting to have a non-GitHub way of contributing to Lemmmy. I’ve really enojyed some other discussions on this community so felt somewhat inspired to ask this one too.

And whilst Lemmy is mirrored to a couple of alternatives (a self hosted Gitea and Codeberg) they can’t really be anything more than a mirror and a backup. If one doesn’t want to use GitHub they still can’t realistically contribute without signing up to GitHub and creating issues and PRs.

So what would it take to actually get people away from GitHub and onto alternatives (GitLab, Codeberg, sourcehut)? The situation seems to somewhat parallel the whole Reddit and Twitter thing. Both have/had a huge monopoly on users to the point where it just wasn’t really worth using anything else, at least not if you wanted to be part of a decently sized community.

Other mass migrations

Obviously the difference with Reddit and Twitter is that they both have had their version of “the Event” which cause existing projects (Mastodon, Lemmy amongst others) to suddenly explode in popularity. Has it killed off the originals? No but it has made the alternatives actually viable with enough of a community to sustain them and encourage more to join, even if slowly.

GitHub has had its fair share of controversy, most recently surrounding co-pilot and code scraping but no particular widespread outrage to cause people to leave it in droves.

GitHub is the home of open source?

I think for many GitHub has simply become synonymous with open source. The sheer number of repositories and projects hosted there means that people just use GitHub alone for all of their open source needs and don’t even look at other forges. Not to mention all the services offered - most of the alternatives can offer some of the same features but not all of them. Not only do you get space for your project code itself but you get access to their CI/CD platform, a forum through Discussions, a wiki, a project management tool, static site hosting which is an awful lot for smaller projects like GitLab and community non-profit projects like Codeberg to compete with.

There of course are some people that rely on their GitHub profile and their activity chart in order to get jobs and advance their careers - many of these people I suspect wouldn’t want to fragment their profile by having to split their activity up over multiple profiles.

So why would anyone not want to use GitHub. Quite simply it isn’t really in the spirit of open source is it? Not only is it controlled by Microsoft who haven’t historically been the friendliest towards open source but GitHub itself is closed source. You can’t host your own GitHub and get all the same features it enjoys. It does seem somewhat odd that the biggest vault of open source projects is itself proprietary and completely closed off.

What would need to happen for things to change?

So realistically what could be done about it? What would need to happen in order to entice people off of GitHub? Something arriving in the hopefully not too distant future is forge federation - projects such as Forgefriends, ForgeFed and ForgeFlux aim to try and create a federation of software forges. One of the main issues about having to create different accounts for every single platform goes away as you just stick with the instance you like best (or host your own) and yet still be able to fully interact with software hosted on other platforms. This means that you should be able to interact with a project hosted on, say, Codeberg, from your sourcehut account. You should be able to see issues, PRs etc. just as if you were on the same website.

GitHub, I strongly imagine, would have no intention of joining in order to maintain and protect their walled garden. I just don’t see a world where they would want to join in with federation.

Lastly I just want to add that I’m absolutely not judging anyone for using GitHub. The main project I’m involved with is also still on GitHub for some good reasons. Not only is it intertwined with their ecosystem but it provides services that we just need at this point. We still rely on some of GitHub’s services so we don’t spend our community donations on hosting stuff that we just don’t need to. It lightens the maintenance on us whilst we are still in a very active stage of the project with an awful lot of moving parts. And the bit I hate most, we need to be visible to the community - we aren’t big enough to go to one of the alternative platforms because what community engagement we have might well drop through the floor if people are suddenly forced to make accounts on other services just to log an issue or ask a question. I would love to move to a platform like Codeberg and any personal project I make would probably be hosted there but for a big-ish community project we just cannot justify it. So I am well aware of the attraction of GitHub and what keeps people there. What I want to know is what would be needed to actually break that inertia for projects, such as the one I mentioned, to justify a move away from GitHub - particularly people who may be far less ideological about the open source world.

tl;dr

  • GitHub offer many nice thing
  • Other places have not so many nice thing
  • How other place make people change mind up to move from place with all thing and all people to place with less many people and thing?
  • Chobbes@lemmy.world
    link
    fedilink
    arrow-up
    33
    ·
    1 year ago

    The somewhat snide answer to this is that… this is what git already is! Git has built in tools for submitting patches via email — a federated service. It’s actually what git was built for.

    https://git-send-email.io

    Of course, GitHub and stuff can be a pretty nice interface on top of git and provides features on top of git itself… but for small projects like the Linux kernel it’s perfectly acceptable :).

    Websites like GitHub are obviously a lot more approachable, though, especially since I feel like a lot of people kind of grew up with the gmail web interface or something similar and aren’t used to dealing with mailing lists for this kind of stuff (myself included, honestly).

    But to be honest… what are we really getting out of federation for something like GitHub? Like… it’s basically just single sign on with extra steps? I guess you can build alternate clients with the protocol for PRs and issues and stuff? But git itself is already pretty distributed, so I feel like there’s not much to do there tbh.

    • swnt@feddit.de
      link
      fedilink
      arrow-up
      7
      ·
      1 year ago

      IIRC the great UI and UX that GitHub offered on top of git was actually essential to the popularity and adoption of git. Without the UI and web interface, I think hit is too complex for people to borther with - except for hard experts.

      • tal@kbin.social
        link
        fedilink
        arrow-up
        5
        ·
        1 year ago

        I can believe that there are people who use GitHub to do some interactions with git – like doing searches through a repo – but I can’t imagine how you do most of what one would do with git when developing or contributing to a project from within GitHub.

        I mean, I use GitHub to push and discuss PRs, and to host a public git repo (for which all one really needs is a webserver that stays up). The vast bulk of my git usage is local. I use an emacs frontend for some of it, but a lot of it is plain old command-line git.

        • Chobbes@lemmy.world
          link
          fedilink
          arrow-up
          3
          ·
          1 year ago

          Yeah, exactly. Almost all of a devs interactions with git don’t actually involve GitHub. It’s nice for reviewing PRs and posting issues… but the bulk of what we do is with git itself. It’s easy to move git repos between services… git is already a distributed version control system. It would be a pain if GitHub exploded, but it’s very much not an insurmountable problem, especially since every dev for a project will have a local copy of the code.

          • DaeraxaOP
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            It would be a pain if GitHub exploded, but it’s very much not an insurmountable problem, especially since every dev for a project will have a local copy of the code.

            I don’t think anyone is particularly worried about losing code, as you say it is all distributed. What isn’t distributed is everything else - Issues, PRs, comments, releases. Those are much back up and re-implement if GitHub went belly up tomorrow.

      • philluminati
        link
        fedilink
        arrow-up
        1
        ·
        1 year ago

        This wasn’t my recollection. Git exploded the minute it was created, as a result of being created by Linus Torvalds. Before Git we had SVN and CVS, both insanely client-server products. Git is distributed.

    • astropenguin5@lemmy.world
      link
      fedilink
      arrow-up
      4
      ·
      1 year ago

      I may be wrong on this, but what it sounds like to me is that the thing GitHub is built up on is the main attraction, the only thing to benefit is to build an equivalent platform for interfacing with it that is open source and maybe federatable

      • Chobbes@lemmy.world
        link
        fedilink
        arrow-up
        4
        arrow-down
        1
        ·
        edit-2
        1 year ago

        In some sense GitHub really doesn’t offer much. Like, the main thing is that it’s a nice interface for PRs and issues. If you’re just a dev working on stuff you mostly interact with git itself. Git repos themselves are distributed and very easy to move between platforms. So, like… losing GitHub would suck (you’d lose all of the issues and PRs), but it’d be fairly easy to just put the code base on another platform like gitlab or gitea or gogs or whatever. I’m not really that worried about GitHub exploding because of this.

        That said it’s really pretty annoying when a project uses its own gitlab instance or something and you have to make an account to contribute or post an issue… it’s a relatively small barrier, but it’s enough of one that I won’t bother often.

        I honestly don’t know what people want from a federated GitHub like service… do you just want like single sign on with OpenID? Because that’s basically the only benefit I can imagine, but maybe I have a shitty imagination.

        • DaeraxaOP
          link
          fedilink
          arrow-up
          4
          ·
          edit-2
          1 year ago

          I honestly don’t know what people want from a federated GitHub like service… do you just want like single sign on with OpenID? Because that’s basically the only benefit I can imagine, but maybe I have a shitty imagination.

          Well the point is that you can use whatever UI you like and work with other repos. Just as with Lemmy the fact that you stay on your own instance yet can browse and post to other instances as well as non-lemmy instances like Kbin. The whole idea of forge federation is to avoid exactly the problem you describe with having to make a bunch of accounts and needing to work with and monitor different sites which is one of the big reasons people like GitHub - everything is in one place.

          So no, it wouldn’t be a single sign on because you don’t need it, you just have your account on the forge instance you use - could be the big hosted ones like GitLab, Codeberg or sourcehut but could also just be a Gitea instance you run on a Raspberry Pi. From that instance you can still view other repos hosted elsewhere, create issues and PRs et.

          So lets say you were interested in a project hosted at https://codeberg.org/blazinglyfasttm/rustything but you were using your own account on a self hosted Gitea you could still interact with the repo without going to the Codeberg website. Instead you would be able to use something like https://myimaginativeforgename.io/blazinglyfasttm@codeberg.org/rustything. No new accounts, no different UIs but you can still interact with the project as if you were on the original site.

          • Chobbes@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            1 year ago

            Sure, I guess that’s fair.

            For me… By and large it still sounds like the most valuable thing is that you don’t need to make multiple accounts, which is why I bring up single sign on. The interface for PRs or whatever doesn’t make much difference to me, and I worry a bit about having different clients for PRs and issues because they might support different features or display things differently (everybody has their own markdown already, for instance…). It’d probably be fine, but it seems like it’d be about as annoying as having to log into separate gitlab / gitea instances with single sign on to me anyway.

            It could be cool, though, and I’d be happy to see somebody build it. Don’t let me poo-poo it.

        • Caroline@lemmy.fmhy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          edit-2
          1 year ago

          GitHub not only provides a centralized service for automated patch creation and merging, bug and feature tracking via tagged threads, and organizational permission management (which are the main draw)…

          It also provides:

          • A free* and robust CI automation service that integrates smoothly with the aforementioned patch creation, merging, and feature tracking
            • Within reasonable limits. I’ve never had an issue with the limits set for free users, even with constant testing on large projects.
          • A helpful combination of kanban (board), table, and timeline trackers for the aforementioned tagged threads, or simpler ideas
          • A host for static websites that can be redirected to your own registered domain, completely free of charge
          • Social features that help users find new projects to contribute to and keep up-to-date on projects they already use and contribute to

          GitHub may seem simple, but it really provides a ton of functionality to power-users and organization managers that cannot afford to foot the bill themselves. People like me could not continue to do what we do without GitHub at this point in time.

          • Chobbes@lemmy.world
            link
            fedilink
            English
            arrow-up
            2
            ·
            edit-2
            1 year ago

            Yeah, these are some good points. I don’t mean to say that GitHub is a trivially implemented frontend to git, or that it provides no value at all to be clear! All of these features are great and really useful, and it would be sad to suddenly use them were GitHub to explode… But in the grand scheme of things projects can still migrate relatively easily to other services or self hosted ones, and my impression is that most of these features (excluding GitHub pages, which are super popular) are fairly underutilized – at least in my experience I mostly just interact with GitHub to do PRs and issues, and I don’t think I’m alone in that. The disappearance of these bonus features would certainly impact some projects a lot, and suddenly losing issues and CI would SUCK, but it’s not unrecoverable, and they’re (arguably) a little bit tangential to the core product.

            I also think that the free CI is a bit of an aside in the discussion of a federated GitHub like platform – recreating GitHub as a fediverse thing would not suddenly make it so you can afford to foot the bill for CI, unfortunately (maybe you could have a pool of trusted volunteers to run it or something, but that’s kind of tricky)… In terms of free CI resources, I don’t think there’s much of a way out of depending on big corporations like Microsoft to supply it to keep you on their platform. You’re either going to depend on them, or you’re going to have to pay for it yourself or accept donations somehow, right?

            The free CI is really awesome, though… I’ve unfortunately hit the limits with my projects, but being able to just add the free GitHub CI is a huge win, especially when you can’t convince your boss l organization to shell out for CI, so I definitely feel you there :(.

    • dot20@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      1 year ago

      But to be honest… what are we really getting out of federation for something like GitHub?

      You already mentioned it: familiarity. If you want people to contribute to your project, you have to make it easy for them to do so.