Re: Let's ROCK
Stefan Fiedler <[email protected]> Thu, 25 May 2006 23:25:20 +0200
| Newsgroups | gmane.linux.distributions.rock.devel |
|---|---|
| Message-ID | <[email protected]> |
Am Donnerstag, 25. Mai 2006 10:04 schrieb Dave Fancella: > All, > ... > I'm more interested in community merits than technical merits. Not that I > ignore technical merits, but for most projects, and definitely one the size > of rock, the community is all important, since I'm looking to join that > community. I'm finding the level of help available and the quality of that > help to be very good, and I'm very grateful for it. I've managed to > achieve most of my goals so far checking out rock, the only one I'm waiting > for depends on a finished build of target crystal, which is in progress as > I write this. And for that I'll have to be on my own, away from the irc > channel. > btw. it's really easy to test ISO images with qemu (and not _that_ slow :) ... > I have to say, for something the size of ROCK, having only 3 developers > with commit access might be a dealbreaker for me. The whole purpose of > SCM, svn in particular, is to enable many *many* developers to work > simultaneously on a project. I don't know what the goal of this SubMaster > thing is, it sure looks neat, but from where I'm standing it doesn't look > like a functional replacement for developers with commit access. The > obvious conclusion there is that developers with commit access are a > bottleneck, and I've been around enough to feel confident in declaring that > even if I don't see direct evidence. The size of the project is enough to > justify that, all 3 developers would have to work on it full-time to keep > up with the amount of maintenance work needed, to say nothing of developing > for the future. Maybe you don't see it that way, that's fine. Diversity > is all about disagreeing peacefully, isn't it? And I can peacefully be on > my way if it turns out that's the best thing to do, or I can peacefully > remain if that's the best thing to do. I totally agree that having only a few developers with commit access can be a bottleneck, ROCK Linux has had these problems not long ago. With only one person with commit access, we had at peak times almost 200 patches waiting to be applied to trunk (this was also because this one person was severly ill at that time). What really made this situation difficult was to sort out duplicates, dependencies and conflicts between those patches. Benjamin (blindcoder) set up a community tree everyone had comit access to, which included all pending patches. This allowed to have those patches in a consistent state before they were applied to the real trunk. I spent almost a week writing a program that can detect duplicates, conflicts and dependencies between patches, so this tedious work could be automated. Why all this hassle if we could also give commit access to every developer? Certainly not because we believe in some enlightenend Linux gurus who always know better. I think the main reason is quality control through peer-review and test cycles: for changes to core parts of a software, it is usually a bad idea to commit them immediately. Instead you'd like to have them reviewed publicly to help find bugs and improvements. You'd also want to do some test builds and test runs to help find unforseen negative effects of changes. AFAIR, when I began using ROCK in 2004, everybody working on ROCK (including those with commit access) sent their patches to the rock-devel mailing list for peer-review. The stable and devel tree maintainers tested patches, against which there were no objections, in their reference builds, and applied them if there were no obvious errors,. Note that all patch submitters were (and still are) required to do basic tests with their patches (not a full reference build), or clearly mark their patches as untested. A full reference build, including most packages, btw. can easily take a few days - esp. when errors (introduced by changes) occur. So this was indeed a bottle-neck. It was also much work only to collect, test-apply and possibly fix all those patches, and keep track of them over a mailing list. Clifford eventually wrote SubMaster, which can do several things: it's a public, central patch repository that keeps track of all patches that have ever been uploaded; it offers public peer-review of and voting on patches; and it helps users, developers and maintainers to collect and use/test arbitrary sets of patches (called journals in SubMaster). During the Chemnitzer Linux Tage 2006, the attending ROCK developers (including me) agreed to have (for now) three persons with commit access for usual patches and one person for instant, security-related patches. We also generally agreed that: - all patches to core parts (like basic tools and packages) undergo public review (through SubMaster); - if there are no objections (contra votes) they are tested (in bootdisk and Crystal builds) and eventually applied. Security related patches are applied immediately. - Patches to non-core parts (most targets and packages) are applied if the respective maintainer votes pro, or when there are no objections (if that part is unmaintained). Note that the SubMaster server side was completely rewritten following CLT 2006, and e.g. automated commits for pro-voted, non-core patches don't work yet. But we really like to do it to share maintainance work and speed up development. ... > :) So the extensive use of shell scripting is a bad thing for me if any of > the following conditions apply: > > 1. The existing rock applications (mine, stone, etc) stay exactly as they > are, which is the cause of the rough-edged ui and would well prevent the > kind of customizations I'm wanting to make. It's relatively easy to replace or extend those applications, and it would also be possible (and a good idea) to make the type of package manager and installer a Config option. > > 2. You guys want to move to Perl or some other language that drives me > crazy and makes me have to take medication to deal with. Python isn't a > requirement, I can handle other languages and would be happy to learn a new > one, Perl and C are dealbreakers for me. The SubMaster server side, e.g. is written in WebSPL. For an introduction, see http://www.clifford.at/spl/ > > 3. You guys refuse to take Python anyway for core apps, for a reason such > as "This would cause parallel development of the same features, and we'd > like to do it this way instead". If that'd be the case we wouldn't have like 17 window managers in ROCK Linux ;-) You're very welcome to write replacements for core apps, or extend them. As long as I can decide which ones to use in my builds, that's jolly fine with me :) Cheers, Stefan Fiedler ... > Dave > > _______________________________________________ > rock-devel mailing list > [email protected] > http://www.rocklinux.net/mailman/listinfo/rock-devel