diff options
author | Dave Borowitz <dborowitz@google.com> | 2017-10-01 16:17:42 -0400 |
---|---|---|
committer | Dave Borowitz <dborowitz@google.com> | 2017-10-01 16:21:34 -0400 |
commit | 9b8770724849153bc57190601acfa63ed13049cd (patch) | |
tree | a9367af54a710c5abba3fc53b25882a02ee36c09 | |
parent | d52ccbcfc41ddba0e2fe319700fd1a2123f459c2 (diff) |
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
-rw-r--r-- | Documentation/dev-release.txt | 21 | ||||
-rw-r--r-- | gerrit-acceptance-framework/pom.xml | 86 | ||||
-rw-r--r-- | gerrit-extension-api/pom.xml (renamed from fake_pom.xml) | 4 | ||||
-rw-r--r-- | gerrit-plugin-api/pom.xml | 86 | ||||
-rw-r--r-- | gerrit-plugin-gwtui/pom.xml | 86 | ||||
-rw-r--r-- | gerrit-war/pom.xml | 86 | ||||
-rwxr-xr-x | tools/maven/mvn.py | 12 | ||||
-rwxr-xr-x | tools/version.py | 55 |
8 files changed, 421 insertions, 15 deletions
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 @@ +<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> diff --git a/fake_pom.xml b/gerrit-extension-api/pom.xml index 6ec45e5fcc..b6556bc956 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/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 @@ +<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> 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 @@ +<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> 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 @@ +<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> 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*<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) |