Goals of Galapagos - Galapagos-Linux/main GitHub Wiki

Outline

The goals I have in mind for Galapagos (though I don't wish to impose too much order, but that may be due to the fact I'm a Discordian) are pretty easily summed up.

Galapagos is mostly what Gentoo aims for

Although some changes are radical, Gentoo aims to be a useful metadistribution. This also means a lot of "hard decisions" are left to users rather than the distribution itself. I have no desire to change that.

A lot of GLEP's should probably be adopted into Galapagos, but some are not applicable to us (or should be dropped). Galapagos aims to follow PMS and will use Portage for the forseeable future.

Galapagos simply aims to repair Gentoo's problems, not throw out the baby with the bathwater.

Don't be a dick - aka, no assholes

I want this to be a project mantra. The only thing that matters in Galapagos is your contributions and content of your character, nothing else. Everyone will be treated with the same respect owed to them. Everyone has their own dignity (a desire for to be respected and acknowledged), and this must be taken into account in all interactions. Always remember that no one in the project except the actively malicious wants to bring down Galapagos, or destroy the distribution, but rather improve it.

If you don't like someone, don't make it into a vendetta, unless they are being a genuine dick or passive-aggressive (but that goes against the rule of not being a dick anyway). It is natural that there will be people you don't like in the project. That's just the nature of it all. There may be some people a little abrasive at times or say things they regret; that's okay. What isn't okay is a consistent pattern of being rude to people that, most of the time, leaves people feeling worse than when they first came into the conversation.

Assholes create a hidden drain on the project and lead to a few people doing all the work as people leave or get put off from joining. This rule should be the most important. See this talk by a former Gentoo dev.

Flat project structure

I have no desire to impose a specific structure on the project, but understand that one has to be chosen. However, I do not believe in project leads. Gentoo is not a business. Gentoo is a distribution. We are all volunteers and no one gets to tell anyone else what to do, although what is and is not allowed is determined by the distribution itself. Galapagos should be run accordingly.

So, remove the pointless middle management that contributes to Gentoo's organisational inertia. No more project leads. Projects will still exist, and there will obviously be rules (everything has rules, even the universe, get used to it), but they will be run in a egalitarian manner with low intervention from whatever equivalent of council we come up with. Each element of bureaucracy we add equals overhead. More overhead is less code written.

This goes in hand with...

Consensus based decision making

My experience with Wikipedia shows consensus-based decision making works well as a system, if people wilfully cooperate. So long as people act within a framework of rules, this decision making process will work just fine for Galapagos. Obviously, there may be some actions from council, but they should be extremely rare and limited to "we're in legal trouble" or settling disputes where no consensus can be reached (but is necessary) rather than the strong-arm of council in Gentoo as it stands. If you can't think of a reason to have that as a backstop ("these situations should never come up"), you've already got the right idea and why having a backstop will be harmless in most cases (rather than a pill you'll have to take after the fact, like most of Gentoo's organisational creep).

Purge obsolete/dead packages from the tree

Gentoo has a lot of old packages that need to be removed. I already covered the procedure in the constitution. Repoman scans should be performed, as well as checking old CVS commit logs to see when packages were last updated (and if they're essential).

Automated QA

Gentoo has some automated QA infrastructure, but I would like to go above and beyond. mgorny has advocated for this for years, but has encountered enormous resistance because a lot of devs have no desire to clean up their act (or think repoman is stupid, shame on them). The tree should have regular repoman scans, and the results published online for all to see.

There should be regular bots that flag packages that have had no updates for multiple years. This may require some digging in the old gx86 repo.

Automation (or semi-automation) of tedious tasks

I believe certain tasks like purging packages from the tree should be semi-automated. Simple EAPI bumps could be done in a semi-automated fashion as well.

No bums

Gentoo has an undertakers policy that's pretty much never enforced. If you don't commit in 6 months without going away, you should be removed. Same with the infrastructure team, who are notorious in Gentoo for doing things like letting mirrorstats rot for two years.

Anyone who doesn't participate in a project for that period of time should also be removed. People who join a project simply to have a voice at the table and don't contribute shouldn't be part of that project. Gentoo has a big problem with the latter especially.

For now, use Gentoo as upstream

Gentoo has most of the devs right now. That is a fact we can't ignore, and we should take advantage of the nature of open source and use that to our advantage. Funtoo uses Gentoo as an upstream for this reason. We will continue to do so for now, but our changes will take precedence. git merge is a wonderful thing.

Bearing in mind...

Be cordial to Gentoo upstream

No matter how salty you are about Gentoo, there is a lot to be said about not biting the hand that feeds us or maintaining good relations with our upstream. That doesn't mean not encouraging devs to join us, but that does mean contributing things to upstream where possible (like bugfixes). This also means that changes proposed to PMS need to be cleared through them.