| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> | |
| <HTML> | |
| <head> | |
| <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=iso-8859-1"> | |
| <TITLE></TITLE> | |
| <META NAME="GENERATOR" CONTENT="StarOffice 7 (Linux)"> | |
| <META NAME="CREATED" CONTENT="20031015;15235100"> | |
| <META NAME="CHANGED" CONTENT="20031022;335100"> | |
| <STYLE> | |
| <!-- | |
| @page { size: 8.27in 11.69in; margin: 0.79in } | |
| P { margin-bottom: 0.08in } | |
| H1 { margin-bottom: 0.08in } | |
| H1.western { font-family: "Arial", sans-serif; font-size: 16pt } | |
| H1.cjk { font-family: "Lucida Sans Unicode"; font-size: 16pt } | |
| H1.ctl { font-family: "Tahoma"; font-size: 16pt } | |
| H2 { margin-bottom: 0.08in } | |
| H2.western { font-family: "Arial", sans-serif; font-size: 14pt; font-style: italic } | |
| H2.cjk { font-family: "Lucida Sans Unicode"; font-size: 14pt; font-style: italic } | |
| H2.ctl { font-family: "Tahoma"; font-size: 14pt; font-style: italic } | |
| H3 { margin-bottom: 0.08in } | |
| H3.western { font-family: "Arial", sans-serif } | |
| H3.cjk { font-family: "Lucida Sans Unicode" } | |
| H3.ctl { font-family: "Tahoma" } | |
| H4 { margin-bottom: 0.08in } | |
| H4.western { font-family: "Arial", sans-serif; font-size: 11pt; font-style: italic } | |
| H4.cjk { font-family: "Lucida Sans Unicode"; font-size: 11pt; font-style: italic } | |
| H4.ctl { font-family: "Tahoma"; font-size: 11pt; font-style: italic } | |
| H5 { margin-bottom: 0.08in } | |
| H5.western { font-family: "Arial", sans-serif; font-size: 11pt } | |
| H5.cjk { font-family: "Lucida Sans Unicode"; font-size: 11pt } | |
| H5.ctl { font-family: "Tahoma"; font-size: 11pt } | |
| H6 { margin-bottom: 0.08in } | |
| H6.western { font-family: "Arial", sans-serif; font-size: 10pt } | |
| H6.cjk { font-family: "Lucida Sans Unicode"; font-size: 10pt } | |
| H6.ctl { font-family: "Tahoma"; font-size: 10pt } | |
| --> | |
| </STYLE> | |
| </head> | |
| <body LANG="en-US" DIR="LTR"> | |
| <div style="padding:3pt; background-color: #f8d3d0; margin-top: 4pt; margin-bottom: 4pt;"> | |
| <h2>Warning</h2> | |
| <p>Much of the information here is <b>outdated</b> and refers to obsolete project procedures.</p> | |
| <p>For current information on how to contribute to OpenOffice, see | |
| <a href="http://openoffice.apache.org/get-involved.html">this page</a></p> | |
| </div> | |
| <H1 CLASS="western">How to contribute to OpenOffice.org</H1> | |
| <P>(Draft 0.1 2003/10/31 please provide feedback to mh at | |
| openoffice.org)</P> | |
| <P>This document describes different possibilities about how to | |
| contribute to (or participate in) the OpenOffice.org project. I | |
| assume that you are already a user of OpenOffice.org and want to take | |
| the first steps of being more than just a user.</P> | |
| <H2 CLASS="western">Roles in OpenOffice.org Project</H2> | |
| <H3 CLASS="western">OpenOffice.org User</H3> | |
| <P>You may have question about the usage of OpenOffice.org? You even | |
| may have answers for other users questions? Subscribe to | |
| <A HREF="mailto:users@openoffice.apache.org">users@openoffice.apache.org</A> and | |
| help by answering questions. | |
| You can also contribute templates and documentation to | |
| the documentation project for other users to make use of.</P> | |
| <H3 CLASS="western">OpenOffice.org Macro Programmer, Plug-in or Addon | |
| Developer</H3> | |
| <P>In this role you are probably most interested in developing you | |
| own code using the interfaces provided by OpenOffice. These | |
| interfaces are called UNO APIs and you can get documentation from the | |
| <A HREF="http://api.openoffice.org/">http://api.openoffice.org</A> | |
| project and help from the <A HREF="mailto:dev@api.openoffice.org">dev@api.openoffice.org</A> | |
| list.</P> | |
| <H3 CLASS="western">OpenOffice.org Power User</H3> | |
| <P>If you already know about internals of OOo you may subscribe to the | |
| different dev@*.openoffice.org lists. Here you are able to discuss | |
| with the developers about problems and enhancements. You also can use | |
| IssueZilla, the OpenOffice.org Bug Tracking System to file your | |
| problems or feature requests into the Database. (see also | |
| ircs://irc.libera.chat/openoffice for on line discussions)</P> | |
| <H3 CLASS="western">OpenOffice.org Quality Assurance</H3> | |
| <P>If you are interested on being on the bleeding edge it might be | |
| useful to join the QA Team (<A HREF="mailto:qa@openoffice.apache.org">qa@openoffice.apache.org</A>). | |
| There are several interesting projects like automatic GUI testing | |
| (<A HREF="http://qa.openoffice.org/qatesttool">http://qa.openoffice.org/qatesttool</A>) | |
| and OOo API testing (<A HREF="http://qa.openoffice.org/qadevOOo">http://qa.openoffice.org/qadevOOo</A>) | |
| as well as the daily QA work (see also | |
| ircs://irc.libera.chat/openoffice )</P> | |
| <H3 CLASS="western">OpenOffice.org Content Developer</H3> | |
| <P>In the OpenOffice.org Project there are not only things to do | |
| directly related to the Product but there is also a lot of other work | |
| left in the OpenOffice.org project. If you want to enhance any of the | |
| OOo web pages, you need status of a content developer. Ask your | |
| project lead for this role. You are encouraged to sign an JCA, but as | |
| long we have the common understanding that the contribution to any | |
| web content is treated as Public Domain, this is not mandatory.</P> | |
| <H4 CLASS="western">Native Lang Projects</H4> | |
| <P>There are several Native-Lang projects on OpenOffice.org which you | |
| can join. These projects offer users information about OpenOffice.org | |
| in their native languages. This makes OpenOffice.org more open to non | |
| English speaking people.</P> | |
| <H4 CLASS="western">Established Projects</H4> | |
| <P>Also the already established long existing projects are looking | |
| for helpers to extend project documentation. | |
| </P> | |
| <H4 CLASS="western">Marketing Project</H4> | |
| <H4 CLASS="western">Incubator Projects</H4> | |
| <P>Bibliographic, WordPerfect filter, Groupware, etc. All of these | |
| are in need of developers to contribute and because they use only the | |
| OpenOffice UNO APIs, it should be easier for a developer wanting to | |
| get their hands on code to develop and contribute.</P> | |
| <H3 CLASS="western">OpenOffice.org Developer</H3> | |
| <P>You may even have patches attached to issues, new implementations for the | |
| OpenOffice.org code base. Participate on the projects dev lists and | |
| you may achieve developer status quickly. This includes the content | |
| developer status.</P> | |
| <H4 CLASS="western">OpenOffice.org Porting</H4> | |
| <P>You want to port OpenOffice.org to a new platform ? Look on | |
| <A HREF="mailto:dev@porting.openoffice.org">dev@porting.openoffice.org</A> | |
| for other interested people.</P> | |
| <H4 CLASS="western">OpenOffice.org Localizations</H4> | |
| <P>See <A HREF="mailto:L10N@openoffice.apache.org">L10N@openoffice.apache.org</A> | |
| and <A HREF="http://l10n.openoffice.org/adding_language.html">http://l10n.openoffice.org/adding_language.html</A> | |
| for more info regarding all questions around this topic.</P> | |
| <H3 CLASS="western">Miscellaneous</H3> | |
| <UL> | |
| <LI><P>Team OpenOffice.org (<a href="www.teamopenoffice.de"> www.teamopenoffice.de</a> *German*)</P> | |
| <LI><P>Ximian (<a href="http://ooo.ximian.com"> ooo.ximian.com</a>)</P> | |
| <LI><P>NeoOffice (<A HREF="http://www.neooffice.org/">www.neooffice.org</A>) | |
| <!-- ---- 10/21/2003, 13:18 ---- | |
| I don't know if it is a good idea to advertise forks in the document that describes how to contribute to *our* project. --></P> | |
| <LI><P>ooodocs www.ooodocs.org</P> | |
| </UL> | |
| <P><BR><BR> | |
| </P> | |
| <H2 CLASS="western">Setting Expectations</H2> | |
| <P>An Office Suite does have many users who have a lot ideas on how to | |
| extend the product or have problems with this product. There | |
| are only a few developers which are able to understand these requests | |
| and are able to implement a solution for it. So for every enhancement | |
| or bug fix we have to find somebody who is able and willing to do so. | |
| At the time of writing there are about 3000 issues which being are worked on | |
| for the next version of OpenOffice.org. This work is done by about | |
| 120 developers from which the major part is employed by Sun | |
| Microsystems. We expect that during the life cycle of the next | |
| version about 15000 issues get raised and fixed. And there will be many | |
| more issues which can not be addressed in time for the next version. | |
| Due to the complexity and size of the OpenOffice.org product it is | |
| not possible to wait until all known issues are fixed. We have to find | |
| the balance between “the product that contains long awaited | |
| features” and all “severe bugs” are gone.</P> | |
| <P>For this reason we introduced the term “Target Milestone” | |
| to be able to set an expectation about what version issues are scheduled to get | |
| fixed. It is common understanding that “severe issue” has | |
| to be fixed by the next version. Minor issue will get fixed, if | |
| resources for fixing them are allocable or fixes are already | |
| available (see | |
| <A HREF="http://tools.openoffice.org/release/TargetMilestone.html">http://tools.openoffice.org/release/TargetMilestone.html</A>).</P> | |
| <P>It's quite important to understand these resource constraints, | |
| just asking or voting on an issue will not necessarily ensure that an | |
| the issue will get fixed. If there is any different interpretation | |
| about targeting of issues every party has to argue why this is an issue | |
| should been worked on as soon as possible, over other equally important issues. | |
| If it is not possible to | |
| get agreement on this issue it should be raised to the relevant team | |
| lead(s) or the <A HREF="mailto:releases@openoffice.org">releases@openoffice.org</A> | |
| team. As a last resort, if agreement cannot be achieved it should then be | |
| raised with the Community Council to resolve the issue.</P> | |
| <P><BR><BR> | |
| </P> | |
| <H2 CLASS="western">Development Process</H2> | |
| <P>There are some simple rules to follow for the development process: | |
| <H3 CLASS="western">Master WorkSpaces (mws)</H3> | |
| Builds are done on code lines, which are actually branches | |
| in cvs repository. These branches are called master branches and for | |
| each code line there is a separate branch. Currently we have | |
| this situation:</P> | |
| <P ALIGN=CENTER>1.1 code line = mws_srx645, 2.0 code line = HEAD</P> | |
| <P ALIGN=LEFT>Once the 2.0 code line has been closed before delivery, the 2.0 | |
| code line will also move to a branch (e.g. mws_src680, and | |
| development of following release (3.0 ??) will then happen on CVS | |
| HEAD.</P> | |
| <P ALIGN=LEFT>Contributions to these code lines have to have their | |
| corresponding issues in IssueZilla and will not generally be made | |
| directly to those branches, but on sub branches called child | |
| workspaces (cws).</P> | |
| <H3 CLASS="western">Child Workspaces (cws)</H3> | |
| <P>Having child workspaces means it is possible to | |
| review and test all changes before they get applied on the master | |
| branch. This have several advantages but also constraints:</P> | |
| <UL> | |
| <LI><P>Less regressions on the master branch</P> | |
| <UL> | |
| <LI><P>We should be able to do a release at production quality from | |
| the master branch.</P> | |
| <LI><P>The HEAD of the branch is always consistent and buildable.</P> | |
| </UL> | |
| <LI><P>Before reintegration into the master, the cws has to QA'd. | |
| Without QA approval there is no reintegration.</P> | |
| <LI><P>Liberal access rights and 'lazy commits' on cws branches.</P> | |
| <UL> | |
| <LI><P>Since a commit to cws will not influence the master before | |
| reintegration, we are able to grant commit access more liberally | |
| since review is easier and QA is mandatory.</P> | |
| <LI><P>We can grant commit access to any third parties in a very | |
| free way, reducing the hurdle for getting patches in. Patches are | |
| reviewed and QAed on | |
| the cws before reintegration. This mean cws can be treated as play | |
| ground for developers and vendors.</P> | |
| <LI><P>If a cws gets applied to a master branch, Release | |
| Engineering ensure that it is applied also on the following | |
| product master branch.</P> | |
| </UL> | |
| </UL> | |
| <P>A cws does not necessarily have every module tagged with the cws branch tag. | |
| In most | |
| cases only needed modules are tagged with cws branch tag, remaining | |
| modules have to be taken from the master branch (as long as no | |
| changes are needed). There are also cws, where all modules have been | |
| tagged to be on the cws branch, this makes life for casual contributor | |
| easier, they don't have to take care that the module is already | |
| available for the specific cws.</P> | |
| <P>Any implementation of a feature will happen on a separate cws, | |
| this ensures that no incomplete or only partly tested feature will | |
| get into the master. Please avoid implementing more than one big or a few | |
| minor features on one cws. Also don't group too many bug fixes in one | |
| cws to avoid dependencies. A cws should be shortlived if possible to avoid | |
| divergence from the master.</P> | |
| <H3 CLASS="western">How to get your code contribution to | |
| OpenOffice.org</H3> | |
| <H5 CLASS="western">Issue handling</H5> | |
| <P>If you are going to make your first contribution to the code basis | |
| you have to be familiar with bug handling in IssueZilla. File an | |
| Issue with a good description of what you want to achieve. Make sure | |
| that you got the correct target milestone and the correct owner | |
| assigned. The owner should be always the one, from whom the next | |
| action is expected.</P> | |
| <H6 CLASS="western">Confirmed/Unconfirmed status</H6> | |
| <P>As default issue will be submitted as unconfirmed. The first step | |
| is to get the issue confirmed by a QA or Project member. QA members | |
| will scan unconfirmed issues, if this takes too long, you should ask | |
| for confirmation on the projects dev list. Once the team recognises | |
| the valuable issue submissions you will be granted “can confirm” | |
| status or simply ask the project lead for this. Developers often | |
| ignores issues with unconfirmed status or will treat them with lower | |
| priority.</P> | |
| <H6 CLASS="western">Target Milestone</H6> | |
| <P>By default issues will have no target milestone. Target milestones | |
| will be set by qa team or developers. If there are different opinions | |
| about target milestone these should solved by the project lead or | |
| <A HREF="mailto:releases@openoffice.org">releases@openoffice.org</A>. | |
| </P> | |
| <H6 CLASS="western">Component/Owner</H6> | |
| <P>Dependent on the selected component (and subcomponent) the issue | |
| will be assigned to an default owner. Don't be afraid to select the | |
| wrong component, the issues will get reassigned after a while to | |
| the correct owner. If you are unsure about which component to use, | |
| you should only | |
| choose among: Chart, Database Access, Drawing, Formula | |
| Editor, Installation, Presentation, Spreadsheet and Word processor.</P> | |
| <H6 CLASS="western">Nothing happens ?</H6> | |
| <P>If nothing happens to your issue after a while, don't hesitate to | |
| ask the current owner directly on the dev list about the status. If | |
| you don't get reaction, ask once more. Also if you get some | |
| insufficient feedback like “worksforme”, “cantreproduce” | |
| don't hesitate to ask once more if you think this might not be | |
| correct. Please provide a reason why you think it is important.</P> | |
| <H6 CLASS="western">Patches</H6> | |
| <P>Code contribution can be attached to an issue. If this | |
| contribution is of significant size (i.e. >= 10 line of code) you | |
| need to sign a JCA before submitting | |
| (<A HREF="http://www.openoffice.org/contributing.html">http://www.openoffice.org/contributing.html</A>). | |
| Your name will be listed on the web page it will last 1 – | |
| 2 weeks :( .</P> | |
| <H6 CLASS="western">committing patches to cvs</H6> | |
| <P>Once you have been recognised as valuable patch contributor, you | |
| will get granted commit access to cvs. Then you will be able after | |
| set up a cvs ssh tunnel to commit patches directly to a cws. But | |
| every commit to cvs has to be accompanied with an issue number, so | |
| that every patch which is going into OpenOffice.org is documented by | |
| an issue. Ask your project lead or <A HREF="mailto:releases@openoffice.org">releases@openoffice.org</A> | |
| to get cvs commit access.</P> | |
| <H6 CLASS="western">Creating a cws</H6> | |
| <P>Unfortunately we are not able to create a cws by our own, | |
| <a href="http://tools.openoffice.org/dev_docs/OOo_cws.html">yet</a>. | |
| We have to ask Sun employees to create them for us Ask the project lead or | |
| <A HREF="mailto:releases@openoffice.org">releases@openoffice.org</A> | |
| for creation of a cws. Important data for creating these is the | |
| expected life time, the targeted code line and who will be | |
| responsible person which will give the ok for passed QA. A | |
| descriptions of the purpose of the cws is also helpful. Creating a | |
| full blown cws (where all modules get tagged within a cws branch tag ) will last | |
| up to two days.</P> | |
| <H6 CLASS="western">Working on a cws</H6> | |
| <P>Do whatever you want there. It's your cws. You may want to use | |
| Bonsai (<A HREF="http://ooo.ximian.com/bonsai">http://ooo.ximian.com/bonsai</A>) | |
| to track any changes on the cws.</P> | |
| <p>It is also possible to set up a tinderbox which multiple build and verify | |
| the cws is buildable on many platforms.</p> | |
| <H6 CLASS="western">Resyncing a cws</H6> | |
| <P>With the longer lifetime of a cws, conflict risks for | |
| reintegration of the cws will also grow. For this reason a resync of the | |
| cws to a newer version of the master workspace (mws) is possible. At | |
| this time this also can be done by Sunnies. Ask for help to do the resync | |
| for you. | |
| </P> | |
| <H6 CLASS="western">QA of a cws</H6> | |
| <P>The minimum QA of a cws is that all issues which have been fixed | |
| on this cws, have been verified by your peers. If features got | |
| implemented, a test plan also should be available. Mandatory is the | |
| successful pass of the smoketest_oo module and the verification on at | |
| least two platforms (Windows and one Unix derivate is a good choice). | |
| A clean and build of is always a good idea, see tinderbox <a href="http://ooo.ximian.com"> | |
| for permanent builds.</a> on specific branches.</P> | |
| <H6 CLASS="western">Reintegration into master workspace</H6> | |
| <P>Reintegration of a cws into the master workspace will done by | |
| Hamburg Release Engineering. They will be delighted by every cvs | |
| conflict and build error :). Please try to avoid them and you will get new | |
| friends for life.</P> | |
| </body> | |
| </HTML> |