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]

Reply via email to