Revert "Simplify artifacts deployment to Maven Central"
This strategy generates a syntactically valid, barebones pom.xml like:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-extension-api</artifactId>
<version>2.15-rc0</version>
<packaging>javadoc</packaging>
</project>
But Nexus rejects this pom when closing the staging repository,
complaining about the lack of license/developer/etc.
This reverts commit 0ce2fdc1c22701745b8c3e1bb9b3f49de6b34de0.
Change-Id: Idab2a82ddd81d60f0ca6eea44d80706e04262c6b
diff --git a/Documentation/dev-release.txt b/Documentation/dev-release.txt
index 2f6a7d6..039d545 100644
--- a/Documentation/dev-release.txt
+++ b/Documentation/dev-release.txt
@@ -89,14 +89,22 @@
. 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 @@
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/fake_pom.xml b/gerrit-acceptance-framework/pom.xml
similarity index 85%
copy from fake_pom.xml
copy to gerrit-acceptance-framework/pom.xml
index 6ec45e5..747f5d4 100644
--- a/fake_pom.xml
+++ b/gerrit-acceptance-framework/pom.xml
@@ -1,11 +1,11 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
- <artifactId>gerrit</artifactId>
- <version>1</version> <!-- Do not edit; see version.bzl. -->
+ <artifactId>gerrit-acceptance-framework</artifactId>
+ <version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Gerrit Code Review - Extension API</name>
- <description>API for Gerrit Extensions</description>
+ <name>Gerrit Code Review - Acceptance Test Framework</name>
+ <description>Framework for Gerrit's acceptance tests</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
@@ -53,15 +53,9 @@
<name>Logan Hanks</name>
</developer>
<developer>
- <name>Luca Milanesio</name>
- </developer>
- <developer>
<name>Martin Fick</name>
</developer>
<developer>
- <name>Patrick Hiesel</name>
- </developer>
- <developer>
<name>Saša Živkov</name>
</developer>
<developer>
diff --git a/fake_pom.xml b/gerrit-extension-api/pom.xml
similarity index 95%
rename from fake_pom.xml
rename to gerrit-extension-api/pom.xml
index 6ec45e5..b6556bc 100644
--- a/fake_pom.xml
+++ b/gerrit-extension-api/pom.xml
@@ -1,8 +1,8 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
- <artifactId>gerrit</artifactId>
- <version>1</version> <!-- Do not edit; see version.bzl. -->
+ <artifactId>gerrit-extension-api</artifactId>
+ <version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Gerrit Code Review - Extension API</name>
<description>API for Gerrit Extensions</description>
diff --git a/fake_pom.xml b/gerrit-plugin-api/pom.xml
similarity index 85%
copy from fake_pom.xml
copy to gerrit-plugin-api/pom.xml
index 6ec45e5..f9dc7e4 100644
--- a/fake_pom.xml
+++ b/gerrit-plugin-api/pom.xml
@@ -1,11 +1,11 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
- <artifactId>gerrit</artifactId>
- <version>1</version> <!-- Do not edit; see version.bzl. -->
+ <artifactId>gerrit-plugin-api</artifactId>
+ <version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Gerrit Code Review - Extension API</name>
- <description>API for Gerrit Extensions</description>
+ <name>Gerrit Code Review - Plugin API</name>
+ <description>API for Gerrit Plugins</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
@@ -53,15 +53,9 @@
<name>Logan Hanks</name>
</developer>
<developer>
- <name>Luca Milanesio</name>
- </developer>
- <developer>
<name>Martin Fick</name>
</developer>
<developer>
- <name>Patrick Hiesel</name>
- </developer>
- <developer>
<name>Saša Živkov</name>
</developer>
<developer>
diff --git a/fake_pom.xml b/gerrit-plugin-gwtui/pom.xml
similarity index 85%
copy from fake_pom.xml
copy to gerrit-plugin-gwtui/pom.xml
index 6ec45e5..daabb46 100644
--- a/fake_pom.xml
+++ b/gerrit-plugin-gwtui/pom.xml
@@ -1,11 +1,11 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
- <artifactId>gerrit</artifactId>
- <version>1</version> <!-- Do not edit; see version.bzl. -->
+ <artifactId>gerrit-plugin-gwtui</artifactId>
+ <version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
- <name>Gerrit Code Review - Extension API</name>
- <description>API for Gerrit Extensions</description>
+ <name>Gerrit Code Review - Plugin GWT UI</name>
+ <description>Common Classes for Gerrit GWT UI Plugins</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
@@ -53,15 +53,9 @@
<name>Logan Hanks</name>
</developer>
<developer>
- <name>Luca Milanesio</name>
- </developer>
- <developer>
<name>Martin Fick</name>
</developer>
<developer>
- <name>Patrick Hiesel</name>
- </developer>
- <developer>
<name>Saša Živkov</name>
</developer>
<developer>
diff --git a/fake_pom.xml b/gerrit-war/pom.xml
similarity index 84%
copy from fake_pom.xml
copy to gerrit-war/pom.xml
index 6ec45e5..f3dec88c4 100644
--- a/fake_pom.xml
+++ b/gerrit-war/pom.xml
@@ -1,11 +1,11 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
- <artifactId>gerrit</artifactId>
- <version>1</version> <!-- Do not edit; see version.bzl. -->
- <packaging>jar</packaging>
- <name>Gerrit Code Review - Extension API</name>
- <description>API for Gerrit Extensions</description>
+ <artifactId>gerrit-war</artifactId>
+ <version>2.15-SNAPSHOT</version>
+ <packaging>war</packaging>
+ <name>Gerrit Code Review - WAR</name>
+ <description>Gerrit WAR</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
@@ -53,15 +53,9 @@
<name>Logan Hanks</name>
</developer>
<developer>
- <name>Luca Milanesio</name>
- </developer>
- <developer>
<name>Martin Fick</name>
</developer>
<developer>
- <name>Patrick Hiesel</name>
- </developer>
- <developer>
<name>Saša Živkov</name>
</developer>
<developer>
diff --git a/tools/maven/mvn.py b/tools/maven/mvn.py
index 2426b9f..f7b5aa8 100755
--- a/tools/maven/mvn.py
+++ b/tools/maven/mvn.py
@@ -19,10 +19,6 @@
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 @@
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 @@
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 0000000..fed6d5d
--- /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*<version>)([-.\w]+)(</version>\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)