GitHub alternatives for Bitcoin Core - bitcoin-core/bitcoin-devwiki GitHub Wiki
Motivation
Basic Usability Issues
Overall Unreliability
GitHub makes comments in long threads inaccessible via it's site. https://twitter.com/jfnewbery/status/1354744697093283847
The comments need to be recovered manually from past emails or metadata dumps.
It was also observed that complete issues or pull requests simply disappeared without notice.
Spam/Lack of Moderator Queue
The repo has thousands of subscribers, so any spam contribution or otherwise inappropriate comment will reach all those inboxes before being deleted by a maintainer.
GitHub fails to provide simple and effective tools (such as rate limits for non-members or a moderator queue) to fight low-quality content.
https://twitter.com/MarcoFalke/status/1355097159113322497
Others
https://github.com/bitcoin/bitcoin/issues/15847 | Feedback for GitHub CEO · Issue #15847 · bitcoin/bitcoin · GitHub
https://github.com/bitcoin/bitcoin/issues/20227 | Dependency on GitHub · Issue #20227 · bitcoin/bitcoin · GitHub
Centralization/Single Point of Failure
The repo is primarily accessed through GitHub, which might (even against their will) shut down hosting at any point in time.
Instead of hopping to another centralized provider or self-hosted single point of failure, a goal should be to evaluate decentralized or federated hosters. See also:
- https://github.com/bitcoin/bitcoin/issues/13411 (Moving to self-hosted issue and patch management)
- https://github.com/bitcoin/bitcoin/issues/16472 (Github started banning/restricting whole countries)
Alternatives
Evaluation Scheme
- How does it integrate with CI?
- Does it have feature-parity with GitHub reviews (e.g. resolving inline review comments)?
- How is the "sign-up" handled?
- How is spam dealt with?
- How well-maintained are they?
- Who deals with the hardware/software stack, if self-hosted (Anti-DoS, sysadmin stuff, ...)
Possible alternatives:
"Decentralized"
- git-appraise
- Radicle
- git-bug
- bugs-everywhere
- Darcs
- pijul (a modern alternative to Darcs)
Self-hosted
Repository Backups and Tooling
To preserve the development history and to enable migration to an alterative if needed, some contributors keep backups of the repository metadata. Where possible, contributors are encouraged to use these backups before there is an urgent need. This helps, for example, to detect data inconsistencies.
zw's metadata backup (incremental)
The GitHub user zw has a bitcoin/bitcoin pull-request and issue backup in zw/bitcoin-gh-meta. This is produced with the zw/ghrip perl script (last modified in 2015). Likely due to changes in the GitHub API, the backups are incomplete.
achow101's GitHub-DL: The GitHub Repo Full Downloader (non-incremental)
The github-dl tool downloads an entire GitHub repository and it's metadata. Due to GitHub's API rate-limiting, a backup of bitcoin/bitcoin can take more than a day.
0xB10C's metadata backups (incremental) and mirroring
On mirror.b10c.me, 0xB10C hosts backups and mirroring of Bitcoin Core related issue and pull-request. The backups are made using github-metadata-backup and mirrored with github-metadata-mirror. The backups are also pushed to GitHub (duh) and GitLab:
- https://github.com/bitcoin-data/github-metadata-backup-bitcoin-bitcoin
- https://github.com/bitcoin-data/github-metadata-backup-bitcoin-core-secp256k1
- https://github.com/bitcoin-data/github-metadata-backup-bitcoin-core-gui
- https://github.com/bitcoin-data/github-metadata-backup-bitcoin-bips
- https://gitlab.com/0xb10c/github-metadata-backup-bitcoin-core-gui
- https://gitlab.com/0xb10c/github-metadata-backup-bitcoin-core-secp256k1
- https://gitlab.com/0xb10c/github-metadata-backup-bitcoin-bips
- https://gitlab.com/0xb10c/github-metadata-backup-bitcoin-bitcoin