You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ah...@apache.org on 2016/09/07 22:40:23 UTC

[22/50] git commit: [flex-falcon] [refs/heads/master] - restore releasecandidate script

restore releasecandidate script


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/7cfd14b9
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/7cfd14b9
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/7cfd14b9

Branch: refs/heads/master
Commit: 7cfd14b91cfa9a83c7c4337141216cbc845730d7
Parents: c2944b3
Author: Alex Harui <ah...@apache.org>
Authored: Sat Sep 3 23:21:46 2016 -0700
Committer: Alex Harui <ah...@apache.org>
Committed: Sat Sep 3 23:21:46 2016 -0700

----------------------------------------------------------------------
 releasecandidate.xml | 496 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 496 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/7cfd14b9/releasecandidate.xml
----------------------------------------------------------------------
diff --git a/releasecandidate.xml b/releasecandidate.xml
new file mode 100644
index 0000000..2044b02
--- /dev/null
+++ b/releasecandidate.xml
@@ -0,0 +1,496 @@
+<?xml version="1.0"?>
+<!--
+
+  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.
+
+-->
+
+<project name="CreateFalconReleaseCandidate" default="main" basedir=".">
+
+
+    <!-- Required for OSX 10.6 / Snow Leopard Performance. -->
+    <!-- Java 7 on Mac requires OSX 10.7.3 or higher and is 64-bit only -->
+    <!-- local.d32 is set/used in build.properties so this needs to be done first. -->
+    <condition property="local.d32" value="-d32">
+        <and>
+            <os family="windows"/>
+            <equals arg1="${sun.arch.data.model}" arg2="64"/>
+            <equals arg1="${os.arch}" arg2="x86_64"/>
+            <equals arg1="${ant.java.version}" arg2="1.6"/>
+        </and>
+    </condition>
+
+    <condition property="isMac" value="mac">
+        <os family="mac" />
+    </condition>
+    <condition property="isWindows" value="windows">
+        <os family="windows" />
+    </condition>
+    <condition property="isLinux" value="linux">
+		<and>
+			<os family="unix" />
+			<not>
+				<isset property="isMac" />
+			</not>
+		</and>
+    </condition>
+	
+	<property name="rat.report" value="${basedir}/rat-report.txt"/>
+	<property name="apache.rat.jar" value="apache-rat-0.8.jar" />
+	<property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.8.jar" />
+	<property name="apache.rat.url" value="http://people.apache.org/~aharui/rat" />
+    
+	<property file="${basedir}/local.properties" />
+	<property file="${basedir}/build.properties" />
+	   
+    <property environment="env"/>
+    
+	<condition property="do.copy.downloads" >
+		<isset property="download.cache.dir" /> 
+	</condition>
+	
+    <condition property="CRLF" value="%0D%0A">
+        <isset property="isWindows" />
+    </condition>
+    <property name="CRLF" value="%0A" />
+    
+    <fail message="The my.name property is not set to the RM's name"
+    unless="my.name"/>
+    
+    <fail message="The ANT_HOME environment variable is not set."
+        unless="env.ANT_HOME"/>
+		
+	<available file="${svn.dist.dev}"
+		type="dir" 
+		property="dist.dev" value="${svn.dist.dev}" />
+    
+	<fail message="The svn.dist.dev property is not set to the working copy for https://dist.apache.org/repos/dist/dev."
+        unless="dist.dev"/>
+				
+	<available file="${svn.site}"
+		type="dir" 
+		property="site" value="${svn.site}" />
+    
+	<fail message="The svn.site property is not set to the working copy for https://flex.apache.org."
+        unless="site"/>
+				
+	<available file="${env.AIR_HOME}"
+		type="dir" 
+		property="AIR_HOME" value="${env.AIR_HOME}" />
+
+    <fail message="The AIR_HOME property is not set in environment or command-line."
+        unless="AIR_HOME"/>
+		
+    <available file="${env.PLAYERGLOBAL_HOME}"
+        type="dir"
+        property="PLAYERGLOBAL_HOME" value="${env.PLAYERGLOBAL_HOME}" />
+    
+    <fail message="The PLAYERGLOBAL_HOME property is not set in environment or command-line."
+        unless="PLAYERGLOBAL_HOME"/>
+    
+    <available file="${env.FLASHPLAYER_DEBUGGER}"
+        type="dir"
+        property="FLASHPLAYER_DEBUGGER" value="${env.FLASHPLAYER_DEBUGGER}" />
+    
+    <available file="${env.FLASHPLAYER_DEBUGGER}"
+        type="file"
+        property="FLASHPLAYER_DEBUGGER" value="${env.FLASHPLAYER_DEBUGGER}" />
+    
+    <fail message="The FLASHPLAYER_DEBUGGER property is not set in environment or command-line."
+        unless="FLASHPLAYER_DEBUGGER"/>
+        
+    <available file="${env.ProgramFiles}/Mozilla Firefox/firefox.exe"
+		type="file"
+		property="browser" value="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" />
+    <available file="${env.ProgramFiles(x86)}/Mozilla Firefox/firefox.exe"
+		type="file"
+		property="browser" value="${env.ProgramFiles}/Mozilla Firefox/firefox.exe" />
+    <available file="/Applications/Firefox.app/Contents/MacOS/firefox"
+		type="file"
+		property="browser" value="/Applications/Firefox.app/Contents/MacOS/firefox" />
+        
+    <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
+        type="file"
+        property="apache.rat.found"/>
+    <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
+        type="file"
+        property="apache.rat.tasks.found"/>
+		
+    <fail message="Could not locate Firefox.  Please specify a browser with
+    -Dbrowser=&lt;path-to-browser&gt;"
+        unless="browser"/>
+        
+    <available file="${env.ProgramFiles}/SlikSVN/bin/svn.exe"
+		type="file"
+		property="svn" value="${env.ProgramFiles}/SlikSVN/bin/svn.exe" />
+    <available file="${env.ProgramFiles(x86)}/SlikSVN/bin/svn.exe"
+		type="file"
+		property="svn" value="${env.ProgramFiles}/SlikSVN/bin/svn.exe" />
+    <available file="/opt/subversion/bin/svn"
+		type="file"
+		property="svn" value="/opt/subversion/bin/svn" />
+    <fail message="Could not locate SVN command-line.  Please specify the path to SVN with
+    -Dsvn=&lt;path-to-svn&gt;"
+        unless="svn"/>
+                
+    <available file="${env.ProgramFiles}/Git/bin/git.exe"
+		type="file"
+		property="git" value="${env.ProgramFiles}/Git/bin/git.exe" />
+    <available file="${env.ProgramFiles(x86)}/Git/bin/git.exe"
+		type="file"
+		property="git" value="${env.ProgramFiles}/Git/bin/git.exe" />
+    <available file="/usr/local/git/bin/git"
+		type="file"
+		property="git" value="/usr/local/git/bin/git" />
+    <fail message="Could not locate Git command-line.  Please specify the path to Git with
+    -Dgit=&lt;path-to-git&gt;"
+        unless="git"/>
+        
+    <available file="${env.ANT_HOME}/lib/${apache.rat.jar}"
+        type="file"
+        property="apache.rat.found"/>
+    <available file="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}"
+        type="file"
+        property="apache.rat.tasks.found"/>
+		
+    <fail message="Could not locate Firefox.  Please specify a browser with
+    -Dbrowser=&lt;path-to-browser&gt;"
+        unless="browser"/>
+    <fail message="The release candidate number is not set.  Specify -Drc=&lt;rc number (e.g. 1, 2, 3, etc)&gt;"
+    unless="rc"/>
+	
+	<target name="install-rat" depends="install-rat.jar,install-rat.tasks.jar" />
+	<target name="install-rat.jar" unless="apache.rat.found">
+		<get src="${apache.rat.url}/${apache.rat.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.jar}" />
+	</target>
+	<target name="install-rat.tasks.jar" unless="apache.rat.tasks.found">
+		<get src="${apache.rat.url}/${apache.rat.tasks.jar}" dest="${env.ANT_HOME}/lib/${apache.rat.tasks.jar}" />
+	</target>
+	
+    <target name="rat-taskdef" description="Rat taskdef">
+        <typedef resource="org/apache/rat/anttasks/antlib.xml"
+        uri="antlib:org.apache.rat.anttasks"
+        classpathref="anttask.classpath"/>
+    </target>
+
+    <target name="main" depends="install-rat,credentials" description="Perform required release approval steps">
+		<antcall target="check-new-version" />
+		<exec executable="${git}" dir="${basedir}" failonerror="true" >
+			<arg value="pull" />
+			<arg value="--rebase" />
+		</exec>
+		<ant antfile="build.xml" target="release" />
+		<ant antfile="build.xml" target="create-md5" />
+		<ant antfile="build.xml" target="sign" />
+		<mkdir dir="${dist.dev}/flex/falcon/${release.version}/rc${rc}/binaries" />
+		<copy todir="${dist.dev}/flex/falcon/${release.version}/rc${rc}" >
+			<fileset dir="${basedir}/out" >
+				<include name="apache-flex-falconjx-${release.version}-src*" />
+			</fileset>
+		</copy>
+		<copy todir="${dist.dev}/flex/falcon/${release.version}/rc${rc}/binaries" >
+			<fileset dir="${basedir}/out" >
+				<include name="apache-flex-falconjx-${release.version}-bin*" />
+			</fileset>
+		</copy>
+		<copy file="${basedir}/README" tofile="${dist.dev}/flex/falcon/${release.version}/rc${rc}/READme" />
+		<copy file="${basedir}/ApproveFalcon.xml" tofile="${dist.dev}/flex/falcon/${release.version}/rc${rc}/ApproveFalcon.xml" />
+		<copy file="${basedir}/apache-flex-falconjx-installer-config.xml" tofile="${dist.dev}/flex/falcon/${release.version}/rc${rc}/binaries/apache-flex-falconjx-installer-config.xml" />
+        <exec executable="${svn}" dir="${dist.dev}/flex/falcon" failonerror="true" >
+            <arg value="update" />
+        </exec>
+		<exec executable="${svn}" dir="${dist.dev}/flex/falcon" failonerror="true" >
+			<arg value="add" />
+			<arg value="${dist.dev}/flex/falcon/${release.version}/rc${rc}" />
+		</exec>
+		<exec executable="${svn}" dir="${dist.dev}/flex/falcon" failonerror="true" >
+			<arg value="commit" />
+			<arg value="--username" />
+			<arg value="${apache.username}" />
+			<arg value="--password" />
+			<arg value="${apache.password}" />
+			<arg value="-m" />
+			<arg value="rc${rc} of Apache Flex Falcon ${release.version}" />
+		</exec>
+		<exec executable="${git}" dir="${basedir}" failonerror="true" >
+			<arg value="tag" />
+			<arg value="-a" />
+			<arg value="apache-flex-falcon-${release.version}-rc${rc}" />
+			<arg value="-m" />
+			<arg value="&quot;rc${rc} of apache-flex-falcon-${release.version}&quot;" />
+		</exec>
+		<exec executable="${git}" dir="${basedir}" failonerror="true" >
+			<arg value="push" />
+			<arg value="--tags" />
+		</exec>
+		<antcall target="update-installer-config" />
+		<antcall target="mail" />
+    </target>
+
+	<target name="credentials" depends="get-username,get-password">
+		<echo>${apache.username}</echo>
+		<echo>${apache.password}</echo>
+	</target>
+	<target name="get-username" unless="apache.username" >
+        <input
+        message="Enter Apache account username:"
+        addproperty="apache.username"/>
+        <condition property="have.username">
+			<not>
+				<equals trim="true" arg1="" arg2="${apache.username}"/>
+			</not>
+        </condition>
+		<fail message="The apache.username property is not set.  It should be the username for Apache SVN and Git."
+			unless="have.username"/>
+	</target>
+	<target name="get-password" unless="apache.password" >
+        <input
+        message="Enter Apache account password:"
+        addproperty="apache.password"/>
+        <condition property="have.password">
+			<not>
+				<equals trim="true" arg1="" arg2="${apache.password}"/>
+			</not>
+        </condition>
+		<fail message="The apache.password property is not set.  It should be the password for Apache SVN and Git."
+			unless="have.password"/>
+	</target>
+	
+	<target name="update-installer-config" >
+		<exec executable="${svn}" dir="${site}" failonerror="true" >
+			<arg value="update" />
+			<arg value="trunk/content/installer/sdk-installer-config-4.0.xml" />
+		</exec>
+        <replaceregexp byline="true">
+            <regexp pattern="developmentVersion=&quot;${release.version}&quot; rc=&quot;rc.*&quot; latestVersion"/>
+            <substitution expression="developmentVersion=&quot;${release.version}&quot; rc=&quot;rc${rc}&quot; latestVersion"/>
+            <fileset dir="${site}/trunk/content/installer">
+                <include name="sdk-installer-config-4.0.xml"/>
+            </fileset>
+        </replaceregexp>
+		<exec executable="${svn}" dir="${site}" failonerror="true" >
+			<arg value="commit" />
+			<arg value="--username" />
+			<arg value="${apache.username}" />
+			<arg value="--password" />
+			<arg value="${apache.password}" />
+			<arg value="-m" />
+			<arg value="&quot;update sdk-installer-config-4.0 for falcon ${release.version} rc${rc}&quot;" />
+		</exec>
+		<!-- pause to give buildbot chance to react -->
+		<sleep seconds="5" />
+		<get src="https://cms.apache.org/flex/publish" username="${apache.username}" password="${apache.password}" dest="${basedir}/getresult.txt" />
+		<delete file="${basedir}/getresult.txt" />
+	</target>
+
+	<target name="update-installer-config-release" depends="credentials">
+		<exec executable="${svn}" dir="${site}" failonerror="true" >
+			<arg value="update" />
+			<arg value="trunk/content/installer/sdk-installer-config-4.0.xml" />
+		</exec>
+        <xmlproperty file="${site}/trunk/content/installer/sdk-installer-config-4.0.xml" semanticAttributes="true" collapseAttributes="true"/>
+		<property name="latest.release" value="${config.products.ApacheFlexFalconJX.latestVersion}" />
+        <replaceregexp byline="true" flags="g">
+            <regexp pattern="ApacheFlexFalconJX(.*)latestVersion=&quot;${latest.release}&quot;(.*)"/>
+            <substitution expression="ApacheFlexFalconJX\1latestVersion=&quot;${release.version}&quot;\2"/>
+            <fileset dir="${site}/trunk/content/installer">
+                <include name="sdk-installer-config-4.0.xml"/>
+            </fileset>
+        </replaceregexp>
+		<exec executable="${svn}" dir="${site}" failonerror="true" >
+			<arg value="commit" />
+			<arg value="--username" />
+			<arg value="${apache.username}" />
+			<arg value="--password" />
+			<arg value="${apache.password}" />
+			<arg value="-m" />
+			<arg value="&quot;update sdk-installer-config-4.0 and other files for flex sdk ${release.version} rc${rc}&quot;" />
+		</exec>
+		<!-- pause to give buildbot chance to react -->
+		<sleep seconds="5" />
+		<get src="https://cms.apache.org/flex/publish" username="${apache.username}" password="${apache.password}" dest="${basedir}/getresult.txt" />
+		<delete file="${basedir}/getresult.txt" />
+	</target>
+	
+	<target name="check-new-version" description="check if svn folder needs to be added" >
+		<condition property="version.folder" value="${dist.dev}/flex/falcon/${release.version}" >
+			<not>
+				<available file="${dist.dev}/flex/falcon/${release.version}" />
+			</not>
+		</condition>
+		<antcall target="add-version-folder" />
+	</target>
+    
+	<target name="add-version-folder" description="adds svn folder if needed" if="version.folder" >
+		<mkdir dir="${version.folder}" />
+		<exec executable="${svn}" dir="${dist.dev}/flex/falcon" failonerror="true" >
+			<arg value="add" />
+			<arg value="${version.folder}" />
+		</exec>
+	</target>
+		
+    <target name="mail" >
+        <!-- try to set line breaks before the vertical line            | -->
+        <echo file="${basedir}/discussthread.properties">discuss.thread.body=This is the discussion thread.\n\
+\n\
+Changes in this RC include:\n\
+\n\
+\n\
+Thanks,\n\
+${my.name}
+</echo>
+        <replace file="${basedir}/discussthread.properties">
+            <replacefilter token=" " value="%20" />
+            <replacefilter token="\n" value="${CRLF}" />
+        </replace>
+        <property file="${basedir}/discussthread.properties" />
+
+        <!-- try to set line breaks before the vertical line            | -->
+        <echo file="${basedir}/votethread.properties">vote.thread.body=Hi,\n\
+\n\
+This is vote for the ${release.version} release of the FalconJX (and Falcon)\n\
+compilers.  There is no separate Falcon-only release package at\n\
+this time.  The only purpose of the FalconJX packages are to serve as\n\
+upstream packages for the FlexJS release.\n\
+\n\
+The release candidate can be found here;\n\
+https://dist.apache.org/repos/dist/dev/flex/falcon/${release.version}/rc${rc}/\n\
+\n\
+Before voting please review the section, 'What are the ASF requirements on\n\
+approving a release?', at:\n\
+http://www.apache.org/dev/release.html#approving-a-release\n\
+\n\
+At a minimum you would be expected to check that:\n\
+- MD5 and signed packages are correct\n\
+- README, RELEASE_NOTES, NOTICE and LICENSE files are all fine\n\
+- That the build script completes successfully\n\
+- That you can compile using the results of building the source package\n\
+\n\
+The source package is set up the same way as the repo.  This means that\n\
+the results of the build are not the same as the binary package.  The\n\
+compiled source package can be used to build FlexJS apps via the command\n\
+line and Ant, but not in Flash Builder or other IDEs.  You can test the source\n\
+package by building it, then pointing to it from the source package of the\n\
+FlexJS release candidate and building the examples in the FlexJS package.\n\
+\n\
+The binary package is set up as an upstream package for the FlexJS\n\
+release.  The most convenient way to use the binary package is to install\n\
+a FlexJS SDK via Ant or the Installer.\n\
+\n\
+Please vote to approve this release:\n\
++1 Approve the release\n\
+-1 Veto the release (please provide specific comments to why)\n\
+\n\
+This vote will be open for 72 hours or until a result can be called.\n\
+\n\
+The vote passes if there is:\n\
+- At least 3 +1 votes from the PMC\n\
+- More positive votes than negative votes\n\
+\n\
+Remember that this is a 'beta-quality' release so there\n\
+will be many bugs found.  The goal is not to try to find and fix bugs\n\
+in the RC, but to make sure we have the packaging right, and enough\n\
+functionality that folks will have some success trying to use it.\n\
+\n\
+People who are not in PMC are also encouraged to test out the release and\n\
+vote, although their votes will not be binding, they can influence how the\n\
+PMC votes.\n\
+\n\
+When voting please indicate what OS, IDE, Flash Player version and AIR\n\
+version you tested with.\n\
+\n\
+Please put all discussion about this release in the DISCUSSION thread not\n\
+this VOTE thread.\n\
+\n\
+For your convenience there is an ant script that automates the common\n\
+steps to validate a release.  Instead of individually downloading the\n\
+package and signature files, unzipping, etc, you can instead:\n\
+1) create an empty folder,\n\
+2) download into that folder this file:\n\
+https://dist.apache.org/repos/dist/dev/flex/falcon/${release.version}/rc${rc}/ApproveFalcon.xml\n\
+3) run the script: ant -e -f ApproveFalcon.xml -Drelease.version=${release.version} -Drc=${rc}\n\
+\n\
+You are not required to use this script, and more testing of the packages\n\
+and build results are always encouraged.\n\
+\n\
+Thanks,\n\
+${my.name}
+</echo>
+        <replace file="${basedir}/votethread.properties">
+            <replacefilter token=" " value="%20" />
+            <replacefilter token="\n" value="${CRLF}" />
+        </replace>
+        <property file="${basedir}/votethread.properties" />
+        <echo file="${basedir}/votethread.html">&lt;html&gt;&lt;body&gt;&lt;a href=&quot;mailto:dev@flex.apache.org?subject=[DISCUSS]%20Discuss%20Release%20Apache%20Flex%20FalconJX%20${release.version}%20RC${rc}&amp;body=${discuss.thread.body}&quot;&gt;Click here to review discuss thread&lt;/a&gt;&lt;br/&gt;&lt;a href=&quot;mailto:dev@flex.apache.org?subject=[VOTE]%20Release%20Apache%20Flex%20FalconJX%20${release.version}%20RC${rc}&amp;body=${vote.thread.body}&quot;&gt;Click here to review vote thread&lt;/a&gt;&lt;/body&gt;&lt;/html&gt;</echo>
+        <makeurl file="${basedir}/votethread.html" property="vote.thread.url" />
+        <exec executable="${browser}">
+            <arg value="${vote.thread.url}" />
+        </exec>
+		<delete file="${basedir}/votethread.properties" />
+		<delete file="${basedir}/votethread.html" />
+		<delete file="${basedir}/discussthread.properties" />
+    </target>
+
+	<target name="release" depends="credentials" >
+		<available file="${svn.dist.release}"
+			type="dir" 
+			property="dist.release" value="${svn.dist.release}" />
+    
+		<fail message="The svn.dist.release property is not set to the working copy for https://dist.apache.org/repos/dist/release."
+			unless="dist.release"/>
+				
+		<exec executable="${svn}" dir="${dist.release}/flex" failonerror="true" >
+			<arg value="update" />
+		</exec>
+		<exec executable="${svn}" dir="${dist.release}/flex/falcon" failonerror="true" >
+			<arg value="mv" />
+			<arg value="${dist.dev}/flex/falcon/${release.version}/rc${rc}" />
+            <arg value="${dist.release}/flex/falcon/${release.version}" />
+		</exec>
+		<exec executable="${svn}" dir="${dist.release}/flex/falcon" failonerror="true" >
+			<arg value="commit" />
+			<arg value="--username" />
+			<arg value="${apache.username}" />
+			<arg value="--password" />
+			<arg value="${apache.password}" />
+			<arg value="-m" />
+			<arg value="Apache Flex Falcon ${release.version}" />
+		</exec>
+        <antcall target="release.tag" />
+		<exec executable="${git}" dir="${basedir}" failonerror="true" >
+			<arg value="push" />
+			<arg value="--tags" />
+		</exec>
+		<echo>Wait at least 24 hours before running update-installer-config-release target</echo>
+	</target>
+	
+    <target name="release.tag" >
+        <exec executable="${git}" dir="${basedir}" failonerror="true" output="${basedir}/taghash.txt">
+            <arg value="show" />
+            <arg value="apache-flex-falcon-${release.version}-rc${rc}" />
+        </exec>
+        <replaceregexp file="${basedir}/taghash.txt" match="(.*).commit (.*).Author(.*)" replace="\2" byline="false" flags="s" />
+        <loadfile srcFile="${basedir}/taghash.txt" property="releasehash" />
+        <exec executable="${git}" dir="${basedir}" failonerror="true" >
+            <arg value="tag" />
+            <arg value="-a" />
+            <arg value="apache-flex-falcon-${release.version}" />
+            <arg value="${releasehash}" />
+            <arg value="-m" />
+            <arg value="&quot;Official release of apache-flex-falcon-${release.version}&quot;" />
+        </exec>
+    </target>
+</project>