A Single Codebase

Sean Moss-Pultz sean at openmoko.com
Wed Mar 14 02:11:59 CET 2007


Dear Team,

This purpose of this email is to make it 100% clear that we _must_ have
only a single codebase and why. 

If you've read our Mokofesto (that's a play on the word Manifesto for
our non-native English speakers ;) then you read this:

        "In the open source world forks are considered negative. In
        commercial companies almost all projects start by a fork. We
        must always work from a single codebase. Fix issues at the
        source if they don't work for the particular product line you're
        working on. Never begin by taking a snapshot of OpenMoko and
        then developing your efforts in your own sandbox."
        
Forget about technical reasons for a minute, the _entire_ business model
around OpenMoko rests on us having a strong, stable, OPEN, codebase.
This is what attracts companies like Dash (and many others I can't name
yet...) They see incredible value in having an open, standardized base
platform to run the applications they want. 

The technical reasons are simple. We _must_ get the code we write and
the changes we make upstream (into the official sources). 

Let me give you all a simple example. Say you make a small change to
libgsm. You might think this works great. Even the 4 or 5 guys on your
local team seem to have no problems with this. So you keep these changes
locally and don't commit it back to the server. 

Harald's cranking on this stuff now. So are many people inside the
community. So their code and your code become different. 

   1) Your code my have simple errors that you've overlooked. It 
   happens to all of us!  

   2) It's going get more and more difficult to merge your code back as 
   time goes on. 

   3) The mainline has thousands of eyeballs looking at libgsm. You have
   (at most) 5. 

   4) If new features are added, you have to be really careful to make 
   sure A) you know what those features do and B) how they impact your 
   code changes. Both of which are potentially non-trivial.

I could go on and on but I don't think it's necessary. Please get your
code committed to our mainline as soon as possible. Talk about your
changes with our lists. And keep updating your local environments with
the latest server code. 

We _must_ stay in sync ;-)

-Sean




More information about the neo1973-hardware mailing list