This is an automated email from the ASF dual-hosted git repository. stevel pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/hadoop-release-support.git
commit d03be24f2b2c2761f2dc5e4e60279100e8768a17 Author: Steve Loughran <[email protected]> AuthorDate: Tue Oct 21 11:18:24 2025 +0100 HADOOP-19727. hadoop-thirdparty 1.5.0 RC0 --- build.xml | 53 ++++++++++++++++++++-- doc/thirdparty.md | 50 +++++++++++++++++--- .../org/apache/hadoop/validator/CompileFS.java | 3 ++ .../3p-release-1.5.0.properties} | 29 +++++------- src/releases/release-info-3.5.0.properties | 4 +- src/text/3p.vote.txt | 3 ++ 6 files changed, 112 insertions(+), 30 deletions(-) diff --git a/build.xml b/build.xml index ce473bd..bfc1712 100644 --- a/build.xml +++ b/build.xml @@ -142,9 +142,10 @@ <!-- commit id of the RC --> <require p="git.commit.id"/> <!-- JIRA ID of the release --> - <require p="http.source"/> <require p="jira.id"/> + <require p="http.source"/> + <!-- previous version, used in announcements --> <require p="previous.version"/> @@ -1684,6 +1685,8 @@ ${arm.asc} <!-- paths for downloading --> <setpath name="3p.dist.dir" location="${downloads.dir}/hadoop-thirdparty/dist"/> + <set name="3p.scp.source" + value="${scp.user}@${scp.hostname}:${3p.scp.hadoop-thirdparty.dir}/target/artifacts"/> <setpath name="3p.incoming.dir" location="${downloads.dir}/hadoop-thirdparty/incoming"/> <!-- the actual staging/release paths are in the same svn repo as hadoop main --> @@ -1705,6 +1708,7 @@ ${arm.asc} <set name="3p.jira.url" value="https://issues.apache.org/jira/browse/${3p.jira.id}" /> + </target> @@ -1760,7 +1764,9 @@ ${arm.asc} <target name="3p.git-tag-source" description="tag the HEAD of thirdparty source with the current RC version" depends="3p.init"> + <require p="3p.jira.id" /> <require p="3p.local.repo.path" /> + <require p="3p.tag.name" /> <require-dir path="${3p.local.repo.path}" /> <git dir="${3p.local.repo.path}"> <arg value="tag" /> @@ -1796,7 +1802,7 @@ ${arm.asc} --> <target name="3p.release.git-actions" - description="Release action in the soruce tree" + description="Release action in the source tree" depends="3p.init"> <property name="3p.release.tag" value="rel/release-${3p.version}"/> @@ -1866,7 +1872,7 @@ Message is in file ${3p.message.out} <delete dir="${3p.staged.artifacts.dir}"/> <echo> - copying dir "${3p.local.artifacts.dir}" + Moving dir "${3p.local.artifacts.dir}" to "${3p.staged.artifacts.dir}" </echo> <move @@ -1874,6 +1880,40 @@ Message is in file ${3p.message.out} todir="${3p.staged.artifacts.dir}"/> </target> + + <target name="3p.scp-artifacts" depends="3p.init" + description="scp the third party artifacts from a remote host. may be slow"> + <fail unless="scp.hostname"/> + <fail unless="scp.user"/> + <fail unless="3p.scp.hadoop-thirdparty.dir"/> + + <delete dir="${3p.incoming.dir}"/> + <mkdir dir="${3p.incoming.dir}/.."/> + <echo>Downloading ${3p.scp.source} to ${3p.incoming.dir}; may take a while</echo> + <!-- scp -r $srv:hadoop-thirdparty/target/artifacts downloads/hadoop-thirdparty/incoming + --> + <x executable="scp"> + <arg value="-r"/> + <arg value="${3p.scp.source}"/> + <arg value="${3p.incoming.dir}"/> + </x> + + </target> + + <target name="3p.incoming-to-local-staging" + description="move downloaded 3P artifacts to the staging area" + depends="3p.init"> + <delete dir="${3p.staged.artifacts.dir}"/> + <echo> + moving dir "${3p.incoming.dir}" + to "${3p.staged.artifacts.dir}" + </echo> + <copy + todir="${3p.staged.artifacts.dir}"> + <fileset dir="${3p.incoming.dir}" includes="*" /> + </copy> + </target> + <!-- After the local artifacts are in the staging dir, add them to svn and then commit @@ -1890,7 +1930,7 @@ Message is in file ${3p.message.out} <arg value="add" /> <arg value="${3p.staged.artifacts.dir}" /> </svn> - <echo>Comitting with message ${staging.commit.msg}. Please wait</echo> + <echo>Comitting with message ${3p.staging.commit.msg}. Please wait</echo> <svn dir="${staging.dir}"> <arg value="commit" /> <arg value="-m" /> @@ -1968,4 +2008,7 @@ Message is in file ${3p.message.out} location="${target}/3p.email-announcement.txt"/> <echo>${3p.email-announcement.txt}</echo> - <echo file="${3p.email-announcement.out}">${3p.email-announcement.txt}</echo></target></project> + <echo file="${3p.email-announcement.out}">${3p.email-announcement.txt}</echo> + </target> + +</project> diff --git a/doc/thirdparty.md b/doc/thirdparty.md index c00b3c2..d53f1cb 100644 --- a/doc/thirdparty.md +++ b/doc/thirdparty.md @@ -20,7 +20,7 @@ See wiki page [How To Release Hadoop-Thirdparty](https://cwiki.apache.org/conflu Support for this release workflow is pretty minimal, but releasing it is simpler than a manual build. -1. Update the branches and maven artifact versions +1. Update the branches and maven artifact versions. 2. build and test. This can be done with the help of a (draft) PR to upgrade hadoop from the RC. 3. Create the vote message. @@ -45,7 +45,7 @@ targets in the build to validate the third party release ```properties 3p.rc=RC1 3p.branch=https://github.com/apache/hadoop-thirdparty/commits/release-1.3.0-RC1 -3p.git.commit.id=0fd62903b071b5186f31b7030ce42e1c00f6bb6a +3p.git.commit.id=0fd62903b071b5186f31b7030ce42e1c00f6bb6a 3p.jira.id=HADOOP-19252 3p.nexus.staging.url=https://repository.apache.org/content/repositories/orgapachehadoop-1420 3p.src.dir=https://dist.apache.org/repos/dist/dev/hadoop/hadoop-thirdparty-1.3.0-RC1 @@ -53,29 +53,57 @@ targets in the build to validate the third party release 3p.tag.name=release-1.3.0-RC1 ``` -## Targets: +## Targets All targets are prefixed `3p.` ``` -> ant -p | grep 3p +> ant -p | grep 3p | sort 3p.git-tag-push push the 3p tag to apache repo 3p.git-tag-source tag the HEAD of thirdparty source with the current RC version + 3p.incoming-to-local-staging move downloaded 3P artifacts to the staging area 3p.mvn-purge purge all local hadoop-thirdparty 3p.print-tag-command print the git command to tag the rc + 3p.release.announcement build site announcement + 3p.release.git-actions Release action in the source tree + 3p.scp-artifacts scp the third party artifacts from a remote host. may be slow 3p.stage move artifacts of the local build to the staging area 3p.stage-move-to-production promote the staged the thirdparty RC into dist 3p.stage-svn-rollback rollback a thirdparty version staged to RC 3p.stage-to-svn stage the RC into svn 3p.vote-message build the vote message - ``` Third party artifacts must be staged to the same svn repository as for staging full hadoop releases, as set in `staging.dir` -### Tag and push RC +## Creating the RC + +### Download artifacts you have built on a remote host: ` 3p.scp-artifacts` + +The target `3p.scp-artifacts` copies remote artifacts down to `/downloads/hadoop-thirdparty/incoming/`; +it requires the scp binding information to have been set up. + +```properties +scp.hostname=HOSTNAME +scp.user=USER +# path from user home dir to where hadoop-thirdparty is +3p.scp.hadoop-thirdparty.dir=hadoop-thirdparty +``` + +Once downloaded, they can be moved to staging with the `3p.incoming-to-local-staging` target. +```bash +ant 3p.scp-artifacts +ant 3p.incoming-to-local-staging +``` +### Commit the staged RC + +```bash +ant 3p.stage-to-svn +``` + +### Tag the RC commit push that tag to github This is automated by two targets: ```bash @@ -85,9 +113,17 @@ ant 3p.git-tag-push If you just want the commands to enter yourself, run the target `3p.print-tag-command` +### Generate the vote message + +```bash +ant 3p.vote-message +``` + +## Validating artifact + ### Download the Staged RC files from the Apache http servers -Downloads under `downloads/incoming` +Download the release refereced in`3p.staging.url` under `downloads/incoming` ```bash ant 3p.release.fetch ``` diff --git a/src/main/java/org/apache/hadoop/validator/CompileFS.java b/src/main/java/org/apache/hadoop/validator/CompileFS.java index f57f0e8..4b05a1a 100644 --- a/src/main/java/org/apache/hadoop/validator/CompileFS.java +++ b/src/main/java/org/apache/hadoop/validator/CompileFS.java @@ -25,6 +25,9 @@ import org.slf4j.LoggerFactory; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; +import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.FutureCallback; +import org.apache.hadoop.thirdparty.com.google.common.util.concurrent.ListenableScheduledFuture; +import org.apache.hadoop.thirdparty.org.checkerframework.checker.nullness.qual.Nullable; /** * diff --git a/src/releases/release-info-3.5.0.properties b/src/releases/3p/3p-release-1.5.0.properties similarity index 55% copy from src/releases/release-info-3.5.0.properties copy to src/releases/3p/3p-release-1.5.0.properties index d425b88..38edbf4 100644 --- a/src/releases/release-info-3.5.0.properties +++ b/src/releases/3p/3p-release-1.5.0.properties @@ -14,21 +14,16 @@ # See the License for the specific language governing permissions and # limitations under the License. -# property file for 3.5.0 release -# this is more to test the release process than to actually release 3.5.0 -hadoop.version=3.5.0 -rc=RC0 -previous.version=3.3.6 -release.branch=trunk -git.commit.id=trunk - -jira.id=HADOOP-TBD -jira.title=Release 3.5.0 - -#amd.src.dir=https://dist.apache.org/repos/dist/dev/hadoop/hadoop-3.4.0-RC2 -#arm.src.dir=${amd.src.dir} -#http.source=${amd.src.dir} -#asf.staging.url=https://repository.apache.org/content/repositories/orgapachehadoop-1402 - -cloudstore.profile=sdk2 +# Release Info for thirdparty-1.5.0 +#3p.version=1.5.0 +3p.rc=RC0 +3p.branch=https://github.com/apache/hadoop-thirdparty/commits/release-1.5.0-RC0 +3p.git.commit.id=f38cd43 +3p.jira.id=HADOOP-19727 +3p.nexus.staging.url=https://repository.apache.org/content/repositories/orgapachehadoop-1446 +3p.src.dir=https://dist.apache.org/repos/dist/dev/hadoop/hadoop-thirdparty-1.5.0-RC0 +3p.staging.url=https://dist.apache.org/repos/dist/dev/hadoop/thirdparty-1.5.0-${3p.rc} +3p.tag.name=release-1.5.0-RC0 +# 3p.local.repo.path=<location of third party source repo> +# 3p.local.target.dir=<target/ directory of your local (or scp'd over /target) dir) diff --git a/src/releases/release-info-3.5.0.properties b/src/releases/release-info-3.5.0.properties index d425b88..85ec771 100644 --- a/src/releases/release-info-3.5.0.properties +++ b/src/releases/release-info-3.5.0.properties @@ -16,7 +16,7 @@ # property file for 3.5.0 release # this is more to test the release process than to actually release 3.5.0 -hadoop.version=3.5.0 +hadoop.version=3.5.0-SNAPSHOT rc=RC0 previous.version=3.3.6 release.branch=trunk @@ -32,3 +32,5 @@ jira.title=Release 3.5.0 cloudstore.profile=sdk2 +http.source=TODO +asf.staging.url=TODO diff --git a/src/text/3p.vote.txt b/src/text/3p.vote.txt index fa6f602..a732c7b 100644 --- a/src/text/3p.vote.txt +++ b/src/text/3p.vote.txt @@ -15,6 +15,9 @@ ${3p.nexus.staging.url} Please try the release and vote. The vote will run for 5 days. +Note: to test through a hadoop build, run maven with the options + -Dhadoop-thirdparty.version=1.5.0 -Pasf-staging + Here is my vote: +1 (binding) --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
