<html>
<head>
<meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
<meta HTTP-EQUIV="refresh" content="3; url=http://www.openoffice.org/">	
<title>Apache OpenOffice Introduction</title>
</head>
<body>
<h2>Apache OpenOffice An Introduction for those wanting to join</h2>
<p><a href="../lspintro.html">Louis Suárez-Potts</a><br>
  Community Manager</p>
<p>Last updated 2007-06</p>
<p class="Header">Contents</p>
<ul>
  <li><a href="#introduction">Introduction: What is OpenOffice.org? And What Is There For You To Do? </a></li>
  <li><a href="#joining">Registering the OpenOffice.org Product</a></li>
  <li><a href="#contacting">Contacting Us</a> </li>
  <li><a href="../product/">Product Information</a></li>
  <li><a href="#joining">Registering</a></li>
  <li><a href="#overall_project">Overall Project</a></li>
  <li><a href="#mailing_lists">Mailing Lists</a></li>
  <li><a href="#particular_projects">Particular Projects</a></li>
  <li><a href="#start_here">Getting To Work: Start Here</a></li>
  <li><a href="#how_to_do">How To Contribute Work</a></li>
  <li><a href="#useful_links">Useful Links</a></li>
</ul>
<hr>
<p class="Header">Introduction: What is OpenOffice.org? And What Is There For You To Do?<a name="introduction"></a></p>
<div class="indent">
  <p>OpenOffice.org is an <a href="http://www.opensource.org/">Open Source project</a>. It is sponsored by Sun Microsystems, which is the primary contributor of code to the Project. Over 450,000 people from  nearly every curve of the globe have joined this Project with the idea of creating the best possible office suite that all can use. They do so under the auspices of &quot;open source.&quot; </p>
  <p>&quot;Open source&quot; means that you can contribute to make the product (and Project) better by joining the community. You can become a subscriber to the <a href="#mailing_lists">mailing lists</a>,  a member of the <a href="#overall_project">overall Project</a>, or  intensify your engagement and join a <a href="#particular_projects">particular project</a>. You can contribute your insights, your bug findings, your bug fixes, or just your general support. There is no requirement that you be a programmer. Just that you respect the other members of the community and understand that we are very serious about this Project and what it means.</p>
  <p>To learn more about the Project, including its organization, please consult these pages:</p>
  <ul>
    <li><a href="http://about.openoffice.org/index.html">About Us</a>. This page provides a comprehensive account of the Project, its structure, history, and mission. It also has links to many documents, both technical and nontechnical. </li>
    <li><a href="http://development.openoffice.org/">Development</a>. This section has links to many of the documents supporting development of OpenOffice.org, the product and project. </li>
    <li><a href="/support/">Support</a>. OpenOffice.org offers volunteer support; there is also for-fee support (right now, <a href="http://www.sun.com/service/serviceplans/software/openoffice/">Sun Microsystems offers it)</a></li>
  </ul>
  <p class="Header">Registering the OpenOffice.org Product</p>
  <p>You <strong>do not need</strong> to register OpenOffice.org the product. We ask that you contribute your efforts to the project but you are not obligated to contribute anything. In fact, you <strong>do not need to register</strong> at all-neither the product nor yourself.</p>
  <p class="Header">Contacting Us<a name="contacting"></a></p>
  <p> If you have questions about how to use OpenOffice.org, the product, please submit them to: <a href="mailto:users@openoffice.apache.org?subject=[moderated]">users@openoffice.apache.org</a>. For further information about contacting us, please refer to our "<a href="../contact_us.html">Contacting Us</a>" page.</p>
</div>
<p class="Header">Registering: Overview<a name="joining"></a></p>
<div class="indent">
  <p>To join, go to our "<a href="http://openoffice.org/people/new">Register</a>" page. Your effort, even if you are not a programmer, will help us become better for more people.</p>
  <p><a name="mailing_lists"></a>Registering with OpenOffice.org does not subscribe you to our mailing lists. Registering makes you an official member of the community, which means you can vote in our elections and participate in areas restricted to members. You may post messages without being subscribed to a list and without being a &quot;member&quot; of OpenOffice.org. But each unsubscribed messages must be moderated by the list moderator--and that can be a lot of work. Lists are described on our main "<a href="../mail_list.html">Mailing Lists</a>" page, where you can also subscribe to the more popular lists, view archives, and perform searches of the archives. As well, we also list newsgroup analogues of the more popular lists.</p>
  <p>Briefly, both the general project ("www") and the particular projects have their own sets of lists. To learn more of how to use the mailing lists to best advantage, please refer to "<a href="../editorial/ec09Nov.html">Participating in OpenOffice.org: Mailing Lists</a>."</p>
  <p class="Header">The Overall Project<a name="overall_project"></a></p>
  <p> The OpenOffice.org Project is a constellation of related projects. It may be best to join the Project first without joining a specific project. Doing so gives you access to <a href="http://qa.openoffice.org/issue_handling/project_issues.html">Issue Tracker</a>, our bugtracker, and if you wish to file bugs, you must use IssueTracker. You also have access to other tools, such as CVS, Forums, File sharing, and so on. The SourceCast Help provides a good accounting of what is available to registered members.</p>
  <p class="Header">Particular Projects<a name="particular_projects"></a></p>
  <p> Joining a particular project is a two-step procedure. The process is carefully explained in the SourceCast <a href="http://openoffice.org/projects/help/pages/Home">Help</a> documentation, but essentially you request to join a project by clicking on the "Join this project" link on the upper left of each project homepage; the project owner must then approve or disapprove of your request. </p>
  <p>Please also join the project's mailing list (usually a dev@[projectname].openoffice.org list) and introduce yourself in your first message; tell others what your skills are and where your interests lie. Otherwise Project Leads have no way of working with you.</p>
</div>
<p class="Header"><a name="gov"></a>Governance</p>
<div class="indent">
  <p>OpenOffice.org is governed by an elected body, the <a href="http://council.openoffice.org/">Community Council</a>. The Community Council is responsible for mediating conflicts, suggesting Project goals, and generally providing a forum for the adjudication of issues of concern to the overall project.</p>
</div>
<p class="Header"><a name="gov"></a>The Engineering Steering Committee (ESC)</p>
<div class="indent">
  <p>The <a href="http://council.openoffice.org/esc/">Engineering Steering Committee (ESC)</a> is responsible for advising the Community Council of technical implementation. Constituted by senior developers appointed by the CC, the ESC is further charged with improving the code submission process.</p>
</div>
<p class="Header"><a name="start_here"></a>Getting To Work: Start Here </p>
<div class="indent">
  <p>Although we very much want C++ coders to hack away with our developers, not all of the projects require you to be an ace C++ programmer. In fact, OpenOffice.org very much needs community members to help sustain the project.</p>
  <p>If you are not interested in programming, consider:</p>
  <ul>
    <li><strong><a href="http://qa.openoffice.org/">QA Project</a></strong> (Finding bugs &amp; issues)<strong>.</strong> We have positioned the QA project as the center for finding bugs. Follow the instructions there.</li>
    <li><a href="http://marketing.openoffice.org/"><strong>Marketing Project</strong></a>. We have a Marketing Project:. Its function: to spread the word among endusers and developers alike.</li>
    <li><strong><a href="http://documentation.openoffice.org/">Documentation Project</a></strong>. Consider joining our Documentation project. We need documentation, in any language. </li>
  </ul>
</div>
<div class="indent">
  <p>If you are a developer, of whatever level, start here:</p>
</div>
<ul>
  <li>
    <div class="indent"><strong><a href="http://development.openoffice.org/">Development Section</a>.</strong> Our general page linking to all key development projects (API, Porting, etc.), including our SDK and mail lists.</div>
  </li>
</ul>
<div class="indent">
  <p class="Header">How To Contribute Work<a name="how_to_do"></a></p>
  <p>You may contribute work any of several ways: </p>
  <ul>
    <li>Via <a href="http://qa.openoffice.org/issue_handling/project_issues.html">Issue Tracker</a>;</li>
    <li>By posting to the relevant mailing list(s); and </li>
    <li>By submitting the document(s) to the relevant project</li>
  </ul>
  <p>Other ways to submit material require a more advanced standing in a project. To learn more about the categorization of users and committers, please see the "<a href="../dev_docs/guidelines.html">Guidelines</a>."</p>
  <p>To give an example, if you wanted to help out with end-user documentation, you would do well to go to the <a href="http://documentation.openoffice.org">Documentation project </a> and from there either see if there are posted "to-dos" on the homepage and (or) join the primary discussion list for the "doc" project and post a message introducing yourself and expressing your interest in helping out with the project. This pattern holds true for other OpenOffice.org projects: go to the "To-Dos" Page, then project homepage, browse the mailing list archives, and get a sense of what needs to be done.</p>
  <p>To make things easier, we are also posting a regularly updated project status page, which is intended to give users a sense of what work is being done in a given project.</p>
  <p>Note: It is often easier for community members to download the snapshot source of the entire build or browse specific modules on the anoncvs server. To browse specific modules, go to the project in which you are interested, click on the "Source" button and scroll down until you see the instructions for browsing the modules. To view a specific project module, place a "oo/" before the module name. For example, Whiteboard would be <font face="courier">"oo/whiteboard"</font> instead of just Whiteboard as on the main server.</p>
</div>
<p class="Header">Useful links</p>
<ul><li><a href="http://development.openoffice.org/">Development Section</a>&nbsp;&nbsp;Comprehensive section for developers of OpenOffice.org
  <li><a href="http://wiki.services.openoffice.org/wiki/Main_Page ">Developer Wiki</a>&nbsp;&nbsp;Excellent start for developers; up-to-date and interesting
  <li><a href="../faq.html">FAQs</a>&nbsp; Answers to fundamental questions about OpenOffice.org
  <li><a href="../contact_us.html">Contacting Us</a> Information and suggestions on communicating with the administrative staff
  <li><a href="../license.html">Licenses</a> Texts of the Public Document License, the source license (LGPL), and explanations of licensing policy
  <li>Guidelines
    <ul>
      <li><a href="../dev_docs/guidelines.html">Participation</a> </li>
      <li><a href="protocols_proposing.html">Project Proposal</a></li>
    </ul>
  <li><a href="../editorial/index.html">Newsletter</a> The OpenOffice.org Newsletter, written by community members</li>
  <li><a href="../mail_list.html">Mailing Lists</a> Information on general and technical mailing lists. Note: All mail lists are public! 
</ul>
<hr>
$Revision: 1.48 $
</body>
</html>
