Making a Gerrit Sub Project Release
===================================

Preparing a New Gerrit Subproject Snapshot for Publishing
---------------------------------------------------------

* You will need to have the following in the pom.xml to make it
  deployable to the gerrit-maven storage bucket:

----
  <distributionManagement>
    <repository>
      <id>gerrit-maven</id>
      <name>gerrit Maven Repository</name>
      <url>s3://gerrit-maven@commondatastorage.googleapis.com</url>
      <uniqueVersion>true</uniqueVersion>
    </repository>
  </distributionManagement>
----


* Add this to the pom.xml to enable the wagon provider:

----
  <build>
    <extensions>
      <extension>
        <groupId>net.anzix.aws</groupId>
        <artifactId>s3-maven-wagon</artifactId>
        <version>3.2</version>
      </extension>
    </extensions>
  </build>
----


* Add your username and password to your ~/.m2/settings.xml file.
  These need to come from the link:https://code.google.com/apis/console/[API Console].

----
  <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <servers>
      <server>
        <id>gerrit-maven</id>
        <username>GOOG..EXAMPLE.....EXAMPLE</username>
        <password>EXAMPLE..EXAMPLE..EXAMPLE</password>
      </server>
    </servers>
  </settings>
----


Making a Gerrit Subproject Snapshot
-----------------------------------

* First build and deploy the latest snapshot and ensure that Gerrit builds
with this snapshot

* Deploy the snapshot:

----
  mvn deploy
----


Making a Gerrit Subproject Release
----------------------------------

* First deploy (and test) the latest snapshot for this subprojects

* Update the top level pom.xml in the subproject to reflect the new project
version (the exact value of the tag you will create below)

* Commit the pom change and push to the project's repo refs/for/<master/stable>

* Tag the version you just pushed (and push the tag)

* Deploy the new release:

----
 mvn deploy
----
