remove ant release logic (not used for our releases and dependent on libs that don't seem to be maintained)

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1915264 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2024-01-16 10:15:36 +00:00
parent c3fd1d5731
commit 724fc526bf
1 changed files with 1 additions and 321 deletions

322
build.xml
View File

@ -396,27 +396,6 @@ under the License.
<!-- jars required for maven helper targets -->
<dependency prefix="maven.ant" artifact="org.apache.maven:maven-ant-tasks:2.1.3" usage="util"/>
<!-- subclipse.tigris.org is gone - left-over is hosted at https://bintray.com/openmeetings/maven/org.tigris.subclipse.svnant -->
<!-- request will be forwarded to d29vzk4ow07wi7.cloudfront.net which is an Atlassian Marketplace instance -->
<dependency prefix="dist.svnant" artifact="org.tigris.subclipse:svnant:1.3.1" usage="util"
repo="https://dl.bintray.com/openmeetings/maven"/>
<!-- hosted at https://bintray.com/subclipse/maven/svnclientadapter - https://github.com/subclipse/svnclientadapter -->
<dependency prefix="dist.svnclientadapter-base" artifact="org.tigris.svnclientadapter:adapter-base:1.12.0" usage="util"
repo="https://dl.bintray.com/subclipse/maven"/>
<dependency prefix="dist.svnclientadapter-svnkit" artifact="org.tigris.svnclientadapter:adapter-svnkit:1.12.0" usage="util"
repo="https://dl.bintray.com/subclipse/maven"/>
<dependency prefix="dist.svnclientadapter-javahl" artifact="org.tigris.svnclientadapter:adapter-javahl:1.12.0" usage="util"
repo="https://dl.bintray.com/subclipse/maven"/>
<dependency prefix="dist.svnkit" artifact="org.tmatesoft.svnkit:svnkit:1.10.1" usage="util"/>
<dependency prefix="dist.svnkit-javahl16" artifact="org.tmatesoft.svnkit:svnkit-javahl16:1.10.1" usage="util"/>
<dependency prefix="dist.sqljet" artifact="org.tmatesoft.sqljet:sqljet:1.1.13" usage="util"/>
<dependency prefix="dist.antlr" artifact="org.antlr:antlr-runtime:3.5.2" usage="util"/>
<dependency prefix="dist.sequence-library" artifact="de.regnis.q.sequence:sequence-library:1.0.4" usage="util"/>
<dependency prefix="dist.lz4-java" artifact="org.lz4:lz4-java:1.7.1" usage="util"/>
<propertyset id="junit.properties">
<propertyref name="POI.testdata.path"/>
<propertyref name="java.awt.headless"/>
@ -921,38 +900,6 @@ under the License.
<downloadfile src="${pdf.graphics2d.url}" dest="${pdf.graphics2d.jar}"/>
</target>
<target name="check-svn-jars">
<condition property="svn.jars.present">
<or>
<and>
<available file="${dist.svnant.jar}"/>
<available file="${dist.svnclientadapter-base.jar}"/>
<available file="${dist.svnclientadapter-svnkit.jar}"/>
<available file="${dist.svnclientadapter-javahl.jar}"/>
<available file="${dist.svnkit.jar}"/>
<available file="${dist.svnkit-javahl16.jar}"/>
<available file="${dist.sqljet.jar}"/>
<available file="${dist.antlr.jar}"/>
<available file="${dist.sequence-library.jar}"/>
<available file="${dist.lz4-java.jar}"/>
</and>
<isset property="disconnected"/>
</or>
</condition>
</target>
<target name="fetch-svn-jars" depends="check-svn-jars" unless="svn.jars.present">
<!-- some jars are gone since bintray.dl is shutting down, so we started to include them in the sources for now -->
<copy todir="lib/util">
<fileset dir="lib.stored/" includes="*.jar"/>
</copy>
<downloadfile src="${dist.svnkit.url}" dest="${dist.svnkit.jar}"/>
<downloadfile src="${dist.svnkit-javahl16.url}" dest="${dist.svnkit-javahl16.jar}"/>
<downloadfile src="${dist.sqljet.url}" dest="${dist.sqljet.jar}"/>
<downloadfile src="${dist.antlr.url}" dest="${dist.antlr.jar}"/>
<downloadfile src="${dist.sequence-library.url}" dest="${dist.sequence-library.jar}"/>
<downloadfile src="${dist.lz4-java.url}" dest="${dist.lz4-java.jar}"/>
</target>
<target name="check-compiled-ooxml-xsds">
<condition property="ooxml-compiled-xsds.present">
<and>
@ -2458,7 +2405,7 @@ under the License.
<!-- continuous integration targets -->
<target name="jenkins"
depends="replaceVersion, compile, test-all, jar, javadocs, assemble, findbugs, release-notes, rat-check, forbidden-apis-check, help, fetch-svn-jars, maventask"
depends="replaceVersion, compile, test-all, jar, javadocs, assemble, findbugs, release-notes, rat-check, forbidden-apis-check, help, maventask"
description="Target run by Jenkins on a continuous basis. Builds and tests POI, generates artifacts and documentation, and searches for problems."/>
<target name="maventask" depends="init">
@ -2842,273 +2789,6 @@ under the License.
<nexus-upload artifactId="poi-scratchpad"/>
</target>
<macrodef name="nexus-upload">
<attribute name="artifactId"/>
<sequential>
<local name="repo"/>
<property name="repo" location="build/repo/@{artifactId}"/>
<copy todir="${repo}">
<mappedresources>
<!-- add sha-512 when nexus rules are updated (1/2) -->
<fileset dir="build/dist/maven" includes="@{artifactId}/**" excludes="**/*.sha512,**/*.sha256"/>
<regexpmapper from="^([^/]+)/(.*)$$" to="org/apache/poi/\1/${version.id}/\2" handledirsep="true"/>
</mappedresources>
</copy>
<local name="lastUpdated"/>
<tstamp>
<format property="lastUpdated" pattern="yyyyMMddHHmmss" timezone="UTC"/>
</tstamp>
<local name="metadir"/>
<property name="metadir" location="${repo}/org/apache/poi/@{artifactId}"/>
<echo file="${metadir}/maven-metadata.xml"><![CDATA[<?xml version="1.0" encoding="UTF-8"?>
<metadata>
<groupId>org.apache.poi</groupId>
<artifactId>@{artifactId}</artifactId>
<versioning>
<latest>${version.id}</latest>
<release>${version.id}</release>
<versions>
<version>${version.id}</version>
</versions>
<lastUpdated>${lastUpdated}</lastUpdated>
</versioning>
</metadata>]]></echo>
<fixcrlf srcdir="${metadir}" includes="maven-metadata.xml" eol="unix" eof="remove" />
<!-- add sha-512 when nexus rules are updated (2/2) -->
<!--checksum algorithm="SHA-512" fileext=".sha512" format="MD5SUM">
<fileset dir="${metadir}" includes="maven-metadata.xml"/>
</checksum-->
<checksum algorithm="sha1" format="MD5SUM">
<fileset dir="${metadir}" includes="maven-metadata.xml"/>
</checksum>
<checksum algorithm="md5" format="MD5SUM">
<fileset dir="${metadir}" includes="maven-metadata.xml"/>
</checksum>
<fixcrlf srcDir="${metadir}" includes="*.md5,*.sha1,*.sha256,*.sha512" eol="unix"/>
<downloadfile src="${dist.nexus-staging.url}" dest="${dist.nexus-staging.jar}"/>
<taskdef uri="antlib:org.sonatype.nexus.ant.staging" resource="org/sonatype/nexus/ant/staging/antlib.xml">
<classpath><pathelement path="${dist.nexus-staging.jar}"/></classpath>
</taskdef>
<staging:stageLocally description="@{artifactId} ${version.id}">
<staging:nexusStagingInfo stagingDirectory="build/nexus-stage/@{artifactId}"/>
<fileset dir="${repo}" />
</staging:stageLocally>
<!-- if this throws a "... dh keypair ..." exception, use Java 7+ for executing the task -->
<staging:stageRemotely description="@{artifactId} ${version.id}">
<staging:nexusStagingInfo stagingDirectory="build/nexus-stage/@{artifactId}">
<staging:projectInfo groupId="org.apache.poi" artifactId="@{artifactId}" version="${version.id}" />
<staging:connectionInfo baseUrl="https://repository.apache.org/">
<staging:authentication username="${settings.apache-id.username}" password="${settings.apache-id.password}" />
</staging:connectionInfo>
</staging:nexusStagingInfo>
</staging:stageRemotely>
</sequential>
</macrodef>
<target name="-init-svn" depends="init,fetch-svn-jars,load-maven-server-settings">
<!-- JAVA_HOME needs to point to a JRE/JDK7+, otherwise the svn/https connection throws a "Could not generate DH keypair"-->
<fail message="Environment needs to point to Java 8+">
<condition>
<or>
<equals arg1="${ant.java.version}" arg2="1.7"/>
<equals arg1="${ant.java.version}" arg2="1.6"/>
<equals arg1="${ant.java.version}" arg2="1.5"/>
</or>
</condition>
</fail>
<path id="path.svnant">
<pathelement location="${dist.svnant.jar}"/>
<pathelement location="${dist.svnclientadapter-base.jar}"/>
<pathelement location="${dist.svnclientadapter-svnkit.jar}"/>
<pathelement location="${dist.svnclientadapter-javahl.jar}"/>
<pathelement location="${dist.svnkit.jar}"/>
<pathelement location="${dist.svnkit-javahl16.jar}"/>
<pathelement location="${dist.sqljet.jar}"/>
<pathelement location="${dist.antlr.jar}"/>
<pathelement location="${dist.sequence-library.jar}"/>
<pathelement location="${dist.lz4-java.jar}"/>
</path>
<taskdef resource="org/tigris/subversion/svnant/svnantlib.xml" classpathref="path.svnant"/>
<svnSetting
svnkit="true"
javahl="false"
username="${settings.apache-id.username}"
password="${settings.apache-id.password}"
id="svn.settings"
/>
</target>
<target name="release-prep0" depends="-init-svn" description="check to make sure the release tag doesn't exist yet">
<!-- verify that svn username/password are valid ... -->
<fail message="Unable to connect to SVN repo. Verify apache-id username and password. If these are correct, change the release-prep0 target to check over http, which would indicate a problem with your https setup.">
<condition>
<not><svnExists refid="svn.settings" target="https://svn.apache.org/repos/asf/poi/"/></not>
</condition>
</fail>
<!-- verify that the release tag that we're about to create in release-prep1 does not already exist (no overwriting tags!) -->
<fail message="Cannot create release tag. https://svn.apache.org/repos/asf/poi/tags/${RELEASE_TAG} already exists. Verify the requested release version (${version.id}).">
<condition>
<svnExists refid="svn.settings" target="https://svn.apache.org/repos/asf/poi/tags/${RELEASE_TAG}/"/>
</condition>
</fail>
</target>
<!-- experimental release preparation ... tbd. ... -->
<target name="release-prep1" depends="-init-svn,release-prep0" description="update the documentation and create the svn tag - needs Java7+">
<local name="tstamp_rel"/>
<local name="tstamp_next"/>
<local name="rel_next"/>
<tstamp>
<format property="tstamp_rel" pattern="yyyy-MM-dd" offset="7" unit="day"/>
<format property="tstamp_next" pattern="yyyy-MM" offset="3" unit="month"/>
</tstamp>
<taskdef name="NextRelease" classname="NextRelease" classpath="poi-excelant/build/poi-ant-contrib"/>
<NextRelease property="rel_next"/>
<antcall target="-update-build.xml">
<param name="version_id" value="${version.id}"/>
</antcall>
<replaceregexp byline="true">
<regexp pattern="&lt;release.*date=&quot;.*\?\?&quot;&gt;"/>
<substitution expression="&lt;!-- release version=&quot;${rel_next}&quot; date=&quot;${tstamp_next}-??&quot;&gt;&#10; &lt;/release --&gt;&#10;&#10; &lt;release version=&quot;${version.id}&quot; date=&quot;${tstamp_rel}&quot;&gt;"/>
<fileset dir="src/documentation/content/xdocs">
<include name="changes.xml"/>
</fileset>
</replaceregexp>
<fixcrlf srcdir="." includes="src/documentation/content/xdocs/changes.xml" eol="unix" eof="remove" />
<!-- can't combine updating and pinning of the documentation ... so we need two commits -->
<!-- (revision)properties can't be set and read within one svn block -->
<echo message="updating build.xml and changes.xml"/>
<exec command="svn ci --username ${settings.apache-id.username} --password ${settings.apache-id.password} -m 'release prepare for ${version.id} - updating build.xml and changes.xml' build.xml src/documentation/content/xdocs/changes.xml"/>
<svn refid="svn.settings">
<!--<commit message="release prepare for ${version.id} - updating build.xml and changes.xml" recurse="false">
<fileset dir="." includes="build.xml,src/documentation/content/xdocs/changes.xml"/>
</commit>-->
<update dir="." recurse="true"/>
<status path="." revisionProperty="svn_version1"/>
</svn>
<echo message="pin documentation - release ${svn_version1}"/>
<exec command="svn ci --username ${settings.apache-id.username} --password ${settings.apache-id.password} -m 'release prepare for ${version.id} - pin documentation' src"/>
<svn refid="svn.settings">
<propset path="src" name="svn:externals" value="documentation -r${svn_version1} https://svn.apache.org/repos/asf/poi/site/src/documentation"/>
<!-- <commit message="release prepare for ${version.id} - pin documentation" dir="src" recurse="false"/>-->
<update dir="." recurse="true"/>
<status path="." revisionProperty="svn_version2"/>
</svn>
<echo message="create release tag"/>
<svn refid="svn.settings">
<copy
srcUrl="https://svn.apache.org/repos/asf/poi/trunk"
destUrl="https://svn.apache.org/repos/asf/poi/tags/${RELEASE_TAG}"
message="tag r${svn_version2} as ${version.id}"/>
</svn>
<!-- update build.xml to the next snapshot version -->
<antcall target="-update-build.xml">
<param name="version_id" value="${rel_next}"/>
</antcall>
<!-- unpin documentation and commit next snapshot version -->
<svn refid="svn.settings">
<update dir="." recurse="true"/>
<propset path="src" name="svn:externals" value="documentation https://svn.apache.org/repos/asf/poi/site/src/documentation"/>
<!--<commit message="prepare for ${rel_next}" recurse="false">
<fileset dir="." includes="build.xml"/>
<dirset dir="src"/>
</commit>-->
</svn>
<exec command="svn ci --username ${settings.apache-id.username} --password ${settings.apache-id.password} -m 'prepare for ${rel_next}' build.xml src poi*"/>
<mkdir dir="build/release"/>
<svn refid="svn.settings">
<checkout url="https://svn.apache.org/repos/asf/poi/tags/${RELEASE_TAG}" destPath="build/release" ignoreExternals="false"/>
</svn>
</target>
<target name="release-prep2" depends="init" description="compile the freshly checked out svn tag and upload it to the nexus - needs a JDK6">
<!-- JAVA_HOME needs to point to a JDK8, otherwise the ant invocation is failing on a missing javac -->
<fail message="Environment needs to point to a Java 8 JDK">
<condition>
<not><equals arg1="${ant.java.version}" arg2="1.8"/></not>
</condition>
</fail>
<local name="DSTAMP"/>
<tstamp>
<format property="DSTAMP" pattern="yyyyMMdd" offset="7" unit="day"/>
</tstamp>
<ant dir="build/release" inheritAll="false" inheritRefs="false" useNativeBasedir="true">
<property name="DSTAMP" value="${DSTAMP}"/>
<target name="dist" />
</ant>
</target>
<target name="release-prep3" depends="-init-svn" description="write the dist to the release candidate repo - needs Java7+">
<ant dir="build/release" inheritAll="false" inheritRefs="false" useNativeBasedir="true">
<target name="dist-nexus" />
</ant>
<svn refid="svn.settings">
<import path="build/release/build/dist"
url="https://dist.apache.org/repos/dist/dev/poi"
newEntry="${version.id}-${release.rc}"
message="release candidate POI ${version.id}"/>
</svn>
</target>
<target name="release-finish" description="write the dist to the release candidate repo - needs Java7+">
<!--svn refid="svn.settings">
<update dir="." recurse="true"/>
</svn-->
<local name="rel_prev"/>
<local name="file_date"/>
<local name="file_date_iso"/>
<tstamp>
<!-- usually overwritten by a command line argument -->
<!-- for convenience this is kept in the same format as in the release-prep call -->
<format property="file_date" pattern="yyyyMMdd" locale="US"/>
</tstamp>
<taskdef name="NextRelease" classname="NextRelease" classpath="poi-excelant/build/poi-ant-contrib"/>
<NextRelease property="rel_prev" increment="-1"/>
<!-- we don't simply generate a new iso file date with tstamp,
but potentially use the date given as an argument to ant -->
<loadresource property="file_date_iso">
<string>${file_date}</string>
<filterchain>
<replaceregex pattern="([0-9]{4})([0-9]{2})([0-9]{2})" replace="\1-\2-\3"/>
</filterchain>
</loadresource>
<replaceregexp file="build.gradle" match="( +version += +)'[^']+'" replace="\1'${version.id}'"/>
<replaceregexp file="poi-examples/src/main/groovy/build.gradle" match="( *compile 'org.apache.poi:[^0-9]+)([0-9.]+)'" replace="\1${rel_prev}'" byline="true"/>
<replaceregexp file="poi-examples/src/main/scala/build.sbt" match='( *org.apache.poi.* ")[0-9.]+(.+)' replace="\1${rel_prev}\2" byline="true"/>
<replaceregexp file="osgi/pom.xml" match="version>${rel_prev}[^&lt;]+" replace="version>${version.id}"/>
<replaceregexp file="doap_POI.rdf" match="&lt;release&gt;" replace="&lt;release&gt;&#10; &lt;Version&gt;&#10; &lt;name&gt;Apache POI ${rel_prev}&lt;/name&gt;&#10; &lt;created&gt;${file_date_iso}&lt;/created&gt;&#10; &lt;revision&gt;${rel_prev}&lt;/revision&gt;&#10; &lt;/Version&gt;&#10; &lt;/release&gt;&#10; &lt;release&gt;"/>
</target>
<target name="-update-build.xml">
<replaceregexp byline="true">
<regexp pattern="(&lt;property name=&quot;version.id&quot; value=&quot;)[^&quot;]+(&quot;/>)"/>