You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by tr...@apache.org on 2017/11/10 02:59:48 UTC
svn commit: r23033 - /dev/jackrabbit/check-release.sh
Author: tripod
Date: Fri Nov 10 02:59:47 2017
New Revision: 23033
Log:
Adding support for filevault and filevault-plugin components
(tested that oak release check still works w/o warnings)
Modified:
dev/jackrabbit/check-release.sh (contents, props changed)
Modified: dev/jackrabbit/check-release.sh
==============================================================================
--- dev/jackrabbit/check-release.sh (original)
+++ dev/jackrabbit/check-release.sh Fri Nov 10 02:59:47 2017
@@ -20,6 +20,10 @@
BASEDIR="`dirname "$0"`"
DEFAULT_PROFILES="pedantic"
PROFILES=${RUN_PROFILES:-$DEFAULT_PROFILES}
+MVN_ARGS="-P$PROFILES"
+CLEAN_SVN=".??* .gitignore"
+HASHES="md5 sha1"
+CLEAN_ZIP=""
if [ -z "$1" -o -z "$1" ]; then
echo "Usage: $0 [component] version checksum"
@@ -37,10 +41,36 @@ else
COMPONENT="$1"
VERSION="$2"
SHA="$3"
- RCDIR="$COMPONENT/$VERSION"
- SRCZIP="jackrabbit-$COMPONENT-$VERSION-src.zip"
- SRCDIR="jackrabbit-$COMPONENT-$VERSION"
- TAGURL="https://svn.apache.org/repos/asf/jackrabbit/$COMPONENT/tags/jackrabbit-$COMPONENT-$VERSION"
+ case "$COMPONENT" in
+ "filevault-plugin")
+ COMPONENT="filevault-package-maven-plugin"
+ RCDIR="$COMPONENT/$VERSION"
+ SRCZIP="$COMPONENT-$VERSION-source-release.zip"
+ SRCDIR="filevault-package-maven-plugin-$VERSION"
+ TAGURL="https://svn.apache.org/repos/asf/jackrabbit/commons/$COMPONENT/tags/$COMPONENT-$VERSION"
+ MVN_ARGS=""
+ CLEAN_SVN=".gitignore"
+ HASHES="md5 sha512"
+ CLEAN_ZIP="DEPENDENCIES" # the DEPENDENCIES are automatically generated during the release and are not in svn
+ ;;
+ "filevault")
+ COMPONENT="jackrabbit-filevault"
+ RCDIR="filevault/$VERSION"
+ SRCZIP="$COMPONENT-$VERSION-src.zip"
+ SRCDIR="$COMPONENT-$VERSION"
+ TAGURL="https://svn.apache.org/repos/asf/jackrabbit/commons/filevault/tags/$COMPONENT-$VERSION"
+ MVN_ARGS=""
+ CLEAN_SVN=""
+ CLEAN_ZIP=""
+ HASHES="md5 sha1 sha512"
+ ;;
+ *)
+ RCDIR="$COMPONENT/$VERSION"
+ SRCZIP="jackrabbit-$COMPONENT-$VERSION-src.zip"
+ SRCDIR="jackrabbit-$COMPONENT-$VERSION"
+ TAGURL="https://svn.apache.org/repos/asf/jackrabbit/$COMPONENT/tags/jackrabbit-$COMPONENT-$VERSION"
+ ;;
+ esac
fi
LOGFILE="$BASEDIR/target/$SRCDIR.log"
@@ -53,6 +83,12 @@ info()
echo "[INFO] $1"
}
+warn()
+{
+ echo "[WARN] $1" >> "$LOGFILE"
+ echo "[WARN] $1"
+}
+
error()
{
echo "[ERROR] $1" >> "$LOGFILE"
@@ -78,8 +114,8 @@ svn cat https://dist.apache.org/repos/di
info ""
info "2. Check for the presence of the staged release candidate"
info ""
-for NAME in "$SRCZIP" "RELEASE-NOTES.txt"; do
- if [ -f "$BASEDIR/$RCDIR/$NAME" ]; then
+for NAME in "$SRCZIP" "RELEASE-NOTES.*"; do
+ if compgen -G "$BASEDIR/$RCDIR/$NAME" > /dev/null; then
info " OK: $NAME"
else
error " NOT FOUND: $NAME"
@@ -89,6 +125,28 @@ done
info ""
info "3. Verify checksums and signatures"
+# usage: verify_checksum NAME EXT
+verify_checksum() {
+ NAME=$1
+ EXT=$2
+ if [ ! -f "$BASEDIR/$RCDIR/$NAME.$EXT" ]; then
+ error " NOT FOUND: $NAME.$EXT"
+ fi
+
+ case "$EXT" in
+ "sha") ALG="sha1" ;;
+ "sha-512") ALG="sha -sha512" ;;
+ *) ALG="$HASH" ;;
+ esac
+
+ EXPECTED="`openssl "$ALG" "$BASEDIR/$RCDIR/$NAME" 2>> "$LOGFILE" | sed 's/.*= *//'`"
+ if grep -q "$EXPECTED" "$BASEDIR/$RCDIR/$NAME.$EXT"; then
+ info " OK: $NAME.$EXT"
+ else
+ error " NOT OK: $NAME.$EXT (expected $EXPECTED)"
+ fi
+}
+
for NAME in `ls "$BASEDIR/$RCDIR" | grep '\.\(zip\|.ar\)$'`; do
info ""
info " Verifying $NAME..."
@@ -100,28 +158,24 @@ for NAME in `ls "$BASEDIR/$RCDIR" | grep
error " NOT OK: $NAME.asc"
fi
- for HASH in md5 sha1; do
- EXT=$HASH # removed truncation to three characters due to sha1 name change
- if [ ! -f "$BASEDIR/$RCDIR/$NAME.$EXT" ]; then
- error " NOT FOUND: $NAME.$EXT"
- else
- EXPECTED="`openssl "$HASH" "$BASEDIR/$RCDIR/$NAME" 2>> "$LOGFILE" | sed 's/.*= *//'`"
- if grep -q "$EXPECTED" "$BASEDIR/$RCDIR/$NAME.$EXT"; then
- info " OK: $NAME.$EXT"
- else
- error " NOT OK: $NAME.$EXT (expected $EXPECTED)"
- fi
- fi
+ for EXT in $HASHES; do
+ verify_checksum $NAME $EXT
done
done
info ""
info "4. Compare provided SHA1 checksum with that of the release"
info ""
-if grep -q "$SHA" "$BASEDIR/$RCDIR/$SRCZIP.sha1"; then
- info " OK: $SHA"
+SHA_OK=false
+for HASH in sha sha1 sha512; do
+ if grep -q "$SHA" "$BASEDIR/$RCDIR/$SRCZIP.$HASH" 2>> "$LOGFILE" 1>&2; then
+ SHA_OK=true
+ fi
+done
+if $SHA_OK; then
+ info " OK: $SHA"
else
- error " NOT OK: $SHA"
+ error " NOT OK: $SHA"
fi
info ""
@@ -133,30 +187,45 @@ test -e "$WORKDIR" && rm -rf "$WORKDIR"
mkdir -p "$WORKDIR/svn"
SVNDIR="$WORKDIR/svn/$SRCDIR"
svn --quiet export "$TAGURL" "$SVNDIR" 2>> "$LOGFILE" 1>&2 || exit 1
-find "$SVNDIR" -name ".??*" -print0 | xargs -0 rm -rf
+set -f # disable globbing during pattern loop
+for PATTERN in $CLEAN_SVN; do
+ echo "Cleaning $PATTERN from $SVNDIR" >> "$LOGFILE"
+ find "$SVNDIR" -name "$PATTERN" -print0 | xargs -0 rm -rfv >> "$LOGFILE"
+done
+
info " Unzipping $SRCZIP..."
ZIPDIR="$WORKDIR/zip/$SRCDIR"
unzip -q "$BASEDIR/$RCDIR/$SRCZIP" -d "$WORKDIR/zip" 2>> "$LOGFILE" 1>&2 || exit 1
+for PATTERN in $CLEAN_ZIP; do
+ echo "Cleaning $PATTERN from zip" >> "$LOGFILE"
+ find "$ZIPDIR" -name "$PATTERN" -print0 | xargs -0 rm -rf
+done
+set +f # re-enable globbing
+
+# diff fails if either the dirs don't exist, or if the dirs differs
+# so we need to be sure that the diff actually diffed something.
info " Comparing sources..."
info ""
DIFFOUT="$WORKDIR/diff-output.txt"
-diff -b -r "$SVNDIR" "$ZIPDIR" > "$DIFFOUT" 2>> "$LOGFILE"
-if [ -s "$DIFFOUT" ]; then
- cat "$DIFFOUT" >> "$LOGFILE"
- error " NOT OK: Tagged sources are different from those in the archive"
-else
- info " OK: No differences found"
+if ! diff -b -r "$SVNDIR" "$ZIPDIR" > "$DIFFOUT" 2>> "$LOGFILE"; then
+ if [ -s "$DIFFOUT" ]; then
+ cat "$DIFFOUT" >> "$LOGFILE"
+ error " NOT OK: Tagged sources are different from those in the archive"
+ else
+ error " NOT OK: diff failed. see $LOGFILE for"
+ fi
fi
+info " OK: No differences found"
info ""
info "6. Build the release candidate"
info ""
-info " Running the Maven build: mvn verify -P $PROFILES"
+info " Running the Maven build: mvn clean verify $MVN_ARGS"
info ""
-if (cd $ZIPDIR; exec mvn verify -P "$PROFILES") 2>> "$LOGFILE" 1>&2; then
- info " OK: mvn verify -P $PROFILES"
+if (cd $ZIPDIR; exec mvn clean verify $MVN_ARGS) 2>> "$LOGFILE" 1>&2; then
+ info " OK: mvn clean verify $MVN_ARGS"
else
- error " NOT OK: mvn verify -P $PROFILES"
+ error " NOT OK: mvn clean verify $MVN_ARGS"
fi
info ""
Propchange: dev/jackrabbit/check-release.sh
------------------------------------------------------------------------------
svn:executable = *
Re: svn commit: r23033 - /dev/jackrabbit/check-release.sh
Posted by Tobias Bocanegra <tr...@adobe.com>.
On 10 Nov 2017, at 19:18, Julian Reschke <ju...@gmx.de>> wrote:
On 2017-11-10 03:59, tripod@apache.org<ma...@apache.org> wrote:
...
+CLEAN_SVN=".??* .gitignore"
...
Why is this needed? It looks like a workaround for a local problem. Can you either explain, or remove it?
As you can see in the original version [0], this was already there.
I merely made it "configurable" per component.
But we might cleanup the repositories or check why certain files (eg .gitignore) are not include in the source dist.
Regards, Toby
Ps: is there a better way to diff dist.apache.org<http://dist.apache.org> ?
[0] https://dist.apache.org/repos/dist/dev/jackrabbit/check-release.sh?p=23032
Re: svn commit: r23033 - /dev/jackrabbit/check-release.sh
Posted by Julian Reschke <ju...@gmx.de>.
On 2017-11-10 03:59, tripod@apache.org wrote:
> ...
> +CLEAN_SVN=".??* .gitignore"
> ...
Why is this needed? It looks like a workaround for a local problem. Can
you either explain, or remove it?
Best regards, Julian