Jetty/Contributor/Releasing
The Jetty project uses Apache Maven to build and release its software artifacts. This terminology is oft confused with the release process of projects within Eclipse so we are endeavoring to bridge these differences. We are still working out the process for releasing Jetty in the Eclipse definition of the word; this will be documented once we are there.
Contents
- 1 Update Eclipse Project Plan
- 2 Releasing Artifacts
- 3 Building and Deploying Aggregate Docs
- 4 Deploying distribution files to download.eclipse.org
- 5 Do a Codehaus release ASAP
- 6 DO SOME MANUAL TESTING
- 7 Updating the stable links
- 8 Updating the Eclipse websites downloads page
- 9 Adding a Link to the Index on the Wiki
Update Eclipse Project Plan
Do this in the git admin repository before any release. The file is jetty-project-plan.xml in the org.eclipse.jetty.admin.git repository.
Releasing Artifacts
Step by Step Release Process
The released artifacts will be staged to oss.sonatype.org where they await promotion when they will be released to the maven central repository. More on this later.
Building and Deploying Aggregate Docs
Define the jetty.eclipse.website server entry in your .m2/settings.xml file. You'll need to have access to the dev.eclipse.org machine to perform these actions. If you don't know if you have access to this then you probably don't and will need to ask a project leader for help.
To build and deploy the aggregate javadoc and jxr bits:
cd target/checkout mvn -Paggregate-site javadoc:aggregate jxr:jxr mvn -N site:deploy
This will generate the aggregate docs and deploy them to the /home/www/jetty/<project version>/jetty-project directory on download.eclipse.org. The last step is to ssh to that machine and adjust the placement of the apidocs and xref directories to remove the jetty-project folder from the url so that we maintain a clean and consistent api url scheme.
ssh $COMMITTER_ID@dev.eclipse.org cd /home/data/httpd/download.eclipse.org/jetty/<VERSION> mv jetty-project/apidocs . mv jetty-project/xref . rmdir jetty-project
End result should be api documents accessible from http://download.eclipse.org/jetty/<project version>/api-docs and http://download.eclipse.org/jetty/<project version>/xref
Deploying distribution files to download.eclipse.org
- download the files in http://repo2.maven.org/maven2/org/eclipse/jetty/jetty-distribution/VERSION into a directory called 'dist':
mkdir /tmp/dist cd /tmp/dist wget -nd -nH -r -l1 https://oss.sonatype.org/content/groups/jetty-with-staging/org/eclipse/jetty/jetty-distribution/<VERSION> rm Sonatype-content.css* index.html cd .. scp -r dist <user>@dev.eclipse.org:/home/data/httpd/download.eclipse.org/jetty<VERSION>
- update website links
Do a Codehaus release ASAP
Make sure a codehaus release is built and staged before the jetty release is promoted.
DO SOME MANUAL TESTING
Test jetty, hightide and the plugin. A good test line to run is:
java -Dcom.sun.management.jmxremote -jar start.jar \ OPTIONS=ajp,rewrite \ --pre=etc/jetty-jmx.xml \ --pre=etc/jetty-logging.xml \ etc/jetty-ajp.xml \ etc/jetty-bio.xml \ etc/jetty-bio-ssl.xml \ etc/jetty-debug.xml \ etc/jetty-ipaccess.xml \ etc/jetty-rewrite.xml \ etc/jetty-ssl.xml \ etc/jetty-stats.xml
Updating the stable links
Since we are not allowed to have symbolic links on the download site we have to log into the machine manually and remove the previous stable directory and 'cp -r <full_version> stable-<major_version>' to get it updated. Maintaining the conventions we use on the site will allow all 'stable' links to be stable and not needed to update to the latest major Jetty build version. For example, to update 9.0.0.M5 as the stable version for the 9 series do:
ssh <user>@build.eclipse.org cd downloads rm -fr stable-9 cp -r 9.0.0.M5 stable-9 ./index.sh
Updating the Eclipse websites downloads page
The Eclipse website is in CVS, viewable from http://dev.eclipse.org/viewcvs/index.cgi/www/jetty/?root=Eclipse_Website. Access details are:
- Host
- dev.eclipse.org
- Repository Path
- /cvsroot/org.eclipse
- User
- (committer username)
- Password
- (committer password)
- Connection Type
- extssh
- Module
- www/jetty
Any commits you make will automatically show up live after a few minutes.
Set up in Eclipse
- import projects from CVS
- create a new repository location
- use an existing module (www/jetty)
Then you can simply edit the page, and commit your changes.
Preview locally (optional)
If you want to be able to preview your changes locally, you need to have Apache running, and check out an additional module, eclipse.org-common:
- Host
- dev.eclipse.org
- Repository Path
- /cvsroot/technology
- User
- anonymous
- Password
- (leave blank)
- Connection Type
- pserver
- Module
- org.eclipse.phoenix/eclipse.org-common
- cd /var/www
- ln -s /path/to/eclipse.org-common eclipse.org-common
- ln -s /path/to/www/jetty jetty
Then you'll be able to see the website on http://localhost/jetty, pre-commits.
Adding a Link to the Index on the Wiki
Update Jetty/Reference/Index of Generated Release Documents; add the newest version to the top of the page. Use the Jetty Release Document template