diff --git a/README.txt b/README.md similarity index 100% rename from README.txt rename to README.md diff --git a/assembly.xml b/assembly.xml new file mode 100644 index 00000000000..3cff072e8a6 --- /dev/null +++ b/assembly.xml @@ -0,0 +1,32 @@ + + + src + + zip + + + + ${project.basedir} + + + **/target/** + **/.*/** + + + + \ No newline at end of file diff --git a/check-release.sh b/check-release.sh new file mode 100755 index 00000000000..00d2212d398 --- /dev/null +++ b/check-release.sh @@ -0,0 +1,115 @@ +#!/bin/sh + +## +## Licensed to the Apache Software Foundation (ASF) under one or more +## contributor license agreements. See the NOTICE file distributed with +## this work for additional information regarding copyright ownership. +## The ASF licenses this file to You 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. +## + +USERNAME=${1} +VERSION=${2} +SHA=${3} + +if [ -z "$USERNAME" -o -z "$VERSION" -o -z "$SHA" ] +then + echo "Usage: $0 [temp-directory]" + exit +fi + +STAGING="http://people.apache.org/~$USERNAME/jackrabbit/$VERSION/" + +WORKDIR=${4:-target/jackrabbit-staging-`date +%s`} +mkdir $WORKDIR -p -v + +echo "[INFO] ------------------------------------------------------------------------" +echo "[INFO] DOWNLOAD STAGED REPOSITORY " +echo "[INFO] ------------------------------------------------------------------------" +echo "[INFO] " + +if [ `wget --help | grep "no-check-certificate" | wc -l` -eq 1 ] +then + CHECK_SSL=--no-check-certificate +fi + +wget $CHECK_SSL --wait 1 -nv -r -np "--reject=html,txt" -P "$WORKDIR" -nH "--cut-dirs=3" --ignore-length "${STAGING}" + +echo "[INFO] ------------------------------------------------------------------------" +echo "[INFO] CHECK SIGNATURES AND DIGESTS " +echo "[INFO] ------------------------------------------------------------------------" +echo "[INFO] " + +## 1. check sha from release email against src.zip.sha file + +downloaded_sha=$(cat `find $WORKDIR -type f | grep jackrabbit-$VERSION-src.zip.sha`) +if [ "$SHA" = "$downloaded_sha" ]; then echo "[INFO] Step 1. Release checksum matches provided checksum."; else echo "[ERROR] Step 1. Release checksum does not match provided checksum!"; fi +echo "[INFO] " + +## 2. check signatures on the artifacts +echo "[INFO] Step 2. Check individual files" + +for f in `find ${WORKDIR} -type f | grep '\.\(zip\|rar\|jar\|war\)$'` +do + echo "[INFO] $f" + gpg --verify $f.asc 2>/dev/null + if [ "$?" = "0" ]; then CHKSUM="GOOD"; else CHKSUM="BAD!!!!!!!!"; fi + if [ ! -f "$f.asc" ]; then CHKSUM="----"; fi + echo "gpg: ${CHKSUM}" + + for hash in md5 sha1 + do + tp=`echo $hash | cut -c 1-3` + if [ ! -f "$f.$tp" ] + then + CHKSUM="----" + else + A="`cat $f.$tp 2>/dev/null`" + B="`openssl $hash < $f 2>/dev/null | sed 's/.*= *//' `" + if [ "$A" = "$B" ]; then CHKSUM="GOOD (`cat $f.$tp`)"; else CHKSUM="BAD!! : $A not equal to $B"; fi + fi + echo "$tp : ${CHKSUM}" + done +done + +## 3. check tag contents vs src archive contents +echo "[INFO] " +echo "[INFO] Step 3. Check SVN Tag for version $VERSION with src zip file contents" + +echo "[INFO] doing svn checkout, please wait..." +SVNTAGDIR="$WORKDIR/tag-svn/jackrabbit-$VERSION" +svn --quiet export http://svn.apache.org/repos/asf/jackrabbit/tags/$VERSION $SVNTAGDIR + +echo "[INFO] unzipping src zip file, please wait..." +ZIPTAG="$WORKDIR/tag-zip" +unzip -q $WORKDIR/jackrabbit-$VERSION-src.zip -d $ZIPTAG +ZIPTAGDIR="$ZIPTAG/jackrabbit-$VERSION" + +DIFFOUT=`diff -r $SVNTAGDIR $ZIPTAGDIR` +if [ -n "$DIFFOUT" ] +then + echo "[ERROR] Found some differences!" + echo "$DIFFOUT" +else + echo "[INFO] No differences found." +fi + +## 4. run the build with the pedantic profile to have the rat licence check enabled + +echo "[INFO] ------------------------------------------------------------------------" +echo "[INFO] RUNNING MAVEN BUILD " +echo "[INFO] ------------------------------------------------------------------------" +echo "[INFO] " + +cd "$ZIPTAGDIR" +mvn package -Ppedantic + diff --git a/pom.xml b/pom.xml index 0490376ce45..153c43050f0 100644 --- a/pom.xml +++ b/pom.xml @@ -30,7 +30,7 @@ oak-parent/pom.xml - oak + jackrabbit-oak Jackrabbit Oak pom @@ -69,4 +69,127 @@ + + + apache-release + + ${user.name} + ${user.home}/.ssh/id_rsa + + + + + + maven-assembly-plugin + + + + single + + package + + + assembly.xml + + + + + source-release-assembly + + true + + + + + + + maven-antrun-plugin + + + + run + + deploy + + + + + + + + + + + + + + + + + + + + + +From: ${username}@apache.org +To: dev@jackrabbit.apache.org +Subject: [VOTE] Release Apache Jackrabbit Oak ${project.version} + +A candidate for the Jackrabbit Oak ${project.version} release is available at: + + http://people.apache.org/~${username}/oak/${project.version}/ + +The release candidate is a zip archive of the sources in: + + http://svn.apache.org/repos/asf/jackrabbit/oak/tags/${project.version}/ + +The SHA1 checksum of the archive is ${checksum}. + +A staged Maven repository is available for review at: + + https://repository.apache.org/ + +The command for running automated checks against this release candidate is: + + $ sh check-release.sh ${username} ${project.version} ${checksum} + +Please vote on releasing this package as Apache Jackrabbit Oak ${project.version}. +The vote is open for the next 72 hours and passes if a majority of at +least three +1 Jackrabbit PMC votes are cast. + + [ ] +1 Release this package as Apache Jackrabbit Oak ${project.version} + [ ] -1 Do not release this package because...${line.separator} + + + +The release candidate has been prepared in: + + ${basedir}/target/${project.version} + +Please deploy it to people.apache.org like this: + + scp -r ${basedir}/target/${project.version} people.apache.org:public_html/oak/ + +A release vote template has been generated for you: + + file://${basedir}/target/vote.txt + + + + + + + + + org.apache.ant + ant-nodeps + 1.8.1 + + + + + + + +