the single most important criteria when replacing Github
Consider all the data that's used to provide the value-added features on top of git. Issue tracking, wikis, notes in commits, lists of forks, pull requests, access controls, hooks, other configuration, etc.
Is that data stored in a git repository?
@joeyh how do you feel about activitypub as an interoperability mechanism instead?
@technomancy like I say in the blog post, it neglects an pportunity.
Unless activitypub gets as much distributed power as git has.
(But, consuming data from a git repository and communicating it over activitypub would be fine.)
@joeyh I'm skeptical; I've seen many, many attempts to move issues into git as the backing data store, and no one has yet found a way to make it work in a way that's satisfactory.
@technomancy no, *dozens* of people have found *different* ways, all non-interoperable. Which is why a github or a gitlab doing this and establishing a de-facto standard would be valuable.
(I have been active in the dist-bugs space for a decade or so.)
@technomancy yes, 100%
@joeyh is there anywhere I can read about the setup you've found that has worked for your projects?
@technomancy it's a MVP: Simply markdown files stored next to the code, rendered and editable on a wiki and accepting anonymous git pushes that edit only the markdown files. Far from ideal, but it does not stop users from giving more feedback than I can keep up with.
@joeyh @technomancy Even if you were to distribute your issues inside a git repo or etc (though, a PR inside a git repo? Do you have PRs for your PRs?) you'll still need a mechanism for notify someone that an update to that repository is available for consideration right? In which case you probably need some sort of messaging layer
ActivityPub could maybe be a way for a git server to notify a CI server that something's changed (triggering a CI build, test, deploy, etc). The ActivityPub message could carry the necessary metadata of the change (what ref changed, etc), and possibly the actual change (the commits), to avoid having CI having to pull from the CI server.
Then maybe any number of CI servers could subscribe to the ActivityPub stream (or what it's called?) for a git server.
@cwebber btw, activitypub (or ssb) could be very very useful for the whole social network side of things, which is sorta kinda orthagonal to what I've been talking about.
(But we also know how hard it is to get social network traction, any this is all going to mostly blow over soon; the gitlab import graphs are predictably trailing off. So my optimisim is slight.)
Great question! But I did not understand this comment at the end:
"I'd give git-ssb, which stores issues etc as ssb messages, a pass on this, for example."
Does "pass" mean "they pass", they're ok on that? Or "I'll pass", not use them?
@bhaugen woah sorry for the ambiguity, I mean a green check mark :) Correcting now
@joeyh One option I do is upload my gits either to IPFS or Beaker Browser. I recently made my own Git repository on my own page in Beaker.
What you'd do is have an iframe of source code to see what it contains, see if you can trust it, and then a download link to the tarball.
And it would be decentralized as well.
Damn good points, you make.
@joeyh ah, sad but true… (good post, by the way)
@joeyh HN has about six flavors of people there, lol. Many who probably agree with you.
I think like the GitHub wiki is even technically probably a Git repo... just a hidden/unreachable one. It stores changes in a very Git-like fashion.
@ocdtrekkie Github wiki, gists, user pages are all stored in git repos. Rest isn't. I don't know about the equivilants on Gitlab.
Also, https://github-backup.branchable.com/ pulls all the data into a branch (and backs up all repos you star or fork); I wrote it 6 years ago partly to demonstrate feasibiity, partly to not lose information when the inevitable github backlash happened.
@joeyh That's pretty handy! I'm not leaving GitHub (and think the hysteria is hilarious), but am always pretty big on good data export tools.
@joeyh Looks like you've upset LWN readers as well.
@liw yeah well, good.
@joeyh great point.
Phabricator is a fully open source replacement without any "open core" games. Self-hosted issue tracker, wiki, all you need in a nice package.
@joeyh I would be very interested to dig into people who have (or still are, of course) stored issues in a git repo.
A little searching last night turns up these attempts: https://github.com/dspinellis/git-issue
...which still seem active. Otherwise, a handful of discussions, but not much experimentation.
BTW, I can't tell you how relieved I am to click on those LWN links and see that they're not stories that I wrote and have forgotten about. That sort of thing happens, let's say, "not rarely."
@joeyh I'm unsure what is ment by "notes in commit". My immediate thought is commit messages which are definitly stored in git as they are an integral part of it, but surely I'm misunderstanding something here?
Anyway, gitlab wiki pages are a git repo as far as I can remember reading in the docs.
@espen github has an interface to attach comments to parts of commits, typically used during code review
@espen and stored in sql, not git of course
@joeyh Ah, you mean the discussion during a pull request, not the commit message itself. Yeah, thats not a part of the git repo.
But then, git was not designed to do tasks that other tools perform better, like relational database (or something) for github, or email lists for the original users (linux kernel devs)
Gitlab is the closest I have found to githubs ways of working.
@joeyh Fossil-scm is an attempt to bundle issue tracking, wikis, comments etc. along with a version control system. Everything goes into the same repository. Everyone who clones a fossil repository has a full copy of the website along with the code (think git + GitHub both being in the repository itself).
I was using it for a pet project but didn't try it with a team.