• WARNING: THESE INSTRUCTIONS ARE OUTDATED - THE SITE NOW USES SVNPUBSUB*

The main site source is now located in https://svn.apache.org/repos/asf/httpcomponents/project-website/trunk

Updating the HttpComponents Main Site

For updating other parts of our website, see WebSite.

Prepare

You will need Subversion and Maven 2 to update the main site. The main site is stored in the project directory in Subversion.

Checkout the project directory from Subversion to a local directory:

svn co https://svn.apache.org/repos/asf/httpcomponents/project/

Alternatively, you may checkout the project trunk which includes the project directory as an external reference:

svn co https://svn.apache.org/repos/asf/httpcomponents/project-trunk/

If you are not a committer, you can use http: instead of https: for checkout.

Our Maven project is structured hierarchically, with the project directory on top and the components as subprojects. When you update the main site, it is important that you pass the -N or --non-recursive flag to Maven2. Otherwise, Maven will automatically descend to the components and modules, regenerating and/or deploying their sites as well. At best, this causes annoying delays.

Change and Review

The navigation bar to the left is defined in

project/src/site/site.xml

The pages are defined as .apt (Almost Plain Text) or .xml (XDoc) in

project/src/site/apt/
project/src/site/xdoc/

After changing the site, you can regenerate it with the following commands. Maven2 has to be called from the project directory, where pom.xml is located. If you have changed the navigation, use the clean target to enforce regeneration of all pages. Without that target, only pages for which the source file was modified will be regenerated.

mvn -N site:site
mvn -N clean site:site

The site will be generated to the directory

project/target/site/

Links to the component sites are relative and will not work locally.

External links and links within the main site do work locally.

Patch

If you are not a committer, you can now generate a patch for contribution.

Change to the project directory and use Subversion to generate the patch in unidiff format:

svn diff > my-site-patch-xxx.txt

Please choose a meaningful name for the patch file. Then open an issue in JIRA.

Describe the changes that your patch takes care of, and attach the patch.

If you are a committer, you must commit the update to Subversion before deploying the site:

svn commit -m "..."

Deploy

Only HttpComponents committers can deploy our website. If you are not a committer, please contribute your update as a patch.

We currently deploy the main site directly from Maven2. There is some setup required to do that.

When deploying the main site, Maven2 will remove the execute permission from downloads.cgi. If this change is synced to the Apache webservers, our download site will not work anymore. It is therefore necessary to update the permission after deploying the site.

Open two terminals, one locally for deploying the main site, the other one remotely on people.apache.org.

On people.apache.org, prepare (but do not execute yet) the command for updating the permissions:

people.apache.org> chmod a+x /www/hc.apache.org/downloads.cgi

On your local machine, change to the project directory and deploy the main site. Deploying the site will not automatically regenerate it. Maybe you'd like to do that once more, just to be sure:

mvn -N clean site:site
mvn -N site:deploy

Beware: You will be asked for your passphrase, and Maven2 shows your input in plain text on the terminal. Make sure nobody is watching you or the screen!

As soon as the deployment is complete, execute the command prepared above:

people.apache.org> chmod a+x /www/hc.apache.org/downloads.cgi

If you have deleted, moved or renamed pages, you have to remove them manually on people.apache.org.

Updates to the web site are synced with the Apache servers every few hours. Deletions are synced less frequently, so you will still be able to access the deleted pages when the updates are already visible. Try again the day after.

  • No labels