Jump to: navigation, search

Difference between revisions of "Jetty/Contributor/Releasing"

(New page: 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...)
 
 
(33 intermediate revisions by 4 users not shown)
Line 1: Line 1:
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 work and will be documented once we are there.
+
{{Jetty Contributor}}
  
== Maven Related Instructions ==
+
{{Jetty Redirect|http://www.eclipse.org/jetty/documentation/current/releasing-jetty.html}}
 +
 
 +
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.
 +
 
 +
 
 +
 
 +
== 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 ==
 
== Releasing Artifacts ==
  
> <tt>mvn -Dusername=<committer id> -DautoVersionSubmodules=true release:prepare</tt>
+
[[Jetty/Release Process|Step by Step Release Process]]
  
> <tt>mvn release:perform</tt>
 
  
 
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.
 
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 ==
 
== Building and Deploying Aggregate Docs ==
Line 18: Line 23:
 
To build and deploy the aggregate javadoc and jxr bits:
 
To build and deploy the aggregate javadoc and jxr bits:
  
> <tt>mvn -Paggregate-site javadoc:aggregate jxr:jxr</tt>
+
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 ''<nowiki>http://download.eclipse.org/jetty/<project version>/api-docs</nowiki>'' and ''<nowiki>http://download.eclipse.org/jetty/<project version>/xref</nowiki>''
 +
 
 +
== Deploying distribution files to download.eclipse.org ==
 +
 
 +
* download the files in ''<nowiki>http://repo2.maven.org/maven2/org/eclipse/jetty/jetty-distribution/VERSION</nowiki>'' 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:
 +
<div class='narrow-list'>
 +
; Host : dev.eclipse.org
 +
; Repository Path : /cvsroot/org.eclipse
 +
; User : (committer username)
 +
; Password : (committer password)
 +
; Connection Type : extssh
 +
; Module : www/jetty
 +
</div>
 +
 
 +
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) ===
  
> <tt>mvn -N site:deploy</tt>
+
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:
 +
<div class="narrow-list">
 +
; Host : dev.eclipse.org
 +
; Repository Path :  /cvsroot/technology
 +
; User : anonymous
 +
; Password : (leave blank)
 +
; Connection Type : pserver
 +
; Module : org.eclipse.phoenix/eclipse.org-common
 +
</div>
 +
# cd /var/www
 +
# ln -s /path/to/eclipse.org-common eclipse.org-common
 +
# ln -s /path/to/www/jetty jetty
  
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 maintain a clean and consistent api url scheme.
+
Then you'll be able to see the website on http://localhost/jetty, pre-commits.
  
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''
+
== 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 [[Template: Jetty Release Document|Jetty Release Document template]]

Latest revision as of 14:54, 23 April 2013



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.


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

  1. import projects from CVS
  2. create a new repository location
  3. 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
  1. cd /var/www
  2. ln -s /path/to/eclipse.org-common eclipse.org-common
  3. 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