sgilmore10 commented on PR #41131:
URL: https://github.com/apache/arrow/pull/41131#issuecomment-2057526604
> > +1 but we should wait for a review from @raulcd before we merge this.
(@raulcd may review this after 16.0.0 release.)
> > I want to move the process that generates `apache-arrow-X.Y.Z.tar.gz`
from `02-source.sh` to `.github/workflows/release_candidate.yml` as a separated
task. Something like:
> > ```diff
> > diff --git a/dev/release/02-source.sh b/dev/release/02-source.sh
> > index 27ca67a76e..874c1955f8 100755
> > --- a/dev/release/02-source.sh
> > +++ b/dev/release/02-source.sh
> > @@ -57,33 +57,12 @@ echo "Using commit $release_hash"
> >
> > tarball=apache-arrow-${version}.tar.gz
> >
> > -rm -rf ${tag}
> > -# be conservative and use the release hash, even though git produces
the same
> > -# archive (identical hashes) using the scm tag
> > -(cd "${SOURCE_TOP_DIR}" && \
> > - git archive ${release_hash} --prefix ${tag}/) | \
> > - tar xf -
> > -
> > -# Resolve all hard and symbolic links.
> > -# If we change this, we must change ArrowSources.archive in
> > -# dev/archery/archery/utils/source.py too.
> > -rm -rf ${tag}.tmp
> > -mv ${tag} ${tag}.tmp
> > -cp -R -L ${tag}.tmp ${tag}
> > -rm -rf ${tag}.tmp
> > -
> > -# Create a dummy .git/ directory to download the source files from
GitHub with Source Link in C#.
> > -dummy_git=${tag}/csharp/dummy.git
> > -mkdir ${dummy_git}
> > -pushd ${dummy_git}
> > -echo ${release_hash} > HEAD
> > -echo '[remote "origin"] url = https://github.com/apache/arrow.git' >>
config
> > -mkdir objects refs
> > -popd
> > -
> > -# Create new tarball from modified source directory
> > -tar czf ${tarball} ${tag}
> > -rm -rf ${tag}
> > +rm -f ${tarball}
> > +gh release download \
> > + ${tag} \
> > + --repo apache/arrow \
> > + --dir . \
> > + --pattern "${tarball}"
> >
> > if [ ${SOURCE_RAT} -gt 0 ]; then
> > "${SOURCE_DIR}/run-rat.sh" ${tarball}
> > ```
>
> This makes sense to me. However, I think it will require re-ordering the
scripts to ensure we push the RC tag _**after**_ the crossbow job containing
all build artifacts - specifically the MLTBX file - is finished. Otherwise, we
won't be able to attach the MLTBX file - and potentially other build artifacts
- as assets to the release candidate. What do you think?
On second thought, we could possibly write a
"upload_release_candidate_assets" GitHub Actions that is triggered via [`gh
workflow run`](https://cli.github.com/manual/gh_workflow_run) and is only
called after the crossbow jobs are finished. I imagine the new release
workflow would look something like the following:
```bash
# Push the release candidate tag - will create the GitHub Release
git push -u apache apache-arrow-<version>-rc<rc-number>
...
# Submit binary tasks using crossbow, the command will output the crossbow
build id
dev/release/03-binary-submit.sh <version> <rc-number>
# Wait for the crossbow jobs to finish
archery crossbow status <crossbow-build-id>
# Extracts build artifacts from crossbow job (using 04-binary-download) and
adds them as assets to the Release Candidate in apache/arrow's GitHub Release
area
gh workflow run upload_release_candidate_assets.yml -f version=<version>
rc=<rc-number>
...
```
Thoughts?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]