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)