'Merging Lotus Symphony: Allegro moderato'

Category: blog

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:

  • Using Symphony as the new base would have required careful review of that code base, and months of additional work to bring it up to Apache IP requirements.  Essentially we would need to redo much of the work we had already done with the OpenOffice code that Oracle had contributed via their SGA.  This would have been more disruptive to other, non-IBM, OpenOffice developers, but would have brought the distinguishing Symphony features to a release faster.
  • Merging Symphony features into OpenOffice would be less disruptive, but would be a slower path to integrating Symphony features, and would require more attention from IBM, since they know the Symphony code best.

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):

  • To open a sample file contains chart with large data source can lead to AOO crash
  • Application crashed if undo paste text from shape
  • Impress crashed when play screen show with sample file
  • Crash if undo redo creating data pilot from imported data
  • Application crash if insert sample file to section
  • Application crashed if undo/redo covert nest table to text
  • Undo redo insert file cause application crashed
  • User-definded format code is lost with a cell which value is TRUE or FALSE when importing xls file
  • Loading performance for xls file with row banded style is bad
  • Macro doesn't work if click "Undo" button
  • Chart data lost if the source data refers to a range name which is defined as a reference formula
  • Sample file's table border is missing
  • Page number in footer display incorrectly
  • Text is overlapped by the drawing object when open the .doc file
  • "Fit shape to text" property not work after openning ppt by AOO
  • It costs too much memory to open a large spreadsheet file containing pivot tables
  • Numbering will lose when saving or opening a ppt file
  • Color of underline display wrongly
  • Grid size for snake wipe transition too fine
  • Bookmark value changed when opening the doc file
  • Repeat count of animations ignored.
  • Fill color animations run too fast
  • Table changes to multiple shapes after saved in AOO
  • after save the sample file with page border and shadow to doc, the shadow depth and color changed
  • The graphic's spacing is not correct when open the .doc file
  • The graphic's border size and spacing is not correct when open the .doc file
  • Animation color is not exported correctly to PPT.
  • Number range variable filed shows in AOO
  • import of Microsoft Word document: indent of certain paragraphs in list is wrong
  • the text properties from table style are lost for table in the docx file
  • the background color from table style are lost for table in the docx file
  • Page number in footer alignment changed after saved
  • Shape Gradient MS2003 import/export Enhancement
  • Connector line does not shown correctly in grouped object
  • characters at the beginning of each lines in shape are lost when loading the sample ppt in AOO
  • disable antialiased lines for background hatches
  • Cell text direction changed after saved as doc file
  • Time format is different than MS Office
  • the text in textbox display paritially when opening .ppt file
  • After doc file saved by AOO, one more section is created
  • Doc file saved by AOO, section size changed
  • the text in the table turn to black from white when opening the pptx file
  • the background of the file create from template 'blue_floral.otp' changed after save as the ppt or pot file
  • Filter is not shown in merged cell
  • Need press "ESC" key twice to exist chart edit mode
  • Cannot modify the second document even if close range picker in first document
  • Pie chart height becomes greater when open Excel file
  • Ellipse shape display too large in MS office after save odp file to ppt format file
  • Formula GETPIVOTDATA returns #REF! value
  • The Emphasis or Exit or Motion Path effect can not play if there is an Entrance effect after it.
  • Picture missing when saving ODP file
  • Number displays different from MS with the same format code
  • TOC should not be updated if load doc in Writer
  • Placeholder in ppt file created by MS 2007 is lost if load in Impress
  • Text outside quotation cannot be paste in cell
  • Cannot open sample file
  • Application crashed if undo add caption to drawing object
  • Underline "_" can not work with ";" in format code, the semicolon will always be regarded as separator
  • Last agrument of formula should not be removed
  • Removing chart in odt file, it causes a crash.
  • Graphic in header and footer can not be displayed correctly
  • Crash when redo split the pasted table
  • Number formating are changed after save and reopen it again.
  • Import .pptx file into OO3.4, the vertical text direction of the table will be lost.
  • Shape border and fill color lost if open the ppt doc via AOO
  • Shape shadow position changed incorrect if open the ppt doc via AOO
  • Fontwork alignment changes after saving to another ppt with AOO
  • The graphic background in left table display incorrectly when using AOO open the sample .ppt file
  • Vertical text direction in table cell change to horizontal after saving to another .ppt by AOO
  • The vertical text alignment of the placeholder is wrong while opening the ppt file in AOO
  • all drawing objects lost aftering saving to another ppt by AOO
  • Line transparency value is lost after saving as another ppt by AOO
  • Graphic bullet is incorrect in the .ppt doc which saved via AOO
  • The bullet in outline area lost after openning by AOO
  • Some shapes in master page lose after save to another ppt by AOO
  • The position of conncector change after save to another ppt by AOO
  • Froze when saving the doc file to another one.
  • TOC jumping function lost if save document by AOO
  • star and symbol shape in ppt changed after openning by AOO
  • Transparency setting of Fill color lost in cell comments.
  • animation flash once doesn't work after save the ppt by aoo
  • exit animation changed after save as ppt file to another ppt
  • Page number lost if save template to doc format
  • Some numbering format not support
  • Additional dot appear after the numbering.
  • Apply Envelope page style cause application crash
  • Crash after delete column(s) from chart's source table, and then adjusted table size
  • [Crash]When press "Ctrl+Shift+Backspace" in table cell "A1" ,Undo,crash
  • Font size increased if saved by AOO
  • Hyperlink font size increased if saved to .doc file
  • Function "Case sensitive" in "Special Filter" dialog can not work.
  • Shape shadow lost if load .doc file in AOO
  • Macro button lost if save template to .doc file
  • Teardrop shape can not show correct in pptx sample file
  • Bullet color is lost when open pptx sample file
  • Arrow shape changed is save doc file by AOO
  • Outline level in sample file lost
  • the .doc page number is incorrect when opened in aoo 3.4
  • [BiDi]The order of Hebraic string are changed after save as new .doc
  • Alphabetical and roman numberals became ditial numbering
  • Text font spacing in comments doesn't expand/condense by the expected value
  • The left-style columns display with the same width when opening with AOO
  • MS Word that has Table that with Text wrap around the table can not be shown correctly
  • MS's Macro button symbol can't correct display in aoo 3.4
  • ][BIDI]The position and direction of Right bracket is incorrect in Arabic locale
  • Paragraph indent and spacing between bullets and text are inconsistent with MS word
  • the content display mess when open the sample in AOO3.4
  • WMF graphic size changed too small to see if saved by AOO
  • The text box style display incorrectly when open the sample in AOO3.4
  • Vertical letters in "VerticalText" fontwork get horizontal when opening .ppt file
  • Table rows get heighter when opening a .docx file with AOO 3.4
  • Column header can not be displayed correclty in AOO3.4 after open the xls file.
  • font size of Fontwork changes from 96 to 36 after save as new .doc file
  • Text anchor in subtitle text box is changed from Top to Center when open a pot template in AOO3.4
  • Can't pop up protect password dialog when attempt to unprotect sheet with password for xls file in AOO.
  • Can't open by MS Office correctly when save sample file contain line with text to ppt format file
  • Position of drawing obj incorrect when opening .doc in aoo 3.4 if the text direction of the whole document is vertical
  • paragraph>pagination> Window/Orphan control setting lost after save the .doc file by aoo 3.4
  • The title text is Align left in sample file, while in MS Office ,it is align right.
  • he table border got lost when open the .ppt file in AOO
  • The title text is not Italic in Studio design template like that in MS Office.
  • sequence number is not displayed when open docx
  • Failed to open sample file but no any feedback to user
  • <Shape><Extrusion>The Extrusion direction of shape can't be saved correctly
  • arrow change size and position in MS after save odp to ppt format
  • Trendline of two Data Series can't be displayed but after edit it the trendline will be showed correctly
  • the bullet color display incorrectly in AOO3.4
  • the subtitle area of ppt file display incorrectly in AOO3.4
  • Can not open the sample ppt file which contain vb controls in the slide master.
  • The line indent change after save once by AOO
  • the right brace shape cannot display after save the sample .odt file to .doc file then reopen in aoo
  • One shape's border cannot be displayed completely
  • Text and fill color in a table are lost while opening a ppt file
  • Text in a text box can not be displayed correctly
  • a pic in the .doc file cannot display in Aoo 3.4
  • The numbering in table cell changes to bullets when saved in AOO
  • Item lists are incorrectly imported by Symphony.
  • Picture is lost when opening sample PPT file
  • Import file created by MS Excel, if there is blank item selected in Page filed of Pivot Table, the selection will be lost.
  • one column is lost if opened in AOO
  • [Crash]When save the file as ppt, AOO crashes
  • PPT Import:Word Art becomes larger
  • Arrow style of line changes after save the sample file to a new .ppt file.
  • AOO crash if a connector which connected to PPT table
  • The .xlsx sample file is opened with modified state
  • Under Handout view mode, Header&Footer displays inconsistent with the one presented in MS PowerPoint
  • Images lose macro association when open Excel file in AOO.
  • TOC lost if saved by AOO
  • PPT Import:Cell background color in table gets lost while opening a ppt file with AOO
  • PPT Export: Diagram bullet can not be displayed correctly after saved as *.ppt in AOO
  • page number in header lost when we save the .doc file as another in web layout
  • Picture shadow lost after saved by AOO
  • Form controls cannot be saved into .ppt file in AOO3.4
  • text alignment changed from left to center when importing the docx
  • The position of Shape (connectors) in slide is incorrect after save once by AOO3.4.
  • The image OLE's icon doesn't display correctly in Aoo3.4
  • Formula field lost
  • the shape 3D property effect in MS PPT can't be load correctly.
  • Some field is not shown
  • White block( on Mac and Black block on Windows) appears if click somewhere else in presentation
  • Presentation crashed if exit screen show
  • Writer crash after modify properties of new Frame
  • Calc crashes when Redo refreshing data
  • Create summary slide in .odp file which has expanded blank slides in,there is a crash.
  • Calc crashed if paste unsupport formula from MS Excel
  • Worksheet.Change event works not correctly
  • Application.Run could not work correctly

 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!