Commit Graph

25 Commits

Author SHA1 Message Date
Michael Stack 54eae0fc5c
HBASE-25473 [create-release] checkcompatibility.py failing with "KeyError: 'binary'" (#2862)
Exclude hbase-shaded-testing-util*.jar from checkcompatibility; this
jar can not be unzipped on a case-insensitive filesystem. Added
some means of debug into the checkcompatibility to help when
cryptic failures.

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2021-01-08 14:45:45 -08:00
Michael Stack 8f55a2bb51
HBASE-25487 [create-release] changes.md update broken (#2864)
Signed-off-by: Huaxiang Sun <huaxiangsun@apache.com>
2021-01-08 12:38:45 -08:00
Michael Stack 7a532f8328
HBASE-25380 [create-release] Add timestamping to log output (#2758)
Added logging of timestamp so we can tell where we are spending time.
Added context to the README copied from head of entrance script.

Signed-off-by: Andrew Purtell <apurtell@apache.org>
2020-12-09 16:54:18 -08:00
Michael Stack 7851438379
HBASE-25376 [create-release] Fix double .asc (#2755)
Signed-off-by: Andrew Purtell <apurtell@apache.org>
2020-12-09 12:18:08 -08:00
stack b26395f3bb HBASE-25354 Update create-release scripts; rotted
README
 Add note on ssh-agent.

dev-support/create-release/do-release.sh
 move gpg check to non-docker context. Also cleanup tmp files when done.

dev-support/create-release/hbase-rm/Dockerfile
dev-support/create-release/mac-sshd-gpg-agent/Dockerfile
 Hack to update packages... the old ones  no longer available.

dev-support/create-release/release-util.sh
 Allow that there are no JIRA changes in a release. Good for testing.
2020-12-04 09:00:32 -08:00
Nick Dimiduk b8fd621201 HBASE-24568 do-release need not wait for tag
Signed-off-by: Sean Busbey <busbey@apache.org>
Signed-off-by: Matt Foley <mattf@apache.org>
2020-08-12 13:26:44 -07:00
Sean Busbey 3470feed91
HBASE-24476 release scripts should provide timing information (#2145)
Signed-off-by: Matt Foley <mattf@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2020-08-01 22:43:46 -05:00
Sean Busbey fe5571bfe6
HBASE-24572 release scripts should try to use a keyid when refering to GPG keys. (#2001)
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2020-08-01 22:28:23 -05:00
Peter Somogyi 6c9534c804
HBASE-24711 Previous RC Release notes are not removed (#2046)
Signed-off-by: Viraj Jasani <vjasani@apache.org>
2020-07-10 18:24:04 +02:00
Sean Busbey 982bd5fadd
HBASE-24651 release script utils should set local user when GPG_KEY is defined.
closes #1992

Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2020-06-29 23:05:08 -05:00
Sean Busbey 497862bb47
HBASE-23339 release scripts should use host gpg-agent when running in container.
* put together a docker container that can use host gpg-agent forwarded over ssh.
* use gpg-agent forwarding container on OS X and directly forward the agent on Linux
* clean up the release container on exit
* use docker mounts instead of the deprecated volume syntax
* use image names within our project namespace
* update README to walk through running on GCE with gpg-agent forwarding

closes #1620

Signed-off-by: Matt Foley <mattf@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2020-06-25 00:39:43 -05:00
Nick Dimiduk 90b339a4f2
HBASE-24567 Create release should url-encode all characters when building git uri
By default, `urllib.quote` will skipp over `/` characters, which are
valid for use in passwords.

Signed-off-by: stack <stack@apache.org>
Signed-off-by: Matt Foley <mattf@apache.org>
2020-06-22 15:22:21 -07:00
Sean Busbey a9fefd7f53
HBASE-24297 release scripts should be able to use a custom git repo
* adds a optional -r [repo] arg
* if the passed repo is on the local filesystem, creates a container mount
* when cloning a local repo configure git to share objects with the local repo instead of copying
* when cloning a local repo in a container configure the clone to have a remote that will work back on the host.

closes #1725

Signed-off-by: stack <stack@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
2020-05-22 22:24:12 -05:00
Sean Busbey 8ff8e70edf
HBASE-24296 install yetus as a part of building the rm docker image.
* non-zero exit for usage
* in non-docker mode prompt for yetus install location
* make sure we exit if YETUS_HOME does not actually point at a yetus install.

closes #1726

Signed-off-by: Matt Foley <mattf@apache.org>
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: stack <stack@apache.org>
2020-05-22 22:24:03 -05:00
Sean Busbey 696894e2cc
HBASE-24393 release scripts should allow for creation of initial CHANGES/RELEASE on new major version.
closes #1728

Signed-off-by: Guanghao Zhang <zghao@apache.org>
2020-05-18 12:11:13 -05:00
Matt Foley f3c0a0e06d
HBASE-24318 Create-release scripts fixes and enhancements (#1643)
* narrow 'dry-run' limits so see svn activity up to just before check-in.
* Fix several typos and, in case of dry run, enable build step to chain from tag step by keeping the tagged git repo.
* Improve Maven settings.xml file, and names of variables related to it. Remove unnecessary use of "-Dmaven.repo.local", put it in settings.xml instead. Stop putting password literals in settings.xml. 
* stop deleting maven settings file, now that it doesn't contain password strings
* Merge 'tag' into release-build.sh as another stage. Also found and fixed a couple bugs in the current release-tag.sh.
* Delete redundant release-tag.sh script.
* Small changes to make dev-support/create-release tools less focused
on hbase project only, while retaining special behaviors for
hbase sub-projects which share the hbase dist and jira locations.
* Changed terminology of release publish steps, from <build|publish>
to <publish-dist|publish-release>. In fact, what was formerly called
"build" built the distribution tarballs AND published them to dist,
while "publish" built the  maven artifacts AND published them to Nexus.
The new terminology clarifies what's happening, and removes the appearance
of order dependendency.
* Fix publish-snapshot so it does same checks as publish-release.
* Factor out common maven usages, and move them to build-util.sh.
* Change default polarity of DRY_RUN to default to true. Change -n ("no-publish") to -f ("force publish") to actually publish.
* Fix problems in do-release.sh so it runs correctly outside of docker,
  including DRY_RUN being exported.
* Have do-release.sh set REPO (shared maven local repository) if doing all three stages.
* Cleaned up REPO directory creation.
* General cleanup of comments and usage.
*  fix all 'shellcheck' errors
* use ${BASH_SOURCE[0]} instead of $0 to determine script directory path
* smarter way to read version from pom with mvn
* do maven-gpg-plugin config settings in maven settings file correctly as documented
* fix gpg signing failure on Mac due to gpg-agent timeout
* fix various bugs to enable publish-dist, publish-snapshot, and publish-release to work correctly as individual steps and/or without docker
* improve log reporting from publish-release step
*  fix bug in argument to checkcompatibility.py: replace PACKAGE_VERSION with GIT_REF
* demote "PACKAGE_VERSION" to "package_version_name" and undocument it in favor of RELEASE_TAG. Still enable appropriate defaulting in case RELEASE_TAG is undefined.
* unify RELEASE_VERSION with VERSION, to remove ambiguity and allow it to be set when only running 'publish' step without 'tag'
* query confirm RELEASE_TAG
* emphasize that release-build.sh is called for a single action at a time, and should be called from do-release.sh.
* add '-s' option to do-release.sh
* suppress maven "Download from central:" messages
* Replace human wait for tag propagation

Signed-off-by: Cesar Delgado <cdelgado@apple.com>
Signed-off-by: stack <stack@apache.org>
Signed-off-by: Sean Busbey <busbey@apache.org>
2020-05-09 10:46:41 -05:00
Nick Dimiduk b3488fcdec HBASE-24160 create-release fails to process x.y.0 version info correctly
Current code gives me the following; notice default values generated
for `RELEASE_VERSION` and `api_diff_tag`.

```
GIT_BRANCH [branch-2.3]:
Current branch VERSION is 2.3.0-SNAPSHOT.
RELEASE_VERSION [2.3.-1]: 2.3.0
NEXT_VERSION [2.3.0-SNAPSHOT]: 2.3.1-SNAPSHOT
RC_COUNT [0]:
GIT_REF [2.3.0RC0]:
api_diff_tag, [rel/2.2.0)]:
```

With this patch I get

```
GIT_BRANCH [branch-2.3]:
Current branch VERSION is 2.3.0-SNAPSHOT.
RELEASE_VERSION [2.3.0]:
NEXT_VERSION [2.3.1-SNAPSHOT]:
RC_COUNT [0]:
GIT_REF [2.3.0RC0]:
api_diff_tag, [rel/2.2.0]:
```

Signed-off-by: Michael Stack <stack@apache.org>
Signed-off-by: Jan Hentschel <jan.hentschel@ultratendency.com>
2020-04-10 12:02:24 -07:00
stack a58f2a4a55 HBASE-23720 [create-release] Update yetus version used from 0.11.0 to 0.11.1 2020-01-22 18:07:53 -08:00
Duo Zhang 4b99816dd6
HBASE-23182 The create-release scripts are broken (#736)
Signed-off-by: stack <stack@apache.org>
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
2019-11-19 08:28:43 +08:00
Frederick Ayala 95c9911a9c HBASE-23031 Upgrade Yetus version in RM scripts (#692)
Signed-off-by: Peter Somogyi <psomogyi@apache.org>
2019-10-06 11:24:35 +02:00
stack f69e7705e0 HBASE-23121 create-release is not pushing artifacts to repository.a.o 2019-10-04 15:32:17 -07:00
Duo Zhang f08a310ed9
HBASE-23118 [RELEASE SCRIPTS] Allow creating a RC from an existing tag[RELEASE SCRIPTS] Allow creating a RC from an existing tag (#686)
Signed-off-by: stack <stack@apache.org>
2019-10-04 13:39:27 +08:00
Michael Stack 7ee6d59ef8
HBASE-23092 Make the RM tooling in dev-tools/create-release generic (#671)
Make the scripts generic. Adds an option that allows you specify
'project'. Defaults to 'hbase' for core. Pass 'hbase-thirdparty'
or 'hbase-operator-tools' etc.

This commit includes a bunch of bugfixes and miscellaneous
that came of trying to use the scripts making RCs.

Signed-off-by: Peter Somogyi <psomogyi@apache.org>
2019-10-02 09:14:17 -07:00
stack 53db390f60 HBASE-22854 Remove +x shell spew from do-release-*.sh create-release scripts 2019-08-14 10:05:41 -07:00
stack 8745d5e7e8 HBASE-21935 Replace make_rc.sh with customized spark/dev/create-release
These scripts came originally from spark [1]. They were then
modified to suit hbase context. Supercedes the old
../make_rc.sh script because what is here is more comprehensive
doing more steps of the RM process as well as running in a
container so the RM build environment can be a constant.

It:
 * Tags release
 * Updates RELEASENOTES.md and CHANGES.md.
 * Sets version to the release version
 * Sets version to next SNAPSHOT version.
 * Builds, signs, and hashes all artifacts.
 * Generates the API report.
 * Pushes release tgzs to the dev dir in a apache dist.
 * Pushes to repository.apache.org staging.
 * Generates a vote email with filled-in fields.

The entry point is the do-release-docker.sh script. Pass -h to
see available options. For example, running below will do all
steps above using the 'rm' dir under Downloads as workspace:

 $ ./do-release-docker.sh  -d ~/Downloads/rm

1. https://github.com/apache/spark/tree/master/dev/create-release

Signed-off-by: Peter Somogyi <psomogyi@cloudera.com>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
2019-06-12 07:53:49 -07:00