(List (Com {[LIT_CHARS set]} {[LIT_CHARS -e]} ) (Com {[LIT_CHARS .]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})] [LIT_CHARS /atexit.sh]} ) (Com {[LIT_CHARS .]} {[ComSub (Com {[LIT_CHARS dirname]} {[VarSub 0]})] [LIT_CHARS /colors.sh]} ) (AndOr OP_OR_IF (Com {[LIT_CHARS test]} {[VarSub #]} {[LIT_CHARS -eq]} {[LIT_CHARS 2]} ) (List (Com {[LIT_CHARS echo]} {[DQ [LIT_CHARS "Usage: "][ComSub (Com {[LIT_CHARS basename]} {[VarSub 0]})][LIT_CHARS " [version] [candidate]"]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 1]} ) ) ) (= scope= flags=0 words=[] bindings=[('VERSION', {[VarSub 1]})]) (= scope= flags=0 words=[] bindings=[('CANDIDATE', {[VarSub 2]})]) (= scope= flags=0 words=[] bindings=[('TAG', {[DQ [VarSub VERSION][LIT_CHARS -rc][VarSub CANDIDATE]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Voting for mesos-"][VarSub VERSION][LIT_CHARS " candidate "][VarSub CANDIDATE][VarSub NORMAL]]} ) (Com {[LIT_CHARS read]} {[LIT_CHARS -p]} {[DQ [LIT_CHARS "Hit enter to continue ... "]]} ) (= scope= flags=0 words=[] bindings=[('MESOS_GIT_URL', {[DQ [LIT_CHARS "https://git-wip-us.apache.org/repos/asf/mesos.git"]]})]) (= scope= flags=0 words=[] bindings=[('WORK_DIR', {[ComSub (Com {[LIT_CHARS mktemp]} {[LIT_CHARS -d]} {[LIT_CHARS /tmp/mesos-vote-XXXX]})]})]) (Com {[LIT_CHARS atexit]} {[DQ [LIT_CHARS "rm -rf "][VarSub WORK_DIR]]} ) (Com {[LIT_CHARS pushd]} {[VarSub WORK_DIR]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Checking out "][VarSub TAG][VarSub NORMAL]]} ) (Com {[LIT_CHARS git]} {[LIT_CHARS clone]} {[LIT_CHARS --depth]} {[LIT_CHARS 1]} {[LIT_CHARS --branch]} {[VarSub TAG]} {[VarSub MESOS_GIT_URL]} ) (Com {[LIT_CHARS pushd]} {[LIT_CHARS mesos]} ) (Com {[LIT_CHARS grep]} {[DQ [\ LIT_ESCAPED_CHAR "\\["][LIT_CHARS mesos][\ LIT_ESCAPED_CHAR "\\]"][LIT_CHARS ", "][\ LIT_ESCAPED_CHAR "\\["][VarSub VERSION][\ LIT_ESCAPED_CHAR "\\]"]]} {[LIT_CHARS configure.ac]} ) (Com {[LIT_CHARS ./bootstrap]} ) (Com {[LIT_CHARS mkdir]} {[LIT_CHARS build]} ) (Com {[LIT_CHARS pushd]} {[LIT_CHARS build]} ) (Com {[LIT_CHARS ../configure]} {[LIT_CHARS --disable-optimize]} ) (Com {[LIT_CHARS pushd]} {[LIT_CHARS 3rdparty]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS -j3]} ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS -j3]} {[LIT_CHARS maven-install]} ) (Com {[LIT_CHARS mvn]} {[LIT_CHARS deploy]} {[LIT_CHARS -f]} {[LIT_CHARS src/java/mesos.pom]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Successfully deployed the jar to staging maven repository ..."][VarSub NORMAL]]} ) (= scope= flags=0 words=[] bindings=[('MAVEN_REPO', {[DQ ]})]) (While (Com {[LIT_DBRACKET_LIKE "["]} {[LIT_CHARS -z]} {[VarSub MAVEN_REPO]} {[LIT_DBRACKET_LIKE "]"]} ) (Com {[LIT_CHARS read]} {[LIT_CHARS -p]} {[DQ [LIT_CHARS "Please *close* the staging repository and provide its URL here: "]]} {[LIT_CHARS MAVEN_REPO]} ) ) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Building the distribution ..."][VarSub NORMAL]]} ) (Com {[LIT_CHARS make]} {[LIT_CHARS -j3]} {[LIT_CHARS dist]} ) (= scope= flags=0 words=[] bindings=[('TARBALL', {[LIT_CHARS mesos-] [VarSub VERSION] [LIT_CHARS .tar.gz]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Signing the distribution ..."][VarSub NORMAL]]} ) (Com {[LIT_CHARS gpg]} {[LIT_CHARS --armor]} {[LIT_CHARS --output]} {[VarSub TARBALL] [LIT_CHARS .asc]} {[LIT_CHARS --detach-sig]} {[VarSub TARBALL]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Creating a MD5 checksum..."][VarSub NORMAL]]} ) (Com {[LIT_CHARS gpg]} {[LIT_CHARS --print-md]} {[LIT_CHARS MD5]} {[VarSub TARBALL]} < (FilenameRedirectNode filename={[VarSub TARBALL] [LIT_CHARS .md5]} "> 1), > ) (= scope= flags=0 words=[] bindings=[('SVN_DEV_REPO', {[DQ [LIT_CHARS "https://dist.apache.org/repos/dist/dev/mesos"]]})]) (= scope= flags=0 words=[] bindings=[('SVN_DEV_LOCAL', {[DQ [VarSub WORK_DIR][LIT_CHARS /dev]]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Checking out svn dev repo ..."][VarSub NORMAL]]} ) (Com {[LIT_CHARS svn]} {[LIT_CHARS co]} {[LIT_CHARS --depth] [LIT_DBRACKET_LIKE "="] [LIT_CHARS empty]} {[VarSub SVN_DEV_REPO]} {[VarSub SVN_DEV_LOCAL]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Uploading the artifacts (the distribution,"]]} {[DQ [LIT_CHARS "signature, and MD5) ..."][VarSub NORMAL]]} ) (= scope= flags=0 words=[] bindings=[('RELEASE_DIRECTORY', {[DQ [VarSub SVN_DEV_LOCAL][LIT_CHARS /][VarSub TAG]]})]) (Com {[LIT_CHARS mkdir]} {[VarSub RELEASE_DIRECTORY]} ) (Com {[LIT_CHARS mv]} {[VarSub TARBALL]} {[VarSub TARBALL] [LIT_CHARS .asc]} {[VarSub TARBALL] [LIT_CHARS .md5]} {[VarSub RELEASE_DIRECTORY]} ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS pushd]} {[VarSub SVN_DEV_LOCAL]} ) (Com {[LIT_CHARS svn]} {[LIT_CHARS add]} {[VarSub TAG]} ) (Com {[LIT_CHARS svn]} {[LIT_CHARS commit]} {[LIT_CHARS -m]} {[DQ [LIT_CHARS "Adding mesos-"][VarSub TAG][LIT_CHARS .]]} ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS popd]} ) (Com {[LIT_CHARS echo]} {[DQ [VarSub GREEN][LIT_CHARS "Success! Now send the following VOTE email ..."][VarSub NORMAL]]} ) (= scope= flags=0 words=[] bindings=[('MESSAGE', {[ComSub (Com redirects=[(HereDocRedirectNode here_end='__EOF__' do_expansion=True body_word={[DQ [LIT_CHARS "To: dev@mesos.apache.org, user@mesos.apache.org\n"][LIT_CHARS "Subject: [VOTE] Release Apache Mesos "][VarSub VERSION][LIT_CHARS " (rc"][VarSub CANDIDATE][LIT_CHARS ")\n"][LIT_CHARS "\n"][LIT_CHARS "Hi all,\n"][LIT_CHARS "\n"][LIT_CHARS "Please vote on releasing the following candidate as Apache Mesos "][VarSub VERSION][LIT_CHARS ".\n"][LIT_CHARS "\n"][LIT_CHARS "\n"][VarSub VERSION][LIT_CHARS " includes the following:\n"][LIT_CHARS "--------------------------------------------------------------------------------\n"][LIT_CHARS "*****Announce major features here*****\n"][LIT_CHARS "*****Announce major bug fixes here*****\n"][LIT_CHARS "\n"][LIT_CHARS "The CHANGELOG for the release is available at:\n"][LIT_CHARS "https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob_plain;f=CHANGELOG;hb="][VarSub TAG][LIT_CHARS "\n"][LIT_CHARS "--------------------------------------------------------------------------------\n"][LIT_CHARS "\n"][LIT_CHARS "The candidate for Mesos "][VarSub VERSION][LIT_CHARS " release is available at:\n"][VarSub SVN_DEV_REPO][LIT_CHARS /][VarSub TAG][LIT_CHARS /][VarSub TARBALL][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "The tag to be voted on is "][VarSub TAG][LIT_CHARS ":\n"][LIT_CHARS "https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=commit;h="][VarSub TAG][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "The MD5 checksum of the tarball can be found at:\n"][VarSub SVN_DEV_REPO][LIT_CHARS /][VarSub TAG][LIT_CHARS /][VarSub TARBALL][LIT_CHARS ".md5\n"][LIT_CHARS "\n"][LIT_CHARS "The signature of the tarball can be found at:\n"][VarSub SVN_DEV_REPO][LIT_CHARS /][VarSub TAG][LIT_CHARS /][VarSub TARBALL][LIT_CHARS ".asc\n"][LIT_CHARS "\n"][LIT_CHARS "The PGP key used to sign the release is here:\n"][LIT_CHARS "https://dist.apache.org/repos/dist/release/mesos/KEYS\n"][LIT_CHARS "\n"][LIT_CHARS "The JAR is up in Maven in a staging repository here:\n"][VarSub MAVEN_REPO][LIT_CHARS "\n"][LIT_CHARS "\n"][LIT_CHARS "Please vote on releasing this package as Apache Mesos "][VarSub VERSION][LIT_CHARS "!\n"][LIT_CHARS "\n"][LIT_CHARS "The vote is open until "][ComSub (Com {[LIT_CHARS date]} {[LIT_CHARS -v] [LIT_OTHER "+"] [LIT_CHARS 3d]})][LIT_CHARS " and passes if a majority of at least 3 +1 PMC votes are cast.\n"][LIT_CHARS "\n"][LIT_CHARS "[ ] +1 Release this package as Apache Mesos "][VarSub VERSION][LIT_CHARS "\n"][LIT_CHARS "[ ] -1 Do not release this package because ...\n"][LIT_CHARS "\n"][LIT_CHARS "Thanks,\n"]]} 0)]{[LIT_CHARS cat]})]})]) (Com {[LIT_CHARS echo]} {[DQ [VarSub MESSAGE]]} ) (Com {[LIT_CHARS exit]} {[LIT_CHARS 0]} ) )