Tuesday, 31 Oct 2006
Tuesday, 31 Oct 2006
Development on OpenOffice.org/ StarOffice is using branches in the source code repository (currently CVS) a set of commandline tools and a tool called EIS, which is the acronym for Environment Information System and also the german word for the english word ice bye the way. The basic idea here is that there exists so called MasterWorkspaces (short MWS) which are used for the production version and ChildWorkspaces (short CWS) which are used to work on new features and/or bugfixing. Codelines for releases use different MasterWorkspaces and for minor releases also a new MasterWorkspace is usually introduced to stabilize the code for this minor release on a separate branch.
To work with ChildWorkspaces and MasterWorkspaces means:
To do all development work on a copy of the product code
To thoroughly test and check the developed code before re-integrating it into the product code.
Only fully tested source code gets into production code, so fewer regression bugs will occur.
All milestones on the master workspace (the product code) are potentially in a condition to be published
Bugs are more often discovered around the time they are introduced, and by the people who introduced them.
Because code is better checked and tested before integrating it into the product, the developer has greater freedom to work
EIS basically consists of a database keeping information about MasterWorkspaces and ChildWorkspaces as well as some additional things (see below), a web-frontend used by everyone involved with work on ChildWorkspaces ( eg. developer, QA member, Documentation writer, member of User Experience Team, those working on localization and internationalization etc. ) and a SOAP interface used by a bunch of commandline tools which are used by developers to create and maintain ChildWorkspaces. Additionally EIS provides a few RSS feeds with information about ChildWorkspaces and MasterWorkspaces. The feed that informs about new milestones on MasterWorkspaces for example is syndicated on Planet OpenOffice.org. The web-frontend of EIS is being developed using Java Servlet Technology and the SOAP interface is of course also using java.
ChildWorkspaces in EIS do have a status which reflects what is currently being done on the ChildWorkspace and if the CWS has already gone into production code or the CWS is still being worked on.
Examples:
status "new": development is currently working on it
status "ready for qa": QA is currently working on it
status "integrated": work on the CWS is finished and the changes on the ChildWorkspace have been integrated into the MasterWorkspace.
There is a set of ChildWorkspace Policies which regulates how work on a ChildWorkspace is done eg. how issues in OpenOffice.org's bugtracking system issuezilla are usually assigned to ChildWorkspaces and how the different kinds of people involved in the lifecycle of a ChildWorkspace interact with each other. EIS knows about two different kinds of ChildWorkspaces public CWS and Sun internal CWS. For Sun internal CWS only a limited set of information is being shown on http://eis.services.openoffice.org. For example the description, which might contain internal information about a Sun customer, is not being shown. Sun internally there exists a different incarnation of the EIS web-frontend which does show this information. Most ChildWorkspaces being worked on by Sun developers are public, only those few containing StarOffice only modules or features or those which do contain confidential information about a Sun customer are private ChildWorkspaces.
ChildWorkspaces always have an "Owner" and a "QA representative" which usually should be two distinct persons ;-). Other types of information kept in EIS are for example relevant source code modules, feature and/or bug-fix issues being worked on in the CWS, the release for which the CWS is planned to be integrated and flags to indicated wether changes on that CWS are relevant for Documentation and Translation. EIS also offers some statistics about ChildWorkspaces.
More information on ChildWorkspaces can be found in this OpenOffice.org wiki entry.
Besides the information you can find in the OpenOffice.org wiki and on the OpenOffice.org website Eric Bachard has some very good stuff about EIS and ChildWorkspace handling in this PDF Document including Screenshots of the EIS web-frontend, an explanation about ChildWorkspace statuses and an example of typical CWS commandline tool usage for developers.
Additionally to the handling of ChildWorkspaces and MasterWorkspaces another feature of EIS is the handling of API Changes and Feature Announcements, which are entered into EIS by developers and than mailed to OpenOffice.org mailing lists and stored in the EIS database. API Changes inform other developers about code changes which might be relevant to them and Feature Announcements as well as Specifications are essential for those working on documentation or QA. Feature Announcements and Specifications are also used for semi-automated Release Notes creation and are thus important for informing everyone about changes in new releases, see OpenOffice.org 2.0.4 Release Notes for example. Specifications must be created using a standard template and EIS can check wether documents can be used for the Release Notes creation process or break that process because they do contain changes that make the document unusable for the XSLT being used for that or because they are not based on the correct template.
EIS entry points:
The main webpage for EIS is http://eis.services.openoffice.org. There you can find a link to EIS logon where you must use your OpenOffice.org email address as username. There is also an anonymous guest logon link on this page for those who do not have an OpenOffice.org account and the RSS feeds EIS provides can also be found on that page. Besides, the " Find a ChildWorkspace (CWS) name for a given IssueTracker issue ID", " List integrated issues within the most current CVS master build" and " Show treeview of all integrated CVS master builds" features on http://qa.openoffice.org/issuelinks.html are also features provided by EIS. At http://specs.openoffice.org there is a Specification Checking Tool link, which is also a feature offered by EIS. Then you can sometimes find direct links to ChildWorkspace information in some RSS feeds and webpages like Planet OpenOffice.org or in some documentation on OpenOffice.org. If you need to create such a direct link to ChildWorkspace information on some webpage yourself you can use something like the following:
http://eis.services.openoffice.org/EIS2/cws.ShowCWS?Path=SRC680%2Fcwsqueryenhance
where 'cwsqueryenhance' is the name of the ChildWorkspace and 'SRC680' is the MasterWorkspace it was created on without milestone information.
Such links and also the features on the QA issuelinks page and the Specification Checking Tool can be used without logon.
The SOAP interface of EIS is at https://eis.services.openoffice.org/soap/servlet/rpcrouter. The CWS commandline tools authenticate there using CVS username and crypted CVS password. This must be configured in a .cwsrc file, details about this .cwsrc file can be found here. The SOAP interface is currently not yet documented, but with CWS.pm there is a perl module for using it available in the OpenOffice.org source code.
While we are at introducing and because this is my first GullFOSS entry let me introduce myself here also:
My name is Bernd Eilers and I´ve been working with and for StarOffice/ OpenOffice.org since over 10 years in different areas. I started by supporting developers using StarView the predecessor of VCL, which was used inside StarOffice and also sold by Star Division, the company that originally developed StarOffice, as a cross platform C++ UI library to be used by other companies for developing their own cross platform programs; I did enterprise support for StarOffice; switched to QA when we started doing automated API testing; did development on Sun One Webtop and am now working on StarOffice/ OpenOffice.org tooling. My main work areas currently are EIS maintenance and developing and maintaining the system to receive, store and compare OpenOffice.org/ StarOffice crash reports and the corresponding Sun internal developer web frontend. When OpenOffice.org started I was very enthusiastic about the open source move and quite active on the mailing lists, nowadays I am a lurker on the lists most times. My OpenOffice.org username is bei and on the #OpenOffice.org IRC channel on irc.freenode.net my nickname is rfc821. If I am currently not on that IRC channel and you have an EIS related question or problem you can usually ask someone from Sun on the channel to call me for getting me into the channel. Well if there is a problem with EIS or if you have a feature wish for it you can of course also submit an issue in issuezilla under the category tools and with target DevTools and assign it to me.
tags:
Comments