Simplify artifacts deployment to Maven Central

De-duplicate the pom.xml definition in top-level directories and rename
the single left pom.xml file as fake_pom.xml. Roll-back the process of
version update in pom.xml file and remove the version.py utility. It's
not needed, as the version is passed to the mvn program on the command
line.

This is the preparation change for flattening the directory structure
and dissolving gerrit-* top-level directories.

Change-Id: Ied4d580e5ce2e98858f1f8e248969da1cb7d3a9a
This commit is contained in:
David Ostrovsky 2017-08-20 20:47:12 +02:00
parent 93f7709b2a
commit 0ce2fdc1c2
8 changed files with 15 additions and 421 deletions

View File

@ -89,22 +89,14 @@ To create a Gerrit release the following steps have to be done:
. link:#merge-stable[Merge `stable` into `master`]
[[update-versions]]
=== Update Versions and Create Release Tag
[[update-version]]
=== Update Version 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`.
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:
Commit the change in `version.bzl` and create a signed release tag on the
new commit:
----
git tag -s -m "v2.5" v2.5
@ -147,9 +139,8 @@ 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 and in
the `pom.xml` files as described in the link:#update-versions[Update
Versions and Create Release Tag] section.
* 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.
* Push the WAR to Maven Central:
+

View File

@ -1,8 +1,8 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-extension-api</artifactId>
<version>2.15-SNAPSHOT</version>
<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>

View File

@ -1,86 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-acceptance-framework</artifactId>
<version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Gerrit Code Review - Acceptance Test Framework</name>
<description>Framework for Gerrit's acceptance tests</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://gerrit.googlesource.com/gerrit</url>
<connection>https://gerrit.googlesource.com/gerrit</connection>
</scm>
<developers>
<developer>
<name>Alice Kober-Sotzek</name>
</developer>
<developer>
<name>Andrew Bonventre</name>
</developer>
<developer>
<name>Becky Siegel</name>
</developer>
<developer>
<name>Dave Borowitz</name>
</developer>
<developer>
<name>David Ostrovsky</name>
</developer>
<developer>
<name>David Pursehouse</name>
</developer>
<developer>
<name>Edwin Kempin</name>
</developer>
<developer>
<name>Hugo Arès</name>
</developer>
<developer>
<name>Kasper Nilsson</name>
</developer>
<developer>
<name>Logan Hanks</name>
</developer>
<developer>
<name>Martin Fick</name>
</developer>
<developer>
<name>Saša Živkov</name>
</developer>
<developer>
<name>Shawn Pearce</name>
</developer>
<developer>
<name>Viktar Donich</name>
</developer>
<developer>
<name>Wyatt Allen</name>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>Repo and Gerrit Discussion</name>
<post>repo-discuss@googlegroups.com</post>
<subscribe>https://groups.google.com/forum/#!forum/repo-discuss</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/repo-discuss</unsubscribe>
<archive>https://groups.google.com/forum/#!forum/repo-discuss</archive>
</mailingList>
</mailingLists>
<issueManagement>
<url>https://bugs.chromium.org/p/gerrit/issues/list</url>
<system>Gerrit Issue Tracker</system>
</issueManagement>
</project>

View File

@ -1,86 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-plugin-api</artifactId>
<version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Gerrit Code Review - Plugin API</name>
<description>API for Gerrit Plugins</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://gerrit.googlesource.com/gerrit</url>
<connection>https://gerrit.googlesource.com/gerrit</connection>
</scm>
<developers>
<developer>
<name>Alice Kober-Sotzek</name>
</developer>
<developer>
<name>Andrew Bonventre</name>
</developer>
<developer>
<name>Becky Siegel</name>
</developer>
<developer>
<name>Dave Borowitz</name>
</developer>
<developer>
<name>David Ostrovsky</name>
</developer>
<developer>
<name>David Pursehouse</name>
</developer>
<developer>
<name>Edwin Kempin</name>
</developer>
<developer>
<name>Hugo Arès</name>
</developer>
<developer>
<name>Kasper Nilsson</name>
</developer>
<developer>
<name>Logan Hanks</name>
</developer>
<developer>
<name>Martin Fick</name>
</developer>
<developer>
<name>Saša Živkov</name>
</developer>
<developer>
<name>Shawn Pearce</name>
</developer>
<developer>
<name>Viktar Donich</name>
</developer>
<developer>
<name>Wyatt Allen</name>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>Repo and Gerrit Discussion</name>
<post>repo-discuss@googlegroups.com</post>
<subscribe>https://groups.google.com/forum/#!forum/repo-discuss</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/repo-discuss</unsubscribe>
<archive>https://groups.google.com/forum/#!forum/repo-discuss</archive>
</mailingList>
</mailingLists>
<issueManagement>
<url>https://bugs.chromium.org/p/gerrit/issues/list</url>
<system>Gerrit Issue Tracker</system>
</issueManagement>
</project>

View File

@ -1,86 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
<artifactId>gerrit-plugin-gwtui</artifactId>
<version>2.15-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Gerrit Code Review - Plugin GWT UI</name>
<description>Common Classes for Gerrit GWT UI Plugins</description>
<url>https://www.gerritcodereview.com/</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://gerrit.googlesource.com/gerrit</url>
<connection>https://gerrit.googlesource.com/gerrit</connection>
</scm>
<developers>
<developer>
<name>Alice Kober-Sotzek</name>
</developer>
<developer>
<name>Andrew Bonventre</name>
</developer>
<developer>
<name>Becky Siegel</name>
</developer>
<developer>
<name>Dave Borowitz</name>
</developer>
<developer>
<name>David Ostrovsky</name>
</developer>
<developer>
<name>David Pursehouse</name>
</developer>
<developer>
<name>Edwin Kempin</name>
</developer>
<developer>
<name>Hugo Arès</name>
</developer>
<developer>
<name>Kasper Nilsson</name>
</developer>
<developer>
<name>Logan Hanks</name>
</developer>
<developer>
<name>Martin Fick</name>
</developer>
<developer>
<name>Saša Živkov</name>
</developer>
<developer>
<name>Shawn Pearce</name>
</developer>
<developer>
<name>Viktar Donich</name>
</developer>
<developer>
<name>Wyatt Allen</name>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>Repo and Gerrit Discussion</name>
<post>repo-discuss@googlegroups.com</post>
<subscribe>https://groups.google.com/forum/#!forum/repo-discuss</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/repo-discuss</unsubscribe>
<archive>https://groups.google.com/forum/#!forum/repo-discuss</archive>
</mailingList>
</mailingLists>
<issueManagement>
<url>https://bugs.chromium.org/p/gerrit/issues/list</url>
<system>Gerrit Issue Tracker</system>
</issueManagement>
</project>

View File

@ -1,86 +0,0 @@
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.google.gerrit</groupId>
<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>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<scm>
<url>https://gerrit.googlesource.com/gerrit</url>
<connection>https://gerrit.googlesource.com/gerrit</connection>
</scm>
<developers>
<developer>
<name>Alice Kober-Sotzek</name>
</developer>
<developer>
<name>Andrew Bonventre</name>
</developer>
<developer>
<name>Becky Siegel</name>
</developer>
<developer>
<name>Dave Borowitz</name>
</developer>
<developer>
<name>David Ostrovsky</name>
</developer>
<developer>
<name>David Pursehouse</name>
</developer>
<developer>
<name>Edwin Kempin</name>
</developer>
<developer>
<name>Hugo Arès</name>
</developer>
<developer>
<name>Kasper Nilsson</name>
</developer>
<developer>
<name>Logan Hanks</name>
</developer>
<developer>
<name>Martin Fick</name>
</developer>
<developer>
<name>Saša Živkov</name>
</developer>
<developer>
<name>Shawn Pearce</name>
</developer>
<developer>
<name>Viktar Donich</name>
</developer>
<developer>
<name>Wyatt Allen</name>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>Repo and Gerrit Discussion</name>
<post>repo-discuss@googlegroups.com</post>
<subscribe>https://groups.google.com/forum/#!forum/repo-discuss</subscribe>
<unsubscribe>https://groups.google.com/forum/#!forum/repo-discuss</unsubscribe>
<archive>https://groups.google.com/forum/#!forum/repo-discuss</archive>
</mailingList>
</mailingLists>
<issueManagement>
<url>https://bugs.chromium.org/p/gerrit/issues/list</url>
<system>Gerrit Issue Tracker</system>
</issueManagement>
</project>

View File

@ -19,6 +19,10 @@ 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')
@ -37,14 +41,12 @@ 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,
@ -56,7 +58,7 @@ else:
for spec in args.s:
artifact, packaging_type, src = spec.split(':')
exe = cmd + [
'-DpomFile=%s' % path.join(root, '%s/pom.xml' % artifact),
'-DartifactId=%s' % artifact,
'-Dpackaging=%s' % packaging_type,
'-Dfile=%s' % src,
]

View File

@ -1,55 +0,0 @@
#!/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)