...
To generate CHANGES.txt, please pull information from JIRA and git log. To get all JIRAs of this release, use filter 'fixVersion = <version> AND resolution = resolved'. To get all commits of this release, you can find the last commit in last release in corresponding release branch and do a git diff against current release branch. Open a JIRA to commit the newly generated CHANGES.txt to branch-x.y.z. A review of the patch is preferable.
Code Block |
---|
# origin points to the tez repo: https://github.com/apache/tez # a.b.c: last tez release version # x.z.y: current tez release version git log rel/<previous_release>release-a.b.c..origin/branch-x.y.z --format="%s" # command to get the commit logs that go in CHANGES.txt #origin is the git remote for https://gitbox.apache.org/repos/asf/tez.git |
There There are cases where information from JIRAs is inconsistent with that from git log (which shouldn't happen but unfortunately happens sometime...). For example, committer may forget to mark JIRA as resolved or set the fix version, or commit message contains wrong JIRA number. So it's better to check both side.
...
Code Block |
---|
export RELEASE_VERSION=x.y.z #e.g. 0.8.4 export RC_VERSION=rc0 #define rc version if you haven't defined yet git tag -a release-$RELEASE_VERSION-rc0$RC_VERSION -m "Tez $RELEASE_VERSION RC0$RC_VERSION" # push the new tag git push origin release-$RELEASE_VERSION-rc0 $RC_VERSION |
Deploy the jars to Staging
...
Code Block |
---|
export RELEASE_VERSION=x.y.z #e.g. 0.8.4 mvn clean git clean -f -x -d cd .. cp -R tez-git-$RELEASE_VERSION apache-tez-$RELEASE_VERSION-src #where tez-git-$RELEASE_VERSION is the tez code directory COPYFILE_DISABLE=1 tar --exclude=.git -zcvf apache-tez-$RELEASE_VERSION-src.tar.gz apache-tez-$RELEASE_VERSION-src |
Sign the Release
Code Block |
---|
gpg2 --armor --output apache-tez-$RELEASE_VERSION-src.tar.gz.asc --detach-sig # handle TEZ-4533 temporarily rm ./tez-runtime-library/src/test/resources/TestIFile_concatenated_compressed.bin sed -i "" 's/public void testConcatenatedZlibPadding/@org.junit.Ignore public void testConcatenatedZlibPadding/g' ./tez-runtime-library/src/test/java/org/apache/tez/runtime/library/common/sort/impl/TestIFile.java cd .. # assuming that you're standing in a tez git folder, cp -R tez-git-$RELEASE_VERSION apache-tez-$RELEASE_VERSION-src.tar.gz |
Generate checksums
Code Block |
---|
shasum -a 512 apache-tez #where tez-git-$RELEASE_VERSION-src.tar.gz > is the tez code directory COPYFILE_DISABLE=1 tar --exclude=.git -zcvf apache-tez-$RELEASE_VERSION-src.tar.gz.sha512 |
or
Code Block |
---|
openssl md5 apache-tez-$RELEASE_VERSION-src |
Sign the Release
Code Block |
---|
gpg2 --armor --output.tar.gz > apache-tez-$RELEASE_VERSION-src.tar.gz.md5 openssl dgst -sha512asc --detach-sig apache-tez-$RELEASE_VERSION-src.tar.gz |
Generate checksums
Code Block |
---|
shasum -a 512 apache-tez-$RELEASE_VERSION-src.tar.gz > apache-tez-$RELEASE_VERSION-src.tar.gz.sha512 |
Create Binary Tarball as a helper for Users
...
- Create a top-level directory called apache-tez-{x.y.z}-bin
- Untar the contents of the minimal tarball into this directory.
- Copy the full tarball into the directory under apache-tez-{x.y.z}-bin/share/ and name the file tez.tar.gz
Copy the minimal tarball into the directory under apache-tez-{x.y.z}-bin/share/ and name the file tez-minimal.tar.gz
- Copy the LICENSE* files and NOTICE file from the full tarball and replace the files under apache-tez-{x.y.z}-bin/ which came from the minimal tarball.
- If the version is higher than 0.8.x, use the mvn javadoc command to generate the xml-based config documentation and copy the files under apache-tez-{x.y.z}-bin/conf/ with a .template suffix.
- Tar the top-level directory and do the necessary signing as well as the checksum creation as done for the src tarball.
- the files under apache-tez-{x.y.z}-bin/conf/ with a .template suffix.
- Tar the top-level directory and do the necessary signing as well as the checksum creation as done for the src tarball.
Code Block |
---|
#Define the following environment variables
export TEZ_SRC_DIR=/home/user/tez #e.g. tez-src or the absolute path
export RELEASE_VERSION=x.y.z #e.g. 0.8.4
cd ${TEZ_SRC_DIR};
mvn clean install -DskipTests
mvn site
cd ..
mkdir |
Code Block |
#Define the following environment variables export TEZ_SRC_DIR=/home/user/tez #e.g. tez-src or the absolute path export RELEASE_VERSION=x.y.z #e.g. 0.8.4 cd ${TEZ_SRC_DIR}; mvn clean install -DskipTests mvn site cd .. mkdir apache-tez-${RELEASE_VERSION}-bin tar -C apache-tez-${RELEASE_VERSION}-bin -zxvf ${TEZ_SRC_DIR}/tez-dist/target/tez-${RELEASE_VERSION}-minimal.tar.gz mkdir tmp-tez-full tar -C tmp-tez-full -zxvf ${TEZ_SRC_DIR}/tez-dist/target/tez-${RELEASE_VERSION}.tar.gz cp tmp-tez-full/LICENSE* apache-tez-${RELEASE_VERSION}-bin/ cp tmp-tez-full/NOTICE* apache-tez-${RELEASE_VERSION}-bin/ rmtar -rf tmp-tez-full mkdir C apache-tez-${RELEASE_VERSION}-bin/conf # copy over tez templates into conf dir. cp -zxvf ${TEZ_SRC_DIR}/tez-apidist/target/site/apidocs/configs/tez-default-template.xml apache-tez-${RELEASE_VERSION}-bin/conf/ cpminimal.tar.gz mkdir tmp-tez-full tar -C tmp-tez-full -zxvf ${TEZ_SRC_DIR}/tez-runtime-librarydist/target/site/apidocs/configs/tez-runtime-default-template.xmltez-${RELEASE_VERSION}.tar.gz cp tmp-tez-full/LICENSE* apache-tez-${RELEASE_VERSION}-bin/conf/ # TODO: If TEZ-3322 is not fixed, modify the config files under cp tmp-tez-full/NOTICE* apache-tez-${RELEASE_VERSION}-bin/conf/ and add the Apache header, see example below rm -rf tmp-tez-full mkdir apache-tez-${RELEASE_VERSION}-bin/shareconf # copy over tez templates into conf dir. cp ${TEZ_SRC_DIR}/tez-distapi/target/tez-${RELEASE_VERSION}.tar.gz apache-tez-${RELEASE_VERSION}-bin/share/tez.tar.gz COPYFILE_DISABLE=1 tar --exclude=.git -zcvfsite/apidocs/configs/tez-default-template.xml apache-tez-${RELEASE_VERSION}-bin.tar.gz/conf/ cp ${TEZ_SRC_DIR}/tez-runtime-library/target/site/apidocs/configs/tez-runtime-default-template.xml apache-tez-${RELEASE_VERSION}-bin/conf/ # SignTODO: releaseIf andTEZ-3322 create checksums using commands similar to those called out earlier foris not fixed, modify the sourceconfig tarball gpg2files --armor --output under apache-tez-${RELEASE_VERSION}-bin.tar.gz.asc --detach-sig/conf/ and add the Apache header, see example below mkdir apache-tez-${RELEASE_VERSION}-bin.tar.gz openssl md5 apache-/share cp ${TEZ_SRC_DIR}/tez-dist/target/tez-${RELEASE_VERSION}-bin.tar.gz > apache-tez-${RELEASE_VERSION}-bin/share/tez.tar.gz.md5 openssl dgst -sha512 COPYFILE_DISABLE=1 tar --exclude=.git -zcvf apache-tez-${RELEASE_VERSION}-bin.tar.gz > apache-tez-${RELEASE_VERSION}-bin.tar.gz.sha512 # RemoveSign unnecessaryrelease textand fromcreate checksumchecksums files # (the using commands belowsimilar areto supposedthose tocalled workout withearlier GNU sed) sed -i"" s/"^.*= "// apache-tez-${RELEASE_VERSION}-bin.tar.gz.md5 sed -i"" s/"^.*= "// for the source tarball gpg2 --armor --output apache-tez-${RELEASE_VERSION}-bin.tar.gz.sha512 sed -i"" s/"^.*= "//asc --detach-sig apache-tez-${RELEASE_VERSION}-srcbin.tar.gz.md5 sedshasum -i"" s/"^.*= "//a 512 apache-tez-$RELEASE_VERSION-src.tar.gz > apache-tez-${RELEASE$RELEASE_VERSION}-src.tar.gz.sha512 #Verify integrity of checksum files |
...
Code Block |
---|
svn co https://dist.apache.org/repos/dist/dev/tez/ tez_svn # assuming that you want to store svn files in a folder named "svn" for clarity's sake # copy contents to "tez_svn" directory, which is the svn working dir export RC_VERSION=rc0 #define rc version if you haven't defined yet mkdir tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION} cp apache-tez-${RELEASE_VERSION}-bin.tar.gz tez_t defined yet mkdir tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-bin.tar.gz.asc tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-bin.tar.gz.md5asc tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-bin.tar.gz.sha512 tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-src.tar.gz tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-src.tar.gz.asc tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-src.tar.gz.md5 tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ cp apache-tez-${RELEASE_VERSION}-src.tar.gz.sha512 tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ # check contents of "tez_svn" for actual release, you should see something like: ls tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ apache-tez-x.y.z-bin.tar.gz apache-tez-x.y.z-src.tar.gz apache-tez-x.y.z-bin.tar.gz.asc apache-tez-x.y.z-bin.tar.gz.sha512 apache-tez-x.y.z-src.tar.gz.asc apache-tez-x.y.z-src.tar.gz.sha512 svn add tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ # if this is the first time you commit to svn, you might want to define an editor for commit messages, like: export SVN_EDITOR=vi svn ci tez_svn/apache-tez-${RELEASE_VERSION}-${RC_VERSION}/ #specify your ASF username with --username=$USER_NAME if it's not the same as your current user |
...
Log on to https://repository.apache.org and look at the Staging Repositories. "Release" the tez repository previously sent out in the vote thread, so that it is available for general consumption.
...