02 Aug 2006

ebuild quality


Another week, another two flamewars on gentoo-dev.

This week, it is about gentoo-sunrise and a dev quitting because he disagrees with gentoo-sunrise being an officially recognised project.

You could say that I'm in the camp that thinks this is a good step in the right direction for Gentoo, since I support overlays. However, I have not read enough of the gentoo-sunrise manifesto (if they have one) or project aims and implementation to comment on whether I support it fully. What I will do is present some of the points that technical points between the two camps:

Those in favor of the gentoo-sunrise project:

1. Gets users involved with development
2. Allows users to get feedback on ebuilds outside of bugzilla.
3. Spotting of potential devs.
4. Allowing users to proxy maintain ebuilds which might be hardware specific that a dev does not have.

Those not in favour of gentoo-sunrise project:

1. Users ebuilds are generally of lower quality than is accepted into Gentoo.
2. Creates confusion in bugzilla when experimental ebuilds are used and not reported (eg. GNOME vs BMG in the days when I still was involved with Gentoo GNOME).
3. Questions about the standard of review that goes into ebuilds that are marked "reviewed" in gentoo-sunrise.

What I see if the benefit of something like this, is giving an accessible home to ebuilds where no developer has the time or desire to fix/test/integrate an ebuild into mainline portage. The problem is that, most of the time, ebuilds in bugzilla isn't just a matter of cvs add, repoman commit, alot of testing and assurances need to be met.

1. 50% of the submitted ebuilds I see have incorrect or insufficient DEPENDs that need to be fixed before going into portage.
2. Stylistic checks, such as spacing, patching things in src_unpack, making sure FEATURES="test" work, etc. All of this takes a non-trivial amount of time.
3. I always ask, will I use this? If out of a scale of 5, I give anything less than a 4, then I do not touch it. If I will not use it, then I am doing a disservice to the potential users for committing this.

Even though I say a certain percentage of ebuilds are not of the standard that should be in portage (and believe me, there is no shortage of bad ebuilds in portage already), I believe it is wrong to just brush all user submitted ebuilds with the same brush and just say that they all suck.

All devs remember the time when they screwed up a dependency, forgot to attach a patch, keyworded something directly to stable. Don't lie to me, we've all done something that broke an ebuild and then get a bug report saying, "hey, did you just misspell src_compile?"

If we do not give users (and potential devs) feedback, how will they ever learn? Just like how we get feedback from dedicated users who give their time up to report bugs to us, why should we be so opposed to supporting a mechanism where by they can themselves put their work up for review.

How many steps does it take for an enthusiastic user right now to grab an ebuild of bugzilla for a package that they want to install that is not in portage, and then put it in their overlay, and then emerge it? Too many to count.

How many steps will it take for an enthusiastic user using gentoo-sunrise to grab an ebuild of a package that they want to install and emerge it? Probably two steps ('layman -a sunrise', 'emerge package name'). And if they find a bug, well, ok, gentoo-sunrise needs to get that sorted out (if they haven't already).

Anyway, my point really is that, we shouldn't discount user submitted ebuilds offhand, people who contribute are not dumb. All the devs right now started off from that point. I think either overlays, or the subset, gentoo-sunrise, is a step towards a better community distribution.


You can reply to me about this on Twitter: