--- layout: post status: PUBLISHED published: true title: 'Merging Lotus Symphony: Allegro moderato' id: 60c512d7-4275-493d-bc28-8c217f85fcca date: '2013-01-21 16:40:35 -0500' categories: ooo tags: [] permalink: OOo/entry/merging_lotus_symphony_allegro_moderato ---

April 8, 1926

The house lights flash; Please take your seats.  The symphony is about to begin.

Apache OpenOffice will soon have some new features and other
improvements, courtesy of IBM and their Lotus Symphony effort.  Interoperability, performance, accessibility improvements, as well as exciting new user interface elements are in the works.  Read on to
learn how the Apache OpenOffice volunteer community is doing this, and how this will benefit users of OpenOffice as well as developers who build upon OpenOffice.

Movement I:  The Contribution.

IBM Lotus Symphony is an IBM licensed derivative of OpenOffice, offered at no charge, which IBM enhanced for their customer and corporate use.   Symphony was developed with OpenOffice.org technology, essentially a fork of OpenOffice.  Last May IBM decided to end that fork and combine their development effort with the Apache OpenOffice project.  IBM contributed the source code for Symphony to Apache, via a Software Grant Agreement (SGA).   (An SGA is an agreement by which a code base developed outside of Apache is contributed to Apache under specified licensing terms.)  Since the areas that IBM improved Symphony are also areas of interest for OpenOffice users, and for 3rd party products based on OpenOffice, the Apache OpenOffice project was glad to receive this contribution.

Once the Symphony contribution was received and checked into the Apache OpenOffice version control, the discussion to determine the best way to use this new code.  The two primary options discussed on our mailing list were:

  1. Make the Symphony code the new base for Apache OpenOffice.  Then merge back into Symphony the code improvements that had been made in Apache OpenOffice 3.4.
  2. Continue with the existing Apache OpenOffice 3.4 as the base and merge features from Symphony into that code.

There were good arguments for either approach, and we had a spirited discussion.   The main points were:

In the end the consensus was to go with the 2nd option, merging Symphony code into OpenOffice.   This brings the Symphony code, feature by feature, bug fix by bug fix, into OpenOffice, where it is integrated, tested, reviewed, etc., in smaller chunks, as it works its way toward release.  Doing it this way is less flashy.  There is no 'big bang integration" where everything happens at once.  But that was the point, to avoid the disruptions of a radical change in the code base.

Work on the "slow merge" has been ongoing since last summer, in parallel with work on Apache OpenOffice 3.4.1.  Our use of Apache Subversion facilitated this kind of parallel development, where one group focused on the 3.4.1 release in a "branch", another group of developers started to bring Symphony enhancements into the "trunk".

Movement II:  Many Bug Fixes

Expect to see a lot of bug fixes in Apache OpenOffice 4.0, especially in the area of Microsoft interoperability.  The Symphony team reviewed their IBM bug reports from Symphony and pulled out the most important ones that were already fixed in Symphony.  They then tested Apache OpenOffice, to see which of these bugs still existed in OpenOffice.  For the ones that still were in OpenOffice, they merged in the fix from Symphony.  This was a very efficient approach to a targeted merge and led to many fixes, include the following so far (and we're still months away from release):

 On our wiki you can see a visual "before & after" look and some of these fixes.

Movement III:  New Features

Of course, a long list of bug fixes is impressive, but what about new features?   Symphony brings those as well.  A large one is a user interface addition of a "Task Pane".  Since a Task Pane is continuously available, it can greatly improve productivity with some repetitive operations.  Symphony had one version of this feature, but we're not just doing a literal copy of that UI, since grafting a UI of one application onto another is rarely successful.  So we're reviewing several variations on a Task Pane design, which you can see on our wiki.  Coding for this feature is ongoing in a branch.

Symphony had a nice collection of clipart and themes, and we're bringing those into OpenOffice.

IAccesible2 is an interface used by "assistive technologies" (screen readers, etc.) to help persons with disabilities use desktop applications.  We're bringing the IAccesible2 support from Symphony into OpenOffice.   Coding for this feature is also ongoing in a branch.

Movement IV:  più allegro, anyone?

That's a summary of what Symphony is bringing to Apache OpenOffice 4.0 and beyond.  Users of OpenOffice will benefit from these enhancements, of course.  But so will other products, based on Apache OpenOffice, as they build their solutions on top of Apache OpenOffice, or selectively copy functionality from our releases. 

When exactly will Apache OpenOffice 4.0 be released?  We don't have a date set yet, but we think it will be before mid-year.  As a volunteer-led open source project we rely on our volunteers to set the direction and pace of the work.  We welcome help in any of these areas, from developers of course, but also from associated project functions, like QA, design, documentation, translation, marketing, etc.  If you are interested in volunteering with the Apache OpenOffice project, please read our "Getting Involved" page. With your help we can go even faster!