Development quotes of the week
As far as I know, this holds the record for the oldest bug reported in GNU software so far this year. (Maybe we should give Andy a prize; how about a plaque inscribed in EBCDIC? :-)
Is that data stored in a git repository?
Github avoids doing that and there's a good reason why: By keeping this data in their own database, they lock you into the service. Consider if Github issues had been stored in a git repository next to the code. Anyone could quickly and easily clone the issue data, consume it, write alternative issue tracking interfaces, which then start accepting git pushes of issue updates and syncing all around. That would have quickly became the de-facto distributed issue tracking data format.
Instead, Github stuck it in a database, with a rate-limited API, and while this probably had as much to do with expediency, and a certain centralized mindset, as intentional lock-in at first, it's now become such good lock-in that Microsoft felt Github was worth $7 billion.
Posted Jun 7, 2018 14:50 UTC (Thu)
by mattdm (subscriber, #18)
[Link]
If you like this, please consider helping build Pagure, git forge software built around this idea. "Easy fix" tickets here: https://pagure.io/pagure/issues?status=Open&tags=easyfix
Posted Jun 7, 2018 17:42 UTC (Thu)
by dw (subscriber, #12017)
[Link] (7 responses)
The idea of stashing everything in Git is a great one, and of course it occurred to more than just the comment author, however if you explore this space even slightly, it's clear that stuffing everything in a DB *is much simpler* than giving control of a set of complex interlinked structures to end-users who can barely work a Git desktop interface at the best of times, all while somehow keeping a best-in-class project management UI in sync with whatever atrocities the users unleash behind the scenes.
If I use 'git rebase' to modify a far right-leaning issue comment's author to Linus Torvalds, what should show up in the UI? Should I have the right to purge comments from the UI at leisure? Should the purges be tracked historically somewhere? (In a DB? In Git.. again?) Can I do a pull request for a change to a project's tickets? But a pull request is a type of ticket!
Of course the simplest explanation is also the cheapest, most crowdpleasing and most paranoid one, and I'm very sad to see it repeated in LWN.
Posted Jun 7, 2018 17:53 UTC (Thu)
by dw (subscriber, #12017)
[Link] (4 responses)
Posted Jun 7, 2018 18:48 UTC (Thu)
by joey (guest, #328)
[Link] (2 responses)
And then, most developers are not involved with a single software project. It's not uncommon to have dozens of dependencies you want to keep an eye on or are tangentially involved with in your work on a single project. Out of all your other projects.
12 hours to check something out is not fertile ground for a distributed ecosystem to develop: As evidence see the lack of such an ecosystem.
Posted Jun 7, 2018 19:24 UTC (Thu)
by dw (subscriber, #12017)
[Link]
Seems that wasn't any time recently:
- https://developer.github.com/v3/issues/comments/#list-com...
> 12 hours to check something out is not fertile ground for a distributed ecosystem to develop
To be clear it was 12 hours to sync 40k tickets and then per the APIs above, O(changes) thereafter.
Posted Jun 8, 2018 9:31 UTC (Fri)
by jwilk (subscriber, #63328)
[Link]
You shouldn't back up forks. It wasn't submitted upstream == it doesn't exist.
Also, anybody can make a fork and fill it with garbage. If you're backing up all forks blindly (like github-backup does by default), you're susceptible to DoS.
Posted Jun 7, 2018 19:55 UTC (Thu)
by excors (subscriber, #95769)
[Link]
https://docs.gitlab.com/ee/user/project/import/github.html makes it look straightforward to copy data from GitHub anyway, so their choice to not implement issue tracking with an awkward and inefficient form of database (i.e. something layered on Git) doesn't seem to be a significant obstacle to getting your data out.
Posted Jun 7, 2018 23:54 UTC (Thu)
by rahulsundaram (subscriber, #21946)
[Link]
Pagure is sponsored by Red Hat, used extensively by Fedora and was strongly considered by Debian and it works this way.
Posted Jun 8, 2018 21:35 UTC (Fri)
by jhhaller (guest, #56103)
[Link]
Posted Jun 7, 2018 17:47 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link]
This data just needs to be accessible for export.
"Is that data stored in a git repository?"
Re: Joey Hess
Re: Joey Hess
rate limited API
rate limited API
- https://developer.github.com/v3/issues/events/#list-event...
rate limited API
Re: Joey Hess
Re: Joey Hess
See Note-db, which is how Gerrit stores almost all data in git since release 2.15. Only the reviewed flag is stored in a database, for performance reasons. While Gerrit doesn't have an issue system, it does have user accounts and code review records, all of which are stored in Git. While some information has external indices for performance, the primary data is still in git. Gerrit is used in a number of high-profile projects, including OpenStack, Eclipse, and Android. Not all Gerrit instances have completely migrated from the older database, but support for the external database will be removed in the 3.0 release.
Re: Joey Hess
Development quotes of the week