How We Manage the Apache CloudStack Web Site

The main Apache CloudStack Web site is managed using the Apache CMS. All of the content is stored in the Apache CloudStack Subversion repository. To make changes to the site - modifying existing content or adding/removing content - you either need to use the Web interface or make changes via SVN.

This guide will explain how to make changes via SVN. Even if you're not a committer to Apache CloudStack, it's not that hard.

Reporting "Bugs" Against the Site

If you need to report a bug in the content, or request new content, please open a Jira ticket with the Component field set to Website. Note that the Wiki is not part of the Website component. (Edit boldly!) Assign the bug to Joe Brockmeier.

Checking Out the Web Site

To check out the Web site, use:

svn co https://svn.apache.org/repos/asf/cloudstack/site/

The content is under site/trunk/content/cloudstack/. The site template is under site/trunk/templates, and we'll cover that shortly.

You'll five kinds of content here:

  • Files with the .mdtext extension. These are Markdown files that are converted to HTML when processed by the Apache build system.
  • Images under the site/trunk/content/cloudstack/images directory. If you add images to the site, please try to be sure that they're optimized for the Web. (That is, make sure they've been optimized for size so that users aren't downloading files larger than 1MB when it's not necessary.)
  • CSS under the site/trunk/content/cloudstack/css directory. The CSS for the current iteration of the site comes from the Bootstrap project (lightly modified for the CloudStack site).
  • The FontAwesome fonts for glyphs and such used by the Twitter Bootstrap project.
  • JavaScript under the site/trunk/content/cloudstack/js directory. The JavaScript for the current iteration of the site comes from the Bootstrap project.

For the most part, you'll only need to work with the Markdown files.

Making Changes and Submitting Your Changes for Committers

If you need to make a change to the site content, follow these steps:

  • $ svn co https://svn.apache.org/repos/asf/cloudstack/site/
  • If you haven't just checked out the content, use svn up to ensure that you're working on the latest version.
  • Make the changes or additions to the content. Note that you should only create .mdtext files (as opposed to HTML).
  • If it's a new file, make sure to use svn add like so: svn add newfile.mdtext. You can omit this if the file already existed.
  • Verify the changes with svn status. You should see something like this:
[jzb@localhost cloudstack]$ svn status
M       mailing-lists.mdtext
  • Assuming svn status shows the changes you expect to see, you're ready to commit to SVN. Use svn ci -m "Useful commit message goes here".
[jzb@localhost cloudstack]$ svn ci -m "Modified the mailing list page slightly. Added links to the archives."
Sending        mailing-lists.mdtext
Transmitting file data .
Committed revision 1447815.
  • Once you're satisfied that the commits are accurate, publish the site:
curl -sL http://s.apache.org/cms-cli | perl

You'll be prompted for the project name, your username, and password.

Note that you'll need to have the LWP::Protocol::https (this is the perl-LWP-Protocol-https package on Fedora) and possibly other dependencies to work. Alternately, you can run:

ssh -t _user_@people.apache.org publish.pl cloudstack _apacheID_

Making Changes and Submitting Your Changes for Non-Committers

  • $ svn co https://svn.apache.org/repos/asf/cloudstack/site/
  • If you haven't just checked out the content, use svn up to ensure that you're working on the latest version.
  • Make the changes or additions to the content. Note that you should only create .mdtext files (as opposed to HTML).
  • If it's a new file, make sure to use svn add like so: svn add newfile.mdtext. You can omit this if the file already existed.
  • Verify the changes with svn status. You should see something like this:
[jzb@localhost cloudstack]$ svn status
M       mailing-lists.mdtext
  • Assuming svn status shows the changes you expect to see, you're ready to create a diff.