OpenOffice.org
Development digest
12th January 2004
by C.P. Hennessy
(Note also available in Spanish)Welcome to what I hope will become the weekly digest of OpenOffice.org development.
Introduction
Following what's happening in OpenOffice.org code development is not so easy, not because there is no information, but rather because that there is so much information and it is so spread out. Hopefully this digest will help to summarize all of that information into something reasonably readable and useful.Most of this digest will be concerned with what code has changed in CVS, and presenting that info in a readable format, but I also hope to include news and information from other OpenOffice.org projects including QA, native language projects, API, and any other interesting projects.
Obviously I could really use help with all of this so if you have something you would like to contribute, or you see ommisions or mistakes please email me your contribution to the digest.
Some of the areas which are not related to development I do not plan on covering, these include the user support lists, marketing, documentation, and the website. However, I will include any interesting news sent to me about these projects.
So how can I help?
There are several teams who could do with your help :- for the non-programmers there is the QA team where you can help to get enough details to reproduce bugs and triage them, help the documentation project by contributing templates and clipart, and the localization projects ( e.g. help to improve compound word spellchecking );
- for the script programmer there is the API project where you can develop on top of OpenOffice.org and program in StarBasic ( very similar to VBA ), java, python, C++, and perl. A good project to learn the object model on and improve your OpenOffice.org scripting skills might be the bibliographic project where a programmer new to python and OpenOffice.org APIs was able to help after only a few days!;
- for the XML programmers, there are also interesting projects which you could help write using various technologies to transform OpenOffice.orgs based XML based to other formats. Two transforms which come with OpenOffice.org 1.1 are DocBook, and XHTML. There is infrastructure to use XSLT directly from OpenOffice.org, but there are also several projects which are generating OpenOffice.org formatted files outside of the OpenOffice.org suite. To help get you started, OpenOffice.org XML Essentials?Using OpenOffice.org?s XML Data Format is a book in progress written by J. David Eisenberg for O?Reilly & Associates using the Creative Commons License.
- for the developer there are many areas to get involved in
including a call for helping to improve
the code for the spellchecker ( especially for German)(which is
also use in Mozilla.org), help to increase
the number of rows Calc can handle, or help with the native widget
framework for Aqua or KDE ports which compliment the official Win32
and GTK work.
It is not always necessary to recompile all of OpenOffice.org to work on only one of its components, but if you do then a very good place to start would be the Unofficial OpenOffice Hacker's guide which explains how to build and work on OpenOffice.org source code. If you have development related questions then please send an email to the development project.
So what are all these branches?
There is alot of OpenOffice.org development happening as can be seen from the details below.As with many very large projects with many developers, development
is going on independently in parallel. To help manage the code in a
reasonable way a feature of CVS
called branches is used quite extensively. Basically each major feature
is developed on a branch by one developer (or a small team of
developers).
This type of branch is called a "child workspaces"(CWS). Usually when a
feature has been completed and some fundamental testing has been
performed, the branch is then marked as ready for merging to a master
branch.
Sometime later the developers branch with the feature is then merged to
the "master workspace"(MWS) branch where further testing happens to
make sure that features from different branches do not conflict and
cause errors.
At some point a master branch is labelled and a public release of code is made.
An overview of which features will be implement on which branches can be found here. There is a more complete (and accurate) description of important branches currently used.
Current organization and contents of the CVS log
The CVS summary linked below is organized into what has changed on a particular branch by a each developer. There is currently a color coding on the left side to make it easier to see what type of change has occured. For each change you should see :- a link to the relevant bug in IssueTracker (except for bugs over 100000 as these are currently Sun internal);
- a comment the developer made while checking in those changes; and
- a link to the difference of each change in webcvs.
The second index lists all of the OpenOffice.org components which were worked on and lists those branches which have changes on those components.
In Other Development News
Easier builds for MacOSX Panter
Building OOo for MacOSX 10.3 ( Panther) is now reasonably easy, but volunteers are desparately needed to build and package on 10.2 and 10.1.Contributions from the Japanese project
Takamichi Akiyama wrote to me about developments contributed by the members of the Japanese project:- Graphic Applications (aka graphics)
Enabling the DXF import filter to handle Japanese texts
Status: Done (Integrated in OOo 1.1.1)
Todos: To cover more encoding types for other languages
OOo 1.0 can import a DXF file, but cannot properly handle Japanese texts in it. This effort has solved this problem caused by ethnic text encoding and given OOo more flexibility.
DXF file format is one of the AutoCAD drawing file formats, especially designed for data exchange between different application software.It is composed of certain sections and includes drawing objects such as a line, polyline, oval, text, and so forth. A type of encoding is stated in the HEADER section and texts are encoded in the encoding type.
Mr. Miyazaki, a member of ja.openoffice.org, initially reported this issue in November, 2002 and Tora collected related information, then, Kevin B. Hendricks wrote source codes for this new function. HiranoKazunari verified it. Stefan Baltzer, wg, sj and msc have kindly supported us. - Graphic System Layer (aka gsl)
Finding out font names of garbage characters in Asian version
Status: Done (Integrated in cws_src680)
OOo Asian versions sometime display unexpected garbage characters due to insufficient font names in the default font name lists that keep several different font names for each specific use such as UI, fixed, etc. Linux distributions vary and their primary Asian font name might differ, and thus, OOo's default font name list could be improved in order to cover such Linux variants.
This debug version of vcl module helps users find out a font name that is improperly chosen and used for displaying Asian characters, resulting in garbage characters. Instructions and sample outputs are available in a post by Hirano Kazunari.
For quick solution to the garbage characters, find out the improper font name and replace it with correct one using Tools > Options menu. For practical solution, tune up the default font name list in share/registry/data/org/openoffice/VCL.xcu on the basis of the debug outputs.
This effort comes from Herbert Duerr's debug codes and Tora's additional codes. Hirano Kazunari has tested it on his Linux machines and widely informed this function to the OOo community.
Contributions from the French project
Sophie Gautier wrote to me to tell me of the various contributions from the French project:- Integration
of dictionaries installation macro for 1.1.1
This macro by Laurent Godard should help users to install the relevant dictionaries for their needs. This will be a much appreciated item on the users mailing list - OOoVirg
integration
This is a mechanism by Rémy Peyronnet to allow the use of a comma instead of a period as a decimal separator. Very useful for French, Spanish, and many other languages. - A new home for OOoConv
OOoConv is a website where you can upload your OOo documents and get them translated into many supported formats. This site is also has interfaces in many languages for our international users. - Pinceau(a
brush to duplicate styles)
Another useful add-on.
Progress on native widgets for GTK/KDE/Win32/Aqua
The progress of the integration of native widgets for GTK, KDE, and Win32 desktops also received alot of attention. This is still moving along quite well and alot of progress seems to happen each day. The collaboration between the GTK and KDE developers is excellent. However the work on the Aqua widgets could really do with some help.Release of developers snapshot m17
A developers snapshot release (read do not even consider this alpha quality) called 680_m17 is now available and contains many bug fixes (including valgrind indicated problems, cleanup of compiler flags for gcc, and more VCL cleanups). This builds on the earlier developer snapshot releases m15 (with the new VCL plug which will allow native toolkits to be used instead of the OpenOffice.org one, improvements to the scripting framework, lots of compatability and rtl fixes, improvement in graphics handling and the draw tool, and changes in the installation process), m13 (mostly bug fixes), and m11(with many features). Note the temporary splash screen! ( Maybe you can contribute? )Note: these are all developers releases so be careful and do not complain if it crashes, burns and/or eats your computer! However if you do test these please report all errors in IssueTracker (to report a bug or request a feature http://openoffice.org -> "Register", then when you receive a confirmation email, "Login" and "File an issue" ).
As progress to the next major release there should be development snapshots every 2 weeks with more features for you to examine.
Convertor from xfig to OOo draw
Alexander Bürger announced a program to convert files from xfig format to OOo Draw. This program is now in a usable state (for Linux) and available for download. There are still a few issues but it is generally very usable.This weeks development summary
Many bugs have been worked on and resolved ( as of Monday Jan 12 2004 ):No this week | Change from last week | |
---|---|---|
Issues which have the status UNCONFIRMED | 431 |
-41 |
Issues which have the status NEW | 948 |
-40 |
Issues which have the status STARTED | 990 |
+29 |
Issues which have the status FIXED | 7520 |
+93 |
Please note that even though the unconfirmed issues remain a bit high, the QA team is really doing some great work in keeping the bugs triaged ready for developers to disect. If you dedicate some of your energy on this project it would be very worth while.
Some of the interesting developments over the last number of weeks include:
- week
2 (2004): Back with a bang! Over 40MB of changes to be digested. As
you might expect changes happened all over the place including :
- fixes for building with Visual Studio .Net 2003
- improving vertical alignment import from MSWord
- DDE enabled on non-Windows platforms
- fixes for Japanese wordbreak iterators
- improvement of undo capability of attributes and properties of pages and fields
- more compilation and linking fixes for MacOSX and NetBSD
- Slovenian extras added
- more row limit work ( i.e. to increase rows from 32000k )
- lots of native widget work, GTK, Windows, and KDE
- animation work for draw and impress?
- added support for hidden text
- ongoing work to make the database component more visible and compatible with competitors
- updates to the flash code including master-page animations
- the spec for a new concept for database application was also released
- work continues of the reimplementation
of the charting application
- week 1 (2004) : since most developers were taking a well earned rest, cvs was quiet. But a few did find time to contribute:
- week 53 (2003) : again a quite week:
- some checks
for X86_64 and other 64 bit cleanups; and
- dictionary
work.
- week
52 (2003):
- lots of cleanups of warnings
- more bug fixes for 1.1.1 and fixes for MacOSX 10.2
- added Dutch extras
- native
widget changes
- week 51:
- fixes for configuring Visual Studio .NET 2003
- work on importing and exporting databases in XML format
- more MacOSX,
PPC, and gcc 3.3 compilation cleanups
- more work on allowing table cells to span a page boundary
- work on XSL for importing Excel XML files
- lots of work on java installation wizards
- GTK and VCL plugin work
- beanshell scripting work including code completion and syntax highlighting
- improved canvas for Impress
- lots of VCL cleanups
- new URI processing API
- add session
manager service and interfaces
- dialog factory for making dialogs loadable on demand
- chart2
work, and more
chart2 work
- updates to the Developers Guide ( which can be found here )
- ADO
Browse Dialog specification (sxw) and LDAP
authentication enhancements
specifications (sxw)
- week 50:
- work on importing MSWord and Excel XML files
- start vcl changes for GTK plugin
- many layout manager additions
- VCL related cleanups
- backports
for MSWord compatability
- dialog diet work - i.e. load code for dialogs only when needed
- improve network installation
- native widget work for GTK widgets
- database
property browser specification(sxw) and spin
button form control specification(sxw) added
- added a document for using
valgrind with OOo
- chart2 work for statistics, linear regression, mean-value, log scaling, error-bar calculation
- database specs for FormWizard(sxw),
and QueryWizard(sxw)
- week 49
- more backports for MSWord filter for 1.1.2
- lots of database forms work continuing
- works starts on EnhancedAutoShapes
- C++
native XSLT component
- lots of MSWord compatability work : tabstops,
subdocuments
in a master document, styles,
table export and many others
- work done on mingw port
- new gluepoint functionality
- more dialog sliming
- and lots
more artwork added by Ximian
- week 48
- the merge of bug fixes in branches for 1.1.1 is ongoing
- working on converting OpenOffice.org's widget set so that it can use the platforms native widgets is going very well.
- more work on the new layout manager for custom toolbars and menus
- xml security, xpath, and dom APIs and features were worked on
- nice alpha artwork and fixes added by Ximian
- continued improvements on compatibility : drogheda, mullingar, portlaoise
- the work to split a table row over a page boundary continues
- and finally the developers guide was also updated