[desktop-discuss] Next JDS Desktop release for OpenSolaris

Glynn Foster Glynn.Foster at Sun.COM
Mon Dec 19 09:02:59 PST 2005


Hey,

On Mon, 2005-12-19 at 12:24 +0000, karlg wrote:
> We now plan to move the JDS Desktop to a develop to HEAD model. The next release
> will be based on GNOME 2.14. Development will coincide with the GNOME 2.14
> development process.

In case anyone doesn't know what the develop to HEAD model means, it's
basically we're going to stick as close to community upstream
development as possible regardless of what happens in terms of Nevada
integration. In source code management terms, HEAD [or trunk] will
always point to the latest and greatest releases from the upstream
community [1].

I've attached a document that I wrote up a while ago that was the basis
for discussion on what this means across all the different teams. It's a
pretty new and radical approach and it's going to take some time to
figure out - but I personally think it's a lot more exciting from a
community point of view that we'll be tracking what's happening upstream
a lot more [2].


Glynn

[1] There may be some exceptions to this rule. Since most of the current
    desktop components are based on GNOME, it's a pretty predictable 
    6 month release schedule. For other components like Thunderbird and
    Firefox we'll have a little thinking to do

[2] And no, I haven't thought about the consequences of Live Update for
    the Nevada builds - any ideas? :)
-------------- next part --------------
HEAD Development Model

[Wed 27th Jul, 2005]
Introduction

With the JDS team's recent re-organization into OPG, and in particular our focus on 
OpenSolaris, there is an emphasis on being able to change our development model and
processes for the greater gain. Not only that, there's also a priority to keep the
delta between JDS and upstream vanilla GNOME as small as possible.

Current Internal Development

Arguably we have a successful model, having now released 3 separate versions of
JDS. We currently take a released, and relatively stable community snapshot, and
perform productization internally to form JDS. Productization can roughly be divided
into the following areas -

  Normal bug fixes
     Bug fixes with the goal of increasing stability
  Feature patches
     Patches that, more often than not, are developed to enhance the user experience
  Documentation
     Provide full and more professional online user help
  Localization
     Provide full translations for our big 10 languages

Within those areas we should expect that most of the normal bug fixes, documentation
and localization have a higher probability of going upstream, than the feature patches.
That has been true to some extents but with a somewhat dated product [as JDS is
current based on GNOME 2.6] often those patches haven't gone upstream. With every
patch that hasn't gone upstream, we have increased the maintainership burden internally.
More harshly, those patches have failed - if they had any value, they would be already 
upstream. 

This could be perceived as a difference in approach from a product
point of view - needing to provide the 'value add' that our product management want,
and consequently making it an easier sell by marketing. Ultimately, this hurts the 
community that we leverage the code from - we bite the hand that feeds us.

A New Proposal

Simply put, develop to HEAD. Change our development processes so that we do as 
much of the high maintenance work on HEAD, then productize later. By productize
I mean fix only very high priority bugs, and some simple branding.

So what does that really mean? Well, we need to change our development processes 
to sync in with the community better. They are on a 6 monthly time based release 
cycle, which while doesn't certainly make things very easy, it makes it 
predictable. This isn't just development from a code perspective - it has much 
wider reaching aims -

  QA to HEAD
     This helps us see the stability of the code that will eventually make it 
     into our productized sources. If we can do as much of that work ahead of 
     time, it'll make things easier later on - not only in terms of schedules
  Fix all bugs in HEAD
     If we can continuously monitor the stability of HEAD as above, then 
     it's easier to fix bugs well ahead of time. Obviously we may have high 
     priority bugs from customers that we will have to fix locally and 
     backport to various releases - this is unavoidable with any development
     process, but we should aim to minimize it
  Feature develop to HEAD
     If we develop all our features to HEAD, then we don't have to worry 
     about trying to get it upstream later. This guarantees us no heavy 
     maintenance on features going forward
  Localize to HEAD
     If we can do the majority of work ahead of time, then like QA, our 
     schedules won't slip. If we're not happy with community translations,
     work with them rather than against them
  Document to HEAD
     If we feature develop to HEAD, and maintain a level of restraint with 
     our branding, then there is no reason that we can't work on documentation 
     within the community

This proposal doesn't intend to map out all the concrete details of how this can work.
Obviously there are quite some hurdles to work out - in terms of maximum benefit for
our time. Quite often, HEAD is a rapidly moving target, and we want to avoid wasting
effort as much as possible.

Benefits

There are a couple of benefits to gain from this proposal -

  o Less maintenance on our patch set
  o Opportunity to steer the community by being active
  o Better community trust in Sun
  o Less duplication of work
  o Potential for more reliable schedules


More information about the desktop-discuss mailing list