General

Community

Development

Project Management PPMC

The Apache Software Foundation

Website Development

Two Websites

The Apache OpenOffice project maintains two websites:

Both of these sites use the Apache Content Management System (CMS). In essence, regardless of how you make changes to either web area, the changes first go the staging sites for these areas, respectively --

Additionally, the project website uses Markdown for page contents. The "legacy" OpenOffice.org site uses html.

Version Control

We use Apache Subversion for version control. You can browse the project repository or browse the user portal repository in your web browser.

Making Changes to the Sites

Using SVN

You can make changes to either site using svn (subversion). This typically involves doing an svn checkout, making changes to files and then either committing your changes if you are an "Apache committer", or submitting a "patch" (an svn "diff" file) if you are a contributor but not a "committer". Consult your local svn implementation for how to do commits or create patches. (See also, the SVN Book ). Patches can be submitted as attachments to e-mail to the Apache OpenOffice developer list.

SVN commits will commit your changes to the "staging area". you will need to "publish" your changes to make them active on the "production" site.

Using the Apache CMS Bookmarklet

Quick editing of the site is available for committers and contributors using the Apache CMS from your browser. If you are a commtter and use the bookmarklet, you should use your Apache credentials to log in, make changes and submit them to staging. If you are a contributor, and not a committer, you can still use the bookmarklet. See additional details in the Apache CMS Reference.

Publishing Changes

As previously noted, changes you make, either through an svn commit or using the CMS GUI tool, are enacted on the staging sites. Only Apache "committers" can actually publish sites.

Generally speaking, unless you have established a full Complete Local Development environment as described in the next section, you will likely be running publish.pl from your "people.apache.org" account.

Preparations for Complete Local Development

The following information provides instructions on doing website development on your local computer. These instructions assume you have setup a webserver in your local environment. Details are provided on setting up the resources needed to process "Markdown" on your local server and how to publish to the production Apache OpenOffice sites from your local environment.

Setup

Create a directory on your computer for the Apache CMS work with both the podling's

incubator site and the migrating openoffice.org website.

mkdir ooo-web
cd ooo-web

Download the svn repos for the AOOo site.

svn co https://svn.apache.org/repos/asf/incubator/ooo/site/trunk site

Download the svn repos for the migrated OpenOffice.org website.

svn co https://svn.apache.org/repos/asf/incubator/ooo/ooo-site/trunk ooo-site

Download the svn repos for the Apache CMS.

svn co https://svn.apache.org/repos/infra/websites/cms/ cms

You will have three sub-directories in your local website directory - site, ooo-site, and cms.

Install Python dependencies.

Adapted from the Apache CMS Reference

The easiest way to install the dependencies is to use Python setuptools.

Check your version of Python

python --version

Follow the installation instructions for setuptools.

Install dependencies

sudo easy_install Pygments
sudo easy_install ElementTree
sudo easy_install Markdown

Directory Layout

Content directories

The site/content/openofficeorg and ooo-site/content/ directories contain web content - markdown, html, javascript, css, images and other files. Files that do not fit recognized patterns from site/lib/path.pm or ooo-site/lib/path.pm are copied as is to the web site during the build.

Templates directory

The site/templates and ooo-site/templates directories contain the html skeletons used during the site build.

Lib directory

The site/lib and ooo-site/lib directories contain two python modules that determine how content files are processed during the site build.

Build tools

You can find the CMS build tools in the cms directory.

These can be extended locally. Before any changes become part of our process they will need to be cleared with Apache Infrastructure. We'll need to submit patches. These should be additive or be bug fixes.

Local Development

Edit the site

Using your favorite editors edit the site content, templates, and lib scripts.

Python Markdown Daemon

Start the Python Markdown daemon.

export MARKDOWN_SOCKET=`pwd`/markdown.socket PYTHONPATH=`pwd`
python cms/build/markdownd.py

Build the sites.

cms/build/build_site.pl --source-base site --target-base www
cms/build/build_site.pl --source-base ooo-site --target-base www

Copy the site to your computer's web server.

On my Mac:

sudo scp -rp www/content /Library/WebServer/Documents/.

The site is then available with http://localhost/openofficeorg/ or http://localhost/

Submitting your results.

Committer

Do the appropriate combination of svn status, svn add, and svn commits. Commits will cause staging rebuilds. See How to Edit the OpenOffice.org Website

Please note that if you have removed any files or directories from your source tree then you must also remove these from the staging build. The staging for the project site is https://svn.apache.org/repos/infra/websites/staging/openofficeorg. Check the staging builf out, svn remove and commit the same files and directories.

Contributor

Use SVN to submit svn "diffs".

For further information see the Apache Source Code Repository page.

Copyright © 2011-2012 The Apache Software Foundation Licensed under the Apache License, Version 2.0 | Contact Us | Terms of Use

Apache and the Apache feather logos are trademarks of The Apache Software Foundation. OpenOffice.org and the seagull logo are registered trademarks of The Apache Software Foundation. Other names appearing on the site may be trademarks of their respective owners.

Apache OpenOffice is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.