diff --git a/Documentation/dev-release.txt b/Documentation/dev-release.txt
index 2f6a7d6939..039d545d24 100644
--- a/Documentation/dev-release.txt
+++ b/Documentation/dev-release.txt
@@ -89,14 +89,22 @@ To create a Gerrit release the following steps have to be done:
. link:#merge-stable[Merge `stable` into `master`]
-[[update-version]]
-=== Update Version and Create Release Tag
+[[update-versions]]
+=== Update Versions and Create Release Tag
Before doing the release build, the `GERRIT_VERSION` in the `version.bzl`
file must be updated, e.g. change it from `2.5-SNAPSHOT` to `2.5`.
-Commit the change in `version.bzl` and create a signed release tag on the
-new commit:
+In addition the version must be updated in a number of pom.xml files.
+
+To do this run the `./tools/version.py` script and provide the new
+version as parameter, e.g.:
+
+----
+ ./tools/version.py 2.5
+----
+
+Commit the changes and create a signed release tag on the new commit:
----
git tag -s -m "v2.5" v2.5
@@ -139,8 +147,9 @@ Verify the versions:
link:dev-release-deploy-config.html#deploy-configuration-setting-maven-central[
configuration] for deploying to Maven Central
-* Make sure that the version is updated in the `version.bzl` file as described
-in the link:#update-version[Update Version and Create Release Tag] section.
+* Make sure that the version is updated in the `version.bzl` file and in
+the `pom.xml` files as described in the link:#update-versions[Update
+Versions and Create Release Tag] section.
* Push the WAR to Maven Central:
+
diff --git a/gerrit-acceptance-framework/pom.xml b/gerrit-acceptance-framework/pom.xml
new file mode 100644
index 0000000000..747f5d4646
--- /dev/null
+++ b/gerrit-acceptance-framework/pom.xml
@@ -0,0 +1,86 @@
+
+ 4.0.0
+ com.google.gerrit
+ gerrit-acceptance-framework
+ 2.15-SNAPSHOT
+ jar
+ Gerrit Code Review - Acceptance Test Framework
+ Framework for Gerrit's acceptance tests
+ https://www.gerritcodereview.com/
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+ https://gerrit.googlesource.com/gerrit
+ https://gerrit.googlesource.com/gerrit
+
+
+
+
+ Alice Kober-Sotzek
+
+
+ Andrew Bonventre
+
+
+ Becky Siegel
+
+
+ Dave Borowitz
+
+
+ David Ostrovsky
+
+
+ David Pursehouse
+
+
+ Edwin Kempin
+
+
+ Hugo Arès
+
+
+ Kasper Nilsson
+
+
+ Logan Hanks
+
+
+ Martin Fick
+
+
+ Saša Živkov
+
+
+ Shawn Pearce
+
+
+ Viktar Donich
+
+
+ Wyatt Allen
+
+
+
+
+
+ Repo and Gerrit Discussion
+ repo-discuss@googlegroups.com
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+
+
+
+
+ https://bugs.chromium.org/p/gerrit/issues/list
+ Gerrit Issue Tracker
+
+
diff --git a/fake_pom.xml b/gerrit-extension-api/pom.xml
similarity index 96%
rename from fake_pom.xml
rename to gerrit-extension-api/pom.xml
index 6ec45e5fcc..b6556bc956 100644
--- a/fake_pom.xml
+++ b/gerrit-extension-api/pom.xml
@@ -1,8 +1,8 @@
4.0.0
com.google.gerrit
- gerrit
- 1
+ gerrit-extension-api
+ 2.15-SNAPSHOT
jar
Gerrit Code Review - Extension API
API for Gerrit Extensions
diff --git a/gerrit-plugin-api/pom.xml b/gerrit-plugin-api/pom.xml
new file mode 100644
index 0000000000..f9dc7e46be
--- /dev/null
+++ b/gerrit-plugin-api/pom.xml
@@ -0,0 +1,86 @@
+
+ 4.0.0
+ com.google.gerrit
+ gerrit-plugin-api
+ 2.15-SNAPSHOT
+ jar
+ Gerrit Code Review - Plugin API
+ API for Gerrit Plugins
+ https://www.gerritcodereview.com/
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+ https://gerrit.googlesource.com/gerrit
+ https://gerrit.googlesource.com/gerrit
+
+
+
+
+ Alice Kober-Sotzek
+
+
+ Andrew Bonventre
+
+
+ Becky Siegel
+
+
+ Dave Borowitz
+
+
+ David Ostrovsky
+
+
+ David Pursehouse
+
+
+ Edwin Kempin
+
+
+ Hugo Arès
+
+
+ Kasper Nilsson
+
+
+ Logan Hanks
+
+
+ Martin Fick
+
+
+ Saša Živkov
+
+
+ Shawn Pearce
+
+
+ Viktar Donich
+
+
+ Wyatt Allen
+
+
+
+
+
+ Repo and Gerrit Discussion
+ repo-discuss@googlegroups.com
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+
+
+
+
+ https://bugs.chromium.org/p/gerrit/issues/list
+ Gerrit Issue Tracker
+
+
diff --git a/gerrit-plugin-gwtui/pom.xml b/gerrit-plugin-gwtui/pom.xml
new file mode 100644
index 0000000000..daabb46f7d
--- /dev/null
+++ b/gerrit-plugin-gwtui/pom.xml
@@ -0,0 +1,86 @@
+
+ 4.0.0
+ com.google.gerrit
+ gerrit-plugin-gwtui
+ 2.15-SNAPSHOT
+ jar
+ Gerrit Code Review - Plugin GWT UI
+ Common Classes for Gerrit GWT UI Plugins
+ https://www.gerritcodereview.com/
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+ https://gerrit.googlesource.com/gerrit
+ https://gerrit.googlesource.com/gerrit
+
+
+
+
+ Alice Kober-Sotzek
+
+
+ Andrew Bonventre
+
+
+ Becky Siegel
+
+
+ Dave Borowitz
+
+
+ David Ostrovsky
+
+
+ David Pursehouse
+
+
+ Edwin Kempin
+
+
+ Hugo Arès
+
+
+ Kasper Nilsson
+
+
+ Logan Hanks
+
+
+ Martin Fick
+
+
+ Saša Živkov
+
+
+ Shawn Pearce
+
+
+ Viktar Donich
+
+
+ Wyatt Allen
+
+
+
+
+
+ Repo and Gerrit Discussion
+ repo-discuss@googlegroups.com
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+
+
+
+
+ https://bugs.chromium.org/p/gerrit/issues/list
+ Gerrit Issue Tracker
+
+
diff --git a/gerrit-war/pom.xml b/gerrit-war/pom.xml
new file mode 100644
index 0000000000..f3dec88c41
--- /dev/null
+++ b/gerrit-war/pom.xml
@@ -0,0 +1,86 @@
+
+ 4.0.0
+ com.google.gerrit
+ gerrit-war
+ 2.15-SNAPSHOT
+ war
+ Gerrit Code Review - WAR
+ Gerrit WAR
+ https://www.gerritcodereview.com/
+
+
+
+ The Apache Software License, Version 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+ repo
+
+
+
+
+ https://gerrit.googlesource.com/gerrit
+ https://gerrit.googlesource.com/gerrit
+
+
+
+
+ Alice Kober-Sotzek
+
+
+ Andrew Bonventre
+
+
+ Becky Siegel
+
+
+ Dave Borowitz
+
+
+ David Ostrovsky
+
+
+ David Pursehouse
+
+
+ Edwin Kempin
+
+
+ Hugo Arès
+
+
+ Kasper Nilsson
+
+
+ Logan Hanks
+
+
+ Martin Fick
+
+
+ Saša Živkov
+
+
+ Shawn Pearce
+
+
+ Viktar Donich
+
+
+ Wyatt Allen
+
+
+
+
+
+ Repo and Gerrit Discussion
+ repo-discuss@googlegroups.com
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+ https://groups.google.com/forum/#!forum/repo-discuss
+
+
+
+
+ https://bugs.chromium.org/p/gerrit/issues/list
+ Gerrit Issue Tracker
+
+
diff --git a/tools/maven/mvn.py b/tools/maven/mvn.py
index 2426b9feb8..f7b5aa82e9 100755
--- a/tools/maven/mvn.py
+++ b/tools/maven/mvn.py
@@ -19,10 +19,6 @@ from os import path, environ
from subprocess import check_output
from sys import stderr
-
-def mvn():
- return ['mvn', '--file', path.join(root, 'fake_pom.xml'), '-DgroupId=com.google.gerrit']
-
opts = OptionParser()
opts.add_option('--repository', help='maven repository id')
opts.add_option('--url', help='maven repository url')
@@ -41,12 +37,14 @@ while not path.exists(path.join(root, 'WORKSPACE')):
root = path.dirname(root)
if 'install' == args.a:
- cmd = mvn() + [
+ cmd = [
+ 'mvn',
'install:install-file',
'-Dversion=%s' % args.v,
]
elif 'deploy' == args.a:
- cmd = mvn() + [
+ cmd = [
+ 'mvn',
'gpg:sign-and-deploy-file',
'-DrepositoryId=%s' % args.repository,
'-Durl=%s' % args.url,
@@ -58,7 +56,7 @@ else:
for spec in args.s:
artifact, packaging_type, src = spec.split(':')
exe = cmd + [
- '-DartifactId=%s' % artifact,
+ '-DpomFile=%s' % path.join(root, '%s/pom.xml' % artifact),
'-Dpackaging=%s' % packaging_type,
'-Dfile=%s' % src,
]
diff --git a/tools/version.py b/tools/version.py
new file mode 100755
index 0000000000..fed6d5dfc1
--- /dev/null
+++ b/tools/version.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python
+# Copyright (C) 2014 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+from __future__ import print_function
+from optparse import OptionParser
+import os.path
+import re
+import sys
+
+parser = OptionParser()
+opts, args = parser.parse_args()
+
+if not len(args):
+ parser.error('not enough arguments')
+elif len(args) > 1:
+ parser.error('too many arguments')
+
+DEST_PATTERN = r'\g<1>%s\g<3>' % args[0]
+
+
+def replace_in_file(filename, src_pattern):
+ try:
+ f = open(filename, "r")
+ s = f.read()
+ f.close()
+ s = re.sub(src_pattern, DEST_PATTERN, s)
+ f = open(filename, "w")
+ f.write(s)
+ f.close()
+ except IOError as err:
+ print('error updating %s: %s' % (filename, err), file=sys.stderr)
+
+
+src_pattern = re.compile(r'^(\s*)([-.\w]+)(\s*)$',
+ re.MULTILINE)
+for project in ['gerrit-acceptance-framework', 'gerrit-extension-api',
+ 'gerrit-plugin-api', 'gerrit-plugin-gwtui',
+ 'gerrit-war']:
+ pom = os.path.join(project, 'pom.xml')
+ replace_in_file(pom, src_pattern)
+
+src_pattern = re.compile(r'^(GERRIT_VERSION = ")([-.\w]+)(")$', re.MULTILINE)
+replace_in_file('version.bzl', src_pattern)