:linkattrs:
= Making a Release of a Gerrit Subproject

[[make-snapshot]]
== Make a Snapshot

* Build the latest snapshot and install it into the local Maven
repository:
+
----
  mvn clean install
----

* Test Gerrit with this snapshot locally


== Publish Snapshot

If a snapshot for a subproject was created that should be referenced by
Gerrit while current Gerrit development is ongoing, this snapshot needs
to be published.

* Make sure you have done the configuration needed for deployment:
** link:dev-release-deploy-config.html#deploy-configuration-settings-xml[
Configuration in Maven `settings.xml`]
** link:dev-release-deploy-config.html#deploy-configuration-subprojects[
Configuration for Subprojects in `pom.xml`]

* Deploy the new snapshot:
+
----
  mvn deploy
----

* Change the `id`, `bin_sha1`, and `src_sha1` values in the `maven_jar`
for the subproject in `/WORKSPACE` to the `SNAPSHOT` version.
+
When Gerrit gets released, a release of the subproject has to be done
and Gerrit has to reference the released subproject version.


[[prepare-release]]
== Prepare the Release

* link:#make-snapshot[First create (and test) the latest snapshot for
the subproject]

* 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)

* Create the Release Tag
+
----
  git tag -a -m "prolog-cafe 1.3" v1.3
----

* Build and install into local Maven repository:
+
----
  mvn clean install
----


[[publish-release]]
== Publish the Release

* Make sure you have done the configuration needed for deployment:
** link:dev-release-deploy-config.html#deploy-configuration-settings-xml[
Configuration in Maven `settings.xml`]
** Configuration in `pom.xml` for
link:dev-release-deploy-config.html#deploy-configuration-subprojects[subprojects]

* Deploy the new release:
+
----
  mvn deploy -DperformRelease=true
----

* Push the pom change(s) to the project's repository
`refs/for/<master|stable>`

* Push the Release Tag
+
----
  git push gerrit-review refs/tags/v1.3:refs/tags/v1.3
----


GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
