*This is to announce the creation of the GitGnext project*
The GitGnext project is about creating a center for Free Software, providing a nexus which will be more attractive than GitHub.
Yes, this means desired features and user-friendlyness, but the primary motivation is to move Free Software away from GitHub.
Note, GitHub has some serious weaknesses:
#1 would be its problem with state censorship.
#2 would be its ownership by Microsoft itself, and all of the implications there.
At this point I have pretty much done the basic research and decided on a technical solution: The project will be based upon the Flask web framework, utilizing Postgresql ltrees. Ltrees is a very powerful database feature for tree-like data, and seems perfect for our application:
http://www.pinnsg.com/modeling-hierarchical-data-postgres/
In order to handle the creation of new git projects, updates and retrievals spanning numbers of tables at a time in a logical and transactional manner I have chosen to use SQLAlchemy as an ORM working with Postgresql. And Flask provides very powerful templating options, including Python callbacks!
The goal for the future is a (limited) distributed architecture. I see at least five important reasons to aim for a distributed git repository:
1. Technical to distribute the I/O and CPU load.
2. Technical to cover the problem of a single point of failure (such as a ddos attack).
3. Economic - no one site or site operator would have to sustain a gargantuan datacenter.
4. Political - no one country could censor the content of the repository.
5. Institutional no one internal entity could completely control the entire repository.
Fortunately, PostgreSQL 10 has come-up with a feature called Logical Replication, through which we can perform database/object level replication across hosts. We will probably utilize that.
Therefore I have set up this project repository for GitGnext on Notabug. Development has just now started, and everything here will be very fluid for some time. Do not use these files yet, because they are definitely not ready for use.