[BusyBox] Improving Our Development Process

Mark Whitley markw at lineo.com
Tue Jan 23 22:13:04 UTC 2001


On Tue, Jan 23, 2001 at 01:04:22PM +0300, Vladimir N. Oleynik wrote:
> Erik Andersen wrote:
> 
> > Done -- though I won't delete wget and the other netkit-tiny apps 
> > from busybox till the next release.  I should probably drop i a
> > #warning in each of these files stating they will be going away...
> 
> 
> It is possible to learn the reason of such persevering requirement? 
> This strongly will lower speed of work on projects as a whole, 
> will demand duplication of a code (utils.c). I at all do not see
> problems at use expanded joint Config.h, it is enough to add any prefix
> for indication network or login-utilities, but in uniform busybox.

And then, On Wed, Jan 24, 2001 at 08:43:30AM +1300, Alex King wrote:
> 
> I also wonder about code which is shared between bb and netkit-tiny.
> One solution would be a shared lib for utilities.c, but this would be
> a bit over the top.
> 
> Is it possible to keep the codebase together and just build two
> separate binaries, or have an option to build them as one binary?
> What disadvantage would there be in doing this?

Okay, gang, the time has come for an explanation about the whole netkit-tiny
seperation plan:

There were a few reasons offered originally, like being able to suid
netkit-tiny while not having to do the same for busybox, but Alex makes the
very good point that we could simply build two executables from the same
codebase. Alex (and others before him) futher make a good point that splitting
up the apps would cause some redundancy in shared code (i.e. utility.c) which
could lead to further maintenance burdens (somebody fixes a bug in busybox
utility.c, but doesn't fix it in netkit-tiny utility.c, etc.). One could also
argue that the applets should be kept together so people using it can decide
for themselves what they want to compile into however many executables they
want.

In short, there is no technical reason why networking apps *can't* stay in
busybox, and in fact there are some pretty good reasons for keeping all the
applets in one codebase. I went and asked Erik about this (seeing as how he
sits right next to me and isn't on the road this week), and he said that the
biggest reason for splitting up busybox is to make life a little easier on
him, cuz maintaining busybox is a big job, one that consumes a lot of his time
(and he already has a full-time job).

That's the real reason.

In talking with Erik, I made the observation that even if the network applets
get split off, the total number of applets in busybox is only going to
continue to rise, the amount of traffic on the mailing list is only going to
get heavier, and the patches in his patch queue (i.e. his inbox) are only
going to increase. Hence, the split is a good short-term solution, but not a
good long term one. (And, as Alex and others have observed, the split could
actually make things more difficult for a variety of technical reasons.)

Along these same lines, another problem we have observed is the following: 1)
somebody submits a patch to the mailing list, 2) it gets ignored / lost, 3) it
never gets into CVS. This has made some developers on the mailing list feel
neglected; understandably so.

So, we sat and brainstormed and came up with several solutions, which we
believe will be good, long-term ways of improving our development process.

 - Get other developers at Lineo to help out more (i.e. myself and others in
   my department), especially when Erik is on the road.

 - Invite folks on the mailing list to get CVS commit privileges. This way,
   you don't have to wait for anyone else to commit your patch, you can just
   do it yourself. If you feel you're qualified to be a committer, please ask
   us; there's a real high chance that we'll give you commit privs.
   (Personally, I think there are lots of folks on the mailing list who
   can/should be committers.) BTW, note to all of our current committers: we
   love you guys, you're great.

 - Invite people to take ownership of applets. Many of the applet files have
   "Originally Written by" or "Stolen From" lines at the top, which are very
   necessary (giving credit where it's due), but ideally what we'd like to see
   is a line in each file that says "Maintainer: [name] [email]".  That way,
   when somebody has a patch for a particular applet, they know exactly who to
   contact. It would really help ease Erik's load if we can have all the
   maintainers be committers. Anybody who is the original author of an applet
   gets first dibs on being the maintainer.

 - Encourage everyone to submit patches to the bug-tracking system.
   Unfortunately, patches sent to the mailing list get lost / ignored
   sometimes. Using the bug system is a good way to ensure that your patch
   will be tracked. Please be sure to include the word 'PATCH' in the subject
   line somewhere, so it stands out. Mark it with a severity of 'Normal' or
   higher if it's fixing a bug, or 'Wishlist' if it's a patch to add a feature
   or a new applet. (If you've never seen/used the bug-tracking system, check
   out http://bugs.lineo.com).


(While I'm on the topic of the bug system, we need to figure out why the web
interface isn't updating properly. Does anybody out there have any experience
using debbugs (ver 2.3-1)?  We have a cron job that calls 'processall' and
'html-control', but the web interface never updates. The only way we can get
the scripts to run is to ssh into busybox.net, su to debbugs and run the
scripts by hand. It's frustrating. If anybody's got any suggestions, we're a
big pile of ears over here.)

If anyone has any further ideas on how we can "spread the load" a little
better, please propose it. If everyone else can help shoulder the burden just
a little bit, Erik's shoulders will feel a lot lighter. :-)

We're even willing to reconsider the netkit-tiny split. If anyone has strong
feelings for/against the split, please make your argument on the mailing list
so we can get all the pros/cons out on the table.


We semi-modestly think that the busybox codebase is GoodStuff(tm), and we're
pleased to see that so many people enjoy using it / hacking on it. Our
infrastructure and our process for getting patches in, could use some work,
however. Hence, this "call for help". To summarize, we're asking you all to:

 - Please ask us for commit privileges if you feel you're qualified
 - Please step up to the plate and take ownership of some of the applets
 - Please send patches to the bug-tracking system so they don't get lost
 - Please suggest ideas on how we can improve our infrastructure
 - Please forgive us if we drop the ball sometimes


Thanks, gang.


Mark Whitley
markw at lineo.com





More information about the busybox mailing list