<?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="CreateCompilerReleaseCandidate" default="main" basedir=".">

    <!-- use -Dtag=<tag or commit hash> to build from other than the head -->

    <!-- 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.11.jar" />
    <property name="apache.rat.tasks.jar" value="apache-rat-tasks-0.11.jar" />
    <property name="apache.rat.url" value="https://search.maven.org/remotecontent?filepath=org/apache/rat/apache-rat/0.11" />
    <property name="apache.rat.tasks.url" value="https://search.maven.org/remotecontent?filepath=org/apache/rat/apache-rat-tasks/0.11" />
    
	<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" />
    
    <condition property="mvn" value="mvn.cmd">
        <isset property="isWindows" />
    </condition>
    <property name="mvn" value="mvn" />

    <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="The release version number is not set.  Specify -Drelease.version=&lt;release version (e.g. 0.9.0, 1.0.0, etc)&gt;"
        unless="release.version"/>
        
	<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="checkout_tag" if="tag" >
        <exec executable="${git}" dir="${basedir}" failonerror="true" >
            <arg value="checkout" />
            <arg value="${tag}" />
        </exec>
    </target>

    <target name="Release_Step_003" depends="get-temp-folder,download-artifacts,unzip-artifacts,build-source,validate-bits">
    </target>
    <target name="get-temp-folder">
        <input
        message="Enter a temporary folder to store the downloaded artifacts:"
        addproperty="artifactfolder"/>
        <mkdir dir="${artifactfolder}" />
        <available file="${artifactfolder}"
        type="dir"
        property="artifact.folder.found"/>
        <fail message="Could not create artifact folder"
        unless="artifact.folder.found"/>
    </target>
    
    <target name="download-artifacts-utils" if="utils">
        <get src="http://apacheroyaleci2.westus2.cloudapp.azure.com:8080/job/Royale_Release_Step_002a_if_utils/lastSuccessfulBuild/artifact/*zip*/archive.zip" dest="${artifactfolder}/archive_utils.zip" />
    </target>
    
    <target name="download-artifacts" if="artifactfolder">
        <antcall target="download-artifacts-utils" />
        <get src="http://apacheroyaleci2.westus2.cloudapp.azure.com:8080/job/Royale_Release_Step_003/lastSuccessfulBuild/artifact/*zip*/archive.zip" dest="${artifactfolder}/archive.zip" />
    </target>

    <target name="unzip-artifacts-utils" if="utils">
        <mkdir dir="${artifactfolder}/artifacts" />
        <unzip src="${artifactfolder}/archive_utils.zip" dest="${artifactfolder}/artifacts"/>
        <copydir src="${artifactfolder}/artifacts/archive/target/utils/local-release-dir/org/apache/royale/compiler"
                 dest="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler"/>
    </target>
    <target name="unzip-artifacts" if="artifactfolder">
        <antcall target="unzip-artifacts-utils" />
        <mkdir dir="${artifactfolder}/artifacts" />
        <unzip src="${artifactfolder}/archive.zip" dest="${artifactfolder}/artifacts"/>
    </target>
    <target name="build-source-utils" if="utils">
        <!-- build the build tools -->
        <exec executable="${mvn}" dir="${artifactfolder}/sources/compiler-build-tools" failonerror="true" >
          <arg value="clean" />
          <arg value="install" />
        </exec>
        <!-- build the jburg types -->
        <exec executable="${mvn}" dir="${artifactfolder}/sources/compiler-jburg-types" failonerror="true" >
          <arg value="clean" />
          <arg value="install" />
        </exec>
    </target>
    <target name="build-source" >
        <mkdir dir="${artifactfolder}/sources" />
        <unzip src="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/royale-compiler-parent/${release.version}/royale-compiler-parent-${release.version}-source-release.zip" dest="${artifactfolder}/sources" >
            <cutdirsmapper dirs="1" />
        </unzip>
        
        <antcall target="build-source-utils" />
        <!-- build the main project -->
        <exec executable="${mvn}" dir="${artifactfolder}/sources" failonerror="true" >
            <arg value="clean" />
            <arg value="install" />
            <arg value="-Proyale-release,option-with-swf" />
        </exec>
    </target>
    
    <target name="get-artifact-folder" unless="artifactfolder">
        <input
            message="Enter the temporary folder to store the downloaded artifacts:"
            addproperty="artifactfolder"/>
        <available file="${artifactfolder}"
            type="dir"
            property="artifact.folder.found"/>
        <fail message="Could not find artifact folder"
            unless="artifact.folder.found"/>
    </target>
    
    <target name="get-utils-version">
        <xmlproperty file="${artifactfolder}/sources/compiler-jburg-types/pom.xml" prefix="jburg" />
        <property name="utils.version" value="${jburg.project.version}" />
        <echo>utils version is ${utils.version}</echo>
    </target>
    
    <target name="check-for-utils" unless="utils">
        <available file="${artifactfolder}/sources/compiler-jburg-types/target/compiler-jburg-types-${utils.version}.jar" property="utils" value="true" />
    </target>

    <target name="validate-bits" depends="get-artifact-folder,get-utils-version,compare-jars">
    </target>
    
    <target name="write-out-maven-utils-jars-list" if="utils" >
        <delete file="${artifactfolder}/jars.txt" />
        <!-- this is a comma-delimited, no spaces, no-line-breaks list used to decide which jars
         to skip in the rat-check of the binaries and which jars to examine before approval -->
        <property name="jars-list-with-utils" value="compiler-jburg-types,compiler-build-tools,${jars-list}"/>
        <echo file="${artifactfolder}/jars.txt" message="${jars-list-with-utils}"/>
    </target>
    
    <target name="write-out-maven-jars-list" >
        <delete file="${artifactfolder}/jars.txt" />
        <!-- this is a comma-delimited, no spaces, no-line-breaks list used to decide which jars
         to skip in the rat-check of the binaries and which jars to examine before approval -->
        <property name="jars-list" value="compiler,compiler-common,compiler-externc,compiler-jx,compiler-test-utils,swfutils,debugger,flex-compiler-oem,royale-ant-tasks,royale-maven-plugin"/>
        <echo file="${artifactfolder}/jars.txt" message="${jars-list}"/>
        <antcall target="write-out-maven-utils-jars-list" />
    </target>

    <target name="compare-jars" depends="write-out-maven-jars-list">
        <!-- comma delimited list, no spaces, not one file per line -->
        <copy file="${artifactfolder}/jars.txt" tofile="${artifactfolder}/loop.txt" />
        <ant antfile="releasesteps.xml" target="loopOnce" inheritAll="false" >
            <property name="artifactfolder" value="${artifactfolder}" />
            <property name="release.version" value="${release.version}" />
            <property name="utils.version" value="${utils.version}" />
        </ant>
    </target>
    
    <target name="get-jar-version" >
        <condition property="jar.version" value="${utils.version}"
            else="${release.version}">
            <or>
                <equals arg1="${thisFile}" arg2="compiler-jburg-types" />
                <equals arg1="${thisFile}" arg2="compiler-build-tools" />
            </or>
        </condition>
    </target>
    
    <target name="loopOnce" >
        <!-- make a copy of the list so we can munge it to
         get the first item in the list -->
        <delete file="${artifactfolder}/loop1.txt" />
        <copy file="${artifactfolder}/loop.txt" tofile="${artifactfolder}/loop1.txt" />
        <loadfile srcFile="${artifactfolder}/loop.txt" property="checkiflast" />
        <condition property="islast" value="true">
            <not>
                <contains string="${checkiflast}" substring="," />
            </not>
        </condition>
        <antcall target="notlast" />
        <antcall target="lastone" />
    </target>
    <target name="notlast" unless="islast">
        <loadfile srcFile="${artifactfolder}/loop1.txt" property="echoFile" />
        <replaceregexp file="${artifactfolder}/loop1.txt" match="^(.*),(.*)" replace="\2" />
        <loadfile srcFile="${artifactfolder}/loop1.txt" property="thisFile" />
        <antcall target="compare_files" />
        <replaceregexp file="${artifactfolder}/loop.txt" match="^(.*),(.*)" replace="\1" />
        <ant antfile="releasesteps.xml" target="loopOnce" inheritAll="false">
            <property name="artifactfolder" value="${artifactfolder}" />
            <property name="release.version" value="${release.version}" />
            <property name="utils.version" value="${utils.version}" />
        </ant>
    </target>
    <target name="lastone" if="islast">
        <loadfile srcFile="${artifactfolder}/loop1.txt" property="thisFile" />
        <antcall target="compare_files" />
        <delete file="${artifactfolder}/loop.txt" />
        <delete file="${artifactfolder}/loop1.txt" />
    </target>

    <target name="compare_files" depends="get-jar-version">
        <echo>comparing ${thisFile}-${jar.version}</echo>
        <fail message="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${thisFile}/${jar.version}/${thisFile}-${jar.version}.jar does not exist" >
            <condition>
                <not>
                    <resourceexists><file file="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${thisFile}/${jar.version}/${thisFile}-${jar.version}.jar"/></resourceexists>
                </not>
            </condition>
        </fail>
        <fail message="${artifactfolder}/sources/${thisFile}/target/${thisFile}-${jar.version}.jar does not exist" >
            <condition>
                <not>
                    <resourceexists><file file="${artifactfolder}/sources/${thisFile}/target/${thisFile}-${jar.version}.jar"/></resourceexists>
                </not>
            </condition>
        </fail>
        <condition property="filesmatch" value="true">
              <filesmatch file1="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${thisFile}/${jar.version}/${thisFile}-${jar.version}.jar"
                file2="${artifactfolder}/sources/${thisFile}/target/${thisFile}-${jar.version}.jar" />
        </condition>
        <fail message="${thisFile}-${jar.version}.jar does not match" unless="filesmatch" />
    </target>
    
    <target name="Release_Step_003_Sign" depends="get-artifact-folder">
        <fail message="release.version not specified"
            unless="release.version"/>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/royale-compiler-parent/${release.version}/royale-compiler-parent-${release.version}-source-release.zip" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/royale-compiler-parent/${release.version}/royale-compiler-parent-${release.version}.pom" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="compiler" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="compiler-common" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="compiler-externc" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/compiler-externc/${release.version}/compiler-externc-${release.version}-tests.jar" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="compiler-jx" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="compiler-test-utils" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="debugger" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="flex-compiler-oem" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="royale-ant-tasks" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="royale-maven-plugin" />
        </antcall>
		 <antcall target="sign-jar-artifacts">
            <param name="jarname" value="royaleunit-ant-tasks" />
        </antcall>
        <antcall target="sign-jar-artifacts" >
            <param name="jarname" value="swfutils" />
        </antcall>
        <antcall target="sign-utils" />
    </target>

    <target name="sign-utils" depends="get-utils-version,check-for-utils" if="utils">
        <antcall target="sign-utils-jar-artifacts" >
            <param name="jarname" value="compiler-build-tools" />
        </antcall>
        <antcall target="sign-utils-jar-artifacts" >
            <param name="jarname" value="compiler-jburg-types" />
        </antcall>
    </target>

    <target name="sign-jar-artifacts">
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${release.version}/${jarname}-${release.version}.pom" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${release.version}/${jarname}-${release.version}-javadoc.jar" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${release.version}/${jarname}-${release.version}-sources.jar" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${release.version}/${jarname}-${release.version}.jar" />
        </antcall>
    </target>
    
    <target name="sign-utils-jar-artifacts">
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${utils.version}/${jarname}-${utils.version}.pom" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${utils.version}/${jarname}-${utils.version}-javadoc.jar" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${utils.version}/${jarname}-${utils.version}-sources.jar" />
        </antcall>
        <antcall target="sign-file" >
            <param name="file" value="${artifactfolder}/artifacts/archive/target/local-release-dir/org/apache/royale/compiler/${jarname}/${utils.version}/${jarname}-${utils.version}.jar" />
        </antcall>
    </target>
    
    
    <target name="sign-file">
        <exec executable="gpg">
            <arg value="--armor" />
            <arg value="--output" />
            <arg value="${file}.asc" />
            <arg value="--detach-sig" />
            <arg value="${file}" />
        </exec>
    </target>
    
    <target name="Release_Step_003_Upload" depends="get-artifact-folder">
        <fail message="release.version not specified"
            unless="release.version"/>
        <exec executable="${mvn}" failonerror="true" >
            <arg value="wagon:upload" />
            <arg value="-X" />
            <arg value="-Dwagon.fromDir=${artifactfolder}/artifacts/archive/target/local-release-dir" />
            <arg value="-Dwagon.url=https://repository.apache.org/service/local/staging/deploy/maven2" />
            <arg value="-Dwagon.serverId=apache.releases.https" />
            <arg value="-Dwagon.includes=**" />
        </exec>
    </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>
        <antcall target="checkout_tag" />
		<ant antfile="build.xml" target="release" />
		<ant antfile="build.xml" target="create-md5" />
		<ant antfile="build.xml" target="sign" />
		<mkdir dir="${dist.dev}/royale/compiler/${release.version}/rc${rc}/binaries" />
		<copy todir="${dist.dev}/royale/compiler/${release.version}/rc${rc}" >
			<fileset dir="${basedir}/out" >
				<include name="apache-royale-compiler-${release.version}-src*" />
			</fileset>
		</copy>
		<copy todir="${dist.dev}/royale/compiler/${release.version}/rc${rc}/binaries" >
			<fileset dir="${basedir}/out" >
				<include name="apache-royale-compiler-${release.version}-bin*" />
			</fileset>
		</copy>
		<copy file="${basedir}/README" tofile="${dist.dev}/royale/compiler/${release.version}/rc${rc}/READme" />
		<copy file="${basedir}/ApproveCompiler.xml" tofile="${dist.dev}/royale/compiler/${release.version}/rc${rc}/ApproveCompiler.xml" />
		<copy file="${basedir}/apache-royale-compiler-installer-config.xml" tofile="${dist.dev}/royale/compiler/${release.version}/rc${rc}/binaries/apache-royale-compiler-installer-config.xml" />
        <exec executable="${svn}" dir="${dist.dev}/royale/compiler" failonerror="true" >
            <arg value="update" />
        </exec>
		<exec executable="${svn}" dir="${dist.dev}/royale/compiler" failonerror="true" >
			<arg value="add" />
			<arg value="${dist.dev}/royale/compiler/${release.version}/rc${rc}" />
		</exec>
		<exec executable="${svn}" dir="${dist.dev}/royale/compiler" 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 Royale Compiler ${release.version}" />
		</exec>
        <antcall target="tag_release" />
		<antcall target="update-installer-config" />
		<antcall target="mail" />
    </target>
    
    <target name="tag_release" unless="tag" >
        <exec executable="${git}" dir="${basedir}" failonerror="true" >
            <arg value="tag" />
            <arg value="-a" />
            <arg value="apache-royale-compiler-${release.version}-rc${rc}" />
            <arg value="-m" />
            <arg value="&quot;rc${rc} of apache-royale-compiler-${release.version}&quot;" />
        </exec>
        <exec executable="${git}" dir="${basedir}" failonerror="true" >
            <arg value="push" />
            <arg value="--tags" />
        </exec>
    </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 Compiler ${release.version} rc${rc}&quot;" />
		</exec>
		<!-- pause to give buildbot chance to react -->
		<sleep seconds="5" />
		<get src="https://cms.apache.org/royale/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.ApacheRoyaleCompiler.latestVersion}" />
        <replaceregexp byline="true" flags="g">
            <regexp pattern="ApacheRoyaleCompiler(.*)latestVersion=&quot;${latest.release}&quot;(.*)"/>
            <substitution expression="ApacheRoyaleCompiler\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 royale sdk ${release.version} rc${rc}&quot;" />
		</exec>
		<!-- pause to give buildbot chance to react -->
		<sleep seconds="5" />
		<get src="https://cms.apache.org/royale/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}/royale/compiler/${release.version}" >
			<not>
				<available file="${dist.dev}/royale/compiler/${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}/royale/compiler" 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 Royale\n\
compilers.  The only purpose of the Compiler packages are to serve as\n\
upstream packages for the Royale release.\n\
\n\
The release candidate can be found here;\n\
https://dist.apache.org/repos/dist/dev/royale/compiler/${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 Royale 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\
Royale release candidate and building the examples in the Royale package.\n\
\n\
The binary package is set up as an upstream package for the Royale\n\
release.  The most convenient way to use the binary package is to install\n\
a Royale SDK via Ant or the Installer.\n\
\n\
Please vote to approve this release:\n\
+1 Approve the release\n\
-1 Disapprove 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/royale/compiler/${release.version}/rc${rc}/ApproveCompiler.xml\n\
3) run the script:\n\
   ant -e -f ApproveCompiler.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@royale.apache.org?subject=[DISCUSS]%20Discuss%20Release%20Apache%20Royale%20Compiler%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@royale.apache.org?subject=[VOTE]%20Release%20Apache%20Royale%20Compiler%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}/royale" failonerror="true" >
			<arg value="update" />
		</exec>
		<exec executable="${svn}" dir="${dist.release}/royale/compiler" failonerror="true" >
			<arg value="mv" />
			<arg value="${dist.dev}/royale/compiler/${release.version}/rc${rc}" />
            <arg value="${dist.release}/royale/compiler/${release.version}" />
		</exec>
		<exec executable="${svn}" dir="${dist.release}/.." 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 Royale Compiler ${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" >
        <condition property="tag" value="apache-royale-compiler-${release.version}-rc${rc}">
            <not>
                <isset property="tag" />
            </not>
        </condition>
        <exec executable="${git}" dir="${basedir}" failonerror="true" output="${basedir}/taghash.txt">
            <arg value="show" />
            <arg value="${tag}" />
        </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-royale-compiler-${release.version}" />
            <arg value="${releasehash}" />
            <arg value="-m" />
            <arg value="&quot;Official release of apache-royale-compiler-${release.version}&quot;" />
        </exec>
    </target>
</project>
