~~ 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. ------ Release Checklist (Developer Info) ------ Release Checklist (Developer Info) Checklist of tasks to perform for each release. For general information about Apache releases you may also consult {{{http://www.apache.org/dev/publishing-maven-artifacts.html}Publishing Maven Artifacts}}. * Preparation * Ensure that all open bugs have been either fixed or moved to an other release version. * Ensure that all examples are working with the release candidate. * Post a note on the list and ask for problems with the release candidate. * Install a jdk 1.4 and a jdk 1.5 on your computer (only for Tobago 1.0.x). * Please switch to a jdk depending of the version to build: * for Tobago 1.0.x use jdk 1.5. * for Tobago 1.5.x use jdk 1.6 or 1.7. * for Tobago 2.0.x use jdk 1.6, 1.7 or 1.8. * for Tobago 3.0.x use jdk 1.7 or 1.8. * Perform basic checks on an unmodified checkout for all modules: +------------------------+ # for Tobago 1.0.x mvn checkstyle:check rat:check -Pall-modules # for Tobago 1.5.x and higher mvn clean install -Pall-modules && mvn checkstyle:check apache-rat:check animal-sniffer:check -Pall-modules +------------------------+ * You need to add your GPG keys in {{{https://svn.apache.org/repos/asf/myfaces/keys/KEYS}Subversion}} and the {{{https://www.apache.org/dist/myfaces/KEYS}Apache site}} before a release. * Building the Release * Prepare the release with: +------------------------+ mvn release:prepare -Pall-modules +------------------------+ * Check out a fresh copy of the svn tag: +------------------------+ cd .. svn co https://svn.apache.org/repos/asf/myfaces/tobago/tags/tobago- cd tobago- +------------------------+ * Deploy the fresh copy to the Nexus repository with the apache-release profile (we are not using release:perform here, because of some different options): +------------------------+ # for Tobago 1.0.x mvn deploy -Papache-release,jdk14retro,generate-assembly --no-plugin-updates -Dnon-default-modules -Djava14.home=${java14.jre} # for Tobago 1.5.x and higher mvn deploy -Papache-release,generate-assembly --no-plugin-updates -Dnon-default-modules +------------------------+ For more information please consult the pom.xml files. * the repository on the {{{https://repository.apache.org/}Nexus}} instance for stating (you will receive a mail with the staging location). * Voting * Propose a vote on the dev list with the staging location. * For a positive result wait at least 72 hours. * Once a vote is successful, post the result to the dev list. * Publishing * Close all resolved jira issuse for the release. * the staging repository on the {{{https://repository.apache.org/}Nexus}} instance. * Copy the download artifacts from the repository to the site (see script below) * Building the site * Note: The site can only be build correctly on file systems that supports to differ upper-/lower-case. This is not the default on Windows and Mac OS X machines. On Mac OS X you can mount a virtual filesystem (sparse bundle) that supports upper-/lower-case with the Disk Utility. +------------------------+ cd /Volumes/tobago-site svn co https://svn.apache.org/repos/asf/myfaces/tobago/trunk tobago svn co https://svn.apache.org/repos/asf/myfaces/site/publish/tobago tobago-publish cd tobago export MAVEN_OPTS="-Xmx1500m -XX:MaxPermSize=512m ${MAVEN_OPTS}" mvn package mvn site:site mvn site:stage -DstagingDirectory=/Volumes/tobago-site/tobago-publish +------------------------+ * Update the site after the distribution is on the Apache mirrors available. * Unpack and commit the API Docs of the release with the update-1.0.sh, update-1.5.sh or update-2.0.sh script in /Volumes/tobago-site/tobago-publish (set correct version first). * Delete old assemblies in /www/www.apache.org/dist/myfaces/binaries on people.apache.org. Older releases are automatic available in the {{{http://archive.apache.org/dist/myfaces/} archive}}. * Delete old snapshots in /www/people.apache.org/builds/myfaces/nightly/ on people.apache.org. * Create and send announcement. Vote template ----- Subject: [VOTE] Release Tobago Hello, I would like to release Tobago , This release contains over 70 changes. For a detail list please consult the release notes: http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version= The version is available at the staging location and the revision number of the release is 487980 and tagged as tobago-. Staging distribution: http://people.apache.org/ Staging repository: http://people.apache.org/ The vote is open for 72h. [ ] +1 [ ] +0 [ ] -1 ------ Announcement template ---------------------------------------- Subject: [ANNOUNCE] Apache Tobago The Apache MyFaces team is pleased to announce the release of Apache Tobago . Apache Tobago is a component library for JSF. Main new features ----------------- [add main new features here or remove this section] Changes ------- Please check the release notes at http://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310273&styleName=Html&version= for a full list of the changes in version . Known limitations and bugs: --------------------------- [add main limitations and known bugs here or remove this section] For more information about Apache Tobago, please visit http://myfaces.apache.org/tobago/. Have fun, -The MyFaces team ---------------------------------------- Copy the download artifacts from the repository to the site (release-tobago.sh) +------------------------+ #!/bin/sh set -e VERSION=2.0.4 MAVEN_REPOSITORY=https://repository.apache.org/content/repositories/releases DIST_REPOSITORY=https://dist.apache.org/repos/dist/release/myfaces # download file and hashes/signatures function download() { DIR="$1" FILE_ON_REPO="$2" FILE="$3" curl --fail "${MAVEN_REPOSITORY}/${DIR}/${VERSION}/${FILE_ON_REPO}" -o ${FILE} curl --fail "${MAVEN_REPOSITORY}/${DIR}/${VERSION}/${FILE_ON_REPO}.asc" -o ${FILE}.asc curl --fail "${MAVEN_REPOSITORY}/${DIR}/${VERSION}/${FILE_ON_REPO}.md5" -o ${FILE}.md5 curl --fail "${MAVEN_REPOSITORY}/${DIR}/${VERSION}/${FILE_ON_REPO}.sha1" -o ${FILE}.sha1 } # this performs check of the hashes (if this fails, something might went wrong absolutely) function check() { FILE="$1" echo "Checking file ${FILE}: " md5 -q "${FILE}" > "${FILE}.md5.temp" if ! diff --ignore-all-space "${FILE}.md5" "${FILE}.md5.temp" ; then echo "Error: MD5 check failed!" exit -1 fi echo " MD5 hash okay" shasum "${FILE}" | cut "-d " -f1 > "${FILE}.sha1.temp" if ! diff --ignore-all-space "${FILE}.sha1" "${FILE}.sha1.temp" ; then echo "Error: SHA1 check failed!" exit -1 fi echo " SHA1 hash okay" if ! gpg --verify "${FILE}.asc" ; then echo "Error: GPG check failed!" exit -1 fi echo " GPG signature okay" } # this uploads the files into the svn dist repo function upload() { PATTERN="$1" FOLDER="$2" for file in $(find . -type file -name "${PATTERN}" -exec basename \{\} \; ) ; do # echo $file; svn import -m "Tobago ${VERSON}" $file ${DIST_REPOSITORY}/${FOLDER}/$file; done } # commands download "org/apache/myfaces/tobago/tobago-assembly" "tobago-assembly-${VERSION}-dist.tar.gz" "myfaces-tobago-${VERSION}-dist.tar.gz" download "org/apache/myfaces/tobago/tobago-assembly" "tobago-assembly-${VERSION}-dist.zip" "myfaces-tobago-${VERSION}-dist.zip" download "org/apache/myfaces/tobago/tobago-example-assembly" "tobago-example-assembly-${VERSION}-example.tar.gz" "myfaces-tobago-${VERSION}-example.tar.gz" download "org/apache/myfaces/tobago/tobago-example-assembly" "tobago-example-assembly-${VERSION}-example.zip" "myfaces-tobago-${VERSION}-example.zip" download "org/apache/myfaces/tobago/tobago" "tobago-${VERSION}-source-release.zip" "myfaces-tobago-${VERSION}-source-release.zip" check "myfaces-tobago-${VERSION}-dist.tar.gz" check "myfaces-tobago-${VERSION}-dist.zip" check "myfaces-tobago-${VERSION}-example.tar.gz" check "myfaces-tobago-${VERSION}-example.zip" check "myfaces-tobago-${VERSION}-source-release.zip" rm -f *.temp upload "myfaces-tobago-${VERSION}-dist.*" "binaries" upload "myfaces-tobago-${VERSION}-example.*" "binaries" upload "myfaces-tobago-${VERSION}-source-release.*" "source" +------------------------+