Doing the right thing by default, or why RPM and Fedora are doomed
It’s a fairly well known fact that getting a package into Fedora requires passing our review process. This review is intended to increase package quality. Thus I personally suspect the thinking here might be “zero package > slightly disconforming package”. I would put greater faith in our ability to fix things up after release, at least that seems to be the case for Fedora as a distribution. We constantly improve as errors are spotted in other areas, I don’t see the big deal with regards to loosing the rules a tad and relying on the same process to help us correct minor mishaps after release. At least then the piece of software will be in Fedora instead of not at all.
A lot of our checks though are all wrong, checking for .la and .a files. Why is the default not to delete these and not require additional code? The amount of packages that truly need these is probably lower than the amount where we need to insert error prone cut and pasted code to fix it. There are many other such examples, we pick bad defaults. Worse still instead of starting to picking good default and making them easily overridable for the cases where the default fails, we make tools to help automate our insane review rules. While better than doing it by hand and thus increasing this massive, feature and contributor hampering bottleneck this is still a sign of profound sickness.
The ruleset is ever increasing and confusing. They contain nearly no information on how to perform the checks leaving package reviewing as an art for a few ninjas and instead of helping school new reviewers we decrease the pool contantly. I am e.g. currently probably the only one reviewing Mono packages for Fedora, I admittedly stopped caring greatly about performing a full review. Simply because I don’t see the point, the alternative is letting the package sit unloved in the review queue, nobody else cares about this specific area or feels they have the expertise to do such reviews. I am sure there are a multitude of areas in Fedora that suffers the same issues or will in the near future. I feel that a slightly non-conforming package serve our users better than no package at all. We forget that we are a gateway to software, additionally nothing at all prevents a maintainer from putting in bad spec code the second after it’s reviewed. Thus the options are reduced to contrinual mandatory manual re-reviews or doing the right thing by default where we can. The latter is called Conary, look at a conary reciepe and try to disagree, it’s clearer code and more importantly it’s less code.
This ever increasing mount of beaucracy is drowning Fedora and making it absolutely no fun to contribute to. I realise the intentions are good but I feel that they are misplaced. The quest for the perfect error free package within the current framework is impossible, adding more rules is merely pushing our current reviewing ressources harder till they break. There needs to be less work and fewer rules on both sides of the table when it comes to getting your work into Fedora. It’s possible, Conary shows us that much.