You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2012/03/29 15:30:23 UTC

svn commit: r1306847 - in /jackrabbit/oak/trunk: README.md README.txt assembly.xml check-release.sh pom.xml

Author: jukka
Date: Thu Mar 29 13:30:22 2012
New Revision: 1306847

URL: http://svn.apache.org/viewvc?rev=1306847&view=rev
Log:
OAK-42: Prepare for first release

Add release tooling from /jackrabbit/trunk
Also rename README.txt to README.md for nicer rendering on GitHub

Added:
    jackrabbit/oak/trunk/README.md
      - copied, changed from r1306788, jackrabbit/oak/trunk/README.txt
    jackrabbit/oak/trunk/assembly.xml   (with props)
    jackrabbit/oak/trunk/check-release.sh   (with props)
Removed:
    jackrabbit/oak/trunk/README.txt
Modified:
    jackrabbit/oak/trunk/pom.xml

Copied: jackrabbit/oak/trunk/README.md (from r1306788, jackrabbit/oak/trunk/README.txt)
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/README.md?p2=jackrabbit/oak/trunk/README.md&p1=jackrabbit/oak/trunk/README.txt&r1=1306788&r2=1306847&rev=1306847&view=diff
==============================================================================
    (empty)

Added: jackrabbit/oak/trunk/assembly.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/assembly.xml?rev=1306847&view=auto
==============================================================================
--- jackrabbit/oak/trunk/assembly.xml (added)
+++ jackrabbit/oak/trunk/assembly.xml Thu Mar 29 13:30:22 2012
@@ -0,0 +1,32 @@
+<!--
+ 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.
+-->
+<assembly>
+  <id>src</id>
+  <formats>
+    <format>zip</format>
+  </formats>
+  <fileSets>
+    <fileSet>
+      <directory>${project.basedir}</directory>
+      <outputDirectory></outputDirectory>
+      <excludes>
+        <exclude>**/target/**</exclude>
+        <exclude>**/.*/**</exclude>
+      </excludes>
+    </fileSet>
+  </fileSets>
+</assembly>
\ No newline at end of file

Propchange: jackrabbit/oak/trunk/assembly.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Added: jackrabbit/oak/trunk/check-release.sh
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/check-release.sh?rev=1306847&view=auto
==============================================================================
--- jackrabbit/oak/trunk/check-release.sh (added)
+++ jackrabbit/oak/trunk/check-release.sh Thu Mar 29 13:30:22 2012
@@ -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 <username> <version-number> <checksum> [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
+

Propchange: jackrabbit/oak/trunk/check-release.sh
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: jackrabbit/oak/trunk/check-release.sh
------------------------------------------------------------------------------
    svn:executable = *

Modified: jackrabbit/oak/trunk/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/pom.xml?rev=1306847&r1=1306846&r2=1306847&view=diff
==============================================================================
--- jackrabbit/oak/trunk/pom.xml (original)
+++ jackrabbit/oak/trunk/pom.xml Thu Mar 29 13:30:22 2012
@@ -30,7 +30,7 @@
     <relativePath>oak-parent/pom.xml</relativePath>
   </parent>
 
-  <artifactId>oak</artifactId>
+  <artifactId>jackrabbit-oak</artifactId>
   <name>Jackrabbit Oak</name>
   <packaging>pom</packaging>
 
@@ -69,4 +69,127 @@
     </plugins>
   </build>
 
+  <profiles>
+    <profile>
+      <id>apache-release</id>
+      <properties>
+        <username>${user.name}</username>
+        <keyfile>${user.home}/.ssh/id_rsa</keyfile>
+        <passphrase />
+      </properties>
+      <build>
+        <plugins>
+          <plugin>
+            <artifactId>maven-assembly-plugin</artifactId>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>single</goal>
+                </goals>
+                <phase>package</phase>
+                <configuration>
+                  <descriptors>
+                    <descriptor>assembly.xml</descriptor>
+                  </descriptors>
+                </configuration>
+              </execution>
+              <execution>
+                <id>source-release-assembly</id>
+                <configuration>
+                  <skipAssembly>true</skipAssembly>
+                </configuration>
+              </execution>
+            </executions>
+          </plugin>
+          <!-- JCR-2455: Automatic staging of non-Maven release artifacts -->
+          <plugin>
+            <artifactId>maven-antrun-plugin</artifactId>
+            <executions>
+              <execution>
+                <goals>
+                  <goal>run</goal>
+                </goals>
+                <phase>deploy</phase>
+                <configuration>
+                  <tasks>
+                    <mkdir dir="${basedir}/target/${project.version}" />
+                    <copy todir="${basedir}/target/${project.version}" flatten="true">
+                      <fileset dir="${basedir}">
+                        <include name="RELEASE-NOTES.txt" />
+                        <include name="target/*-src.zip*" />
+                      </fileset>
+                    </copy>
+                    <checksum algorithm="MD5" fileext=".md5">
+                      <fileset dir="${basedir}/target/${project.version}">
+                        <include name="*.zip" />
+                      </fileset>
+                    </checksum>
+                    <checksum algorithm="SHA1" fileext=".sha">
+                      <fileset dir="${basedir}/target/${project.version}">
+                        <include name="*.zip" />
+                      </fileset>
+                    </checksum>
+                    <checksum file="${basedir}/target/${project.version}/${project.artifactId}-${project.version}-src.zip" algorithm="SHA1" property="checksum" />
+                    <echo file="${basedir}/target/vote.txt">
+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}
+                    </echo>
+                    <echo />
+                    <echo>
+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
+                    </echo>
+                    <echo />
+                  </tasks>
+                </configuration>
+              </execution>
+            </executions>
+            <dependencies>
+              <dependency>
+                 <groupId>org.apache.ant</groupId>
+                 <artifactId>ant-nodeps</artifactId>
+                 <version>1.8.1</version>
+               </dependency>
+            </dependencies>
+          </plugin>
+        </plugins>
+      </build>
+    </profile>
+  </profiles>
+
 </project>