[U-Boot-Users] Changes to U-Boot Development Process

Wolfgang Denk
2007-01-17T21:24:47Z

Hello,

many of you know all too well that we have problems with the
development process of U-Boot. The biggest problem is that it takes
much too long until new contributed code finds it's way into the
public source code repository.

Switching from CVS to git helped a lot on the technical side. It was
especially important as it also opened the door for organizational
changes, which are urgently needed.

We've been discussion these issues for some time, and here is our
joint proposal. "We", that is mostly Detlev Zundel, Stefan Roese, and
me (Wolfgang Denk). Of course we also had input form many other
sources.

As this mail will propose quite a fundamental change for the U-Boot
project, please allow us to introduce it with a few short reflections
on the current state of affairs.

Being a regular reader of this list you will be well aware that even
with all the problems in the development process and some ugly areas
in the U-Boot code (like the #ifdef mazes) there is one important
feature: that's the quality of the U-Boot code base - being
highlighted quite well by the literal absence of temporary breakages
in the development code base. This alone allows for the well known
"use the latest code from the repository" answer when someone enters
the grounds of this project for the first time. It is well worth to
reflect on this quality for a little while.

Having done that we may well ask where this quality comes from? We
think that anybody reading this list only for a limited time will be
able to come up with the answer, namely the continuous maintenance
effort of Wolfgang and his modus operandi of personally reviewing
nearly each and every contribution in this multi-architecture project
supporting hundreds of boards. It should be obvious how important
such a level of code review is to keep U-Boot from falling into
disconnected pieces - just think of the effort to keep aspects of
U-Boot similar across all supported architectures.

But of course even Wolfgang only has 24 hours per day, and the
positive effect of this maintenance mode has shrunk continuously in
comparison to the downside of the embarassingly long backlog of
patches posted on this mailing list waiting to be processed,
rendering new lines of development very difficult to say the least.

So the time is more than ripe to change this while explicitely trying
to keep the quality of the project on the high grounds that we
brazenly claim for it :)

Gladly there are other projects in the F/OSS community that are worth
taking a peek at to snatch a hint or two on how we can tackle this
task.

Considering all this we propose a change in maintaining the U-Boot
code base to a model similar to what is currently being done with the
Linux kernel, namely we would like to establish a community of
"custodian" maintainers, responsible for certain sub-systems,
aspects, architectures, or board families of the U-Boot source tree.

We would like to follow the Linux precedent by assembling a list of
people willing to invest time and effort into this; the already
existing MAINTAINERS file will serve a new function to list the
individual custodians with their corresponding area of responsibilty
and contact information.

Each custodian will have to administrate his or her git tree to
streamline transparent development and integration (pulling) into the
"official" U-Boot repository. If the need should arise (for example,
if a custodian doesn't have convenient means to host it himself),
DENX will of course be glad to host such trees.

The stated goal of this change of course is to spread the burden of
maintaining U-Boot to more shoulders so we can hopefully dramatically
cut down on the current lag between a patch being proposed on the
mailing list and being processed - be that accepting, rejecting or
openly discussing it with the community.

As you must have realized by now, this cannot be done without the
community participating, so what do you think of this idea? Any
comments or suggestions?

Of course we should be honest right upfront and state that as a
custodian you would be fully responsible for "your" part of the
U-Boot source tree and it is unfortunately necessary, that you are
able to commit to a certain amount of time and willingness to discuss
topics on the mailing list for this maintenance.

Do we have an immediate line of volunteers raising in the first row?

Skimming through the archives we came up with a list of people which
the U-Boot project already is indebted to and probably being good
candidates for custodians. Of course this list cannot and does not
want to be a "credits" list of all the valuable people having
contributed, so please don't attribute anything else to it as being a
starting point for this new maintenance mode. Also there are multiple
suggestions where ultimately of course we would like the community to
decide.

So with all these precautions in place, here we go:

ARM architecture Richard Woodruff, Peter Pearse
AVR32 architecture Haavard Skinnemoen
Blackfin architecture Aubrey Li
Intel IXP architecture Stefan Roese
ColdFire architecture Stefan Roese
Microblaze architecture Michal Simek
MIPS architecture Rodolfo Giometti, Andrew Dyer
MPC83xx architecture Kim Phillips
MPC85xx architecture Jon Loelinger
MPC86xx architecture Jon Loelinger
MPC8xx architecture Wolfgang Denk
NIOS(2) Scott McNutt
PPC4xx architecture Stefan Roese

CFI FLASH driver Tolunay Orkun
NAND FLASH subsystem Ladislav Michl, Stefan Roese
USB drivers Markus Klotzb?cher

So thanks for bearing with us through this longwinded mail that
hopefully starts to pave the way to a new level of quality and extent
of the U-Boot project that is only possibly through its very active
community - you!

Best regards,

Wolfgang Denk, Stefan Roese, Detlev Zundel