GH-21: Add release CI by kou · Pull Request #122 · apache/arrow-go

raulcd

zeroshade

kou and others added 5 commits

September 14, 2024 06:11
Fix apacheGH-21

This is based on
https://github.com/apache/arrow-julia/tree/main/dev/release and
https://github.com/apache/arrow-adbc/tree/main/dev/release .

Workflow:

Cut a RC:

1. Update `PkgVersion` in `arrow/doc.go`
2. Run `dev/release/release_rc.sh`
   1. `dev/release/release_rc.sh` pushes `v${version}-rc${rc}` tag
   2. `.github/workflows/rc.yml` creates
      `apache-arrow-go-${version}.tar.gz{,.sha256,.sha512}`
   3. `.github/workflows/rc.yml` uploads
      `apache-arrow-go-${version}.tar.gz{,.sha256,.sha512}` to
      GitHub Releases
   4. `dev/release/release_rc.sh` downloads
      `apache-arrow-go-${version}.tar.gz` from
      GitHub Releases
   5. `dev/release/release_rc.sh` signs
      `apache-arrow-go-${version}.tar.gz` as
      `apache-arrow-go-${version}.tar.gz.asc`
   6. `dev/release/release_rc.sh` uploads
      `apache-arrow-go-${version}.tar.gz.asc` to
      GitHub Releases
3. Start a vote

(GitHub Actions instead of
https://dist.apache.org/repos/dist/dev/arrow/ is used like ADBC.)

Verify a RC:

1. Run `dev/release/verify_rc.sh`

Release an approved RC:

1. Run `dev/release/release.sh`
   1. `dev/release/release.sh` pushes `v${version}` tag that
      refers that same commit ID as `v${version}-rc${rc}`
   2. `dev/release/release.sh` downloads
      `apache-arrow-go-${version}.tar.gz{,.asc,.sha256,.sha512}` from
      GitHub Actions
   3. `dev/release/release.sh` uploads
      `apache-arrow-go-${version}.tar.gz{,.asc,.sha256,.sha512}` to
      https://dist.apache.org/repos/dist/release/arrow
   4. `dev/release/release.sh` removes old releases from
      https://dist.apache.org/repos/dist/release/arrow
2. Add this release to ASF's report database:
   https://reporter.apache.org/addrelease.html?arrow

Follow-up tasks:
* Add support for running integration test in the verification script
* Add support for releasing a release note
* Add support for creating "v${version}"'s GitHub Releases
  * We can copy "v${version}-rc${rc}"'s GitHub Releases and adjust
    it for the official release
Co-authored-by: Raúl Cumplido <raulcumplido@gmail.com>

zeroshade

zeroshade

@kou

@kou kou deleted the release branch

September 17, 2024 02:11

@kou kou mentioned this pull request

Sep 17, 2024

@kou kou mentioned this pull request

Nov 25, 2024

kou added a commit to kou/arrow-java that referenced this pull request

Jan 9, 2025
Fixes apacheGH-20.

This is based on apache/arrow-go#122 .

Workflow:

Cut a RC:

1. Bump version by `dev/release/bump_version.sh 19.0.0`
2. Run `dev/release/release_rc.sh`
   1. `dev/release/release_rc.sh` pushes `v${version}-rc${rc}` tag
   2. `.github/workflows/rc.yml` creates `apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}`
   3. `.github/workflows/rc.yml` uploads `apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}` to GitHub Releases
   4. `dev/release/release_rc.sh` downloads `apache-arrow-java-${version}.tar.gz` from GitHub Releases
   5. `dev/release/release_rc.sh` signs `apache-arrow-java-${version}.tar.gz` as `apache-arrow-go-${version}.tar.gz.asc`
   6. `dev/release/release_rc.sh` uploads `apache-arrow-java-${version}.tar.gz.asc` to GitHub Releases
3. Start a vote

(GitHub Actions instead of
https://dist.apache.org/repos/dist/dev/arrow/ is used like ADBC.)

Verify a RC:

1. Run `dev/release/verify_rc.sh`

Release an approved RC:

1. Run `dev/release/release.sh`
   1. `dev/release/release.sh` pushes `v${version}` tag that refers that same commit ID as `v${version}-rc${rc}`
   2. `dev/release/release.sh` downloads `apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` from GitHub Actions
   3. `dev/release/release.sh` uploads `apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` to https://dist.apache.org/repos/dist/release/arrow
   4. `dev/release/release.sh` removes old releases from https://dist.apache.org/repos/dist/release/arrow
2. Add this release to ASF's report database: https://reporter.apache.org/addrelease.html?arrow

Follow-up tasks:
* Add support for building binary packages (.jar)
* Add support for releasing binary packages (.jar)
* Add support for running JNI test in the verification script
* Add support for running integration test in the verification script
* Add support for verifying binary packages (.jar) in the verification script
* Add support for releasing a release note

@kou kou mentioned this pull request

Jan 9, 2025

kou added a commit to kou/arrow-java that referenced this pull request

Jan 10, 2025
Fixes apacheGH-20.

This is based on apache/arrow-go#122 .

Workflow:

Cut a RC:

1. Bump version by `dev/release/bump_version.sh 19.0.0`
2. Run `dev/release/release_rc.sh`
   1. `dev/release/release_rc.sh` pushes `v${version}-rc${rc}` tag
   2. `.github/workflows/rc.yml` creates `apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}`
   3. `.github/workflows/rc.yml` uploads `apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}` to GitHub Releases
   4. `dev/release/release_rc.sh` downloads `apache-arrow-java-${version}.tar.gz` from GitHub Releases
   5. `dev/release/release_rc.sh` signs `apache-arrow-java-${version}.tar.gz` as `apache-arrow-go-${version}.tar.gz.asc`
   6. `dev/release/release_rc.sh` uploads `apache-arrow-java-${version}.tar.gz.asc` to GitHub Releases
3. Start a vote

(GitHub Actions instead of
https://dist.apache.org/repos/dist/dev/arrow/ is used like ADBC.)

Verify a RC:

1. Run `dev/release/verify_rc.sh`

Release an approved RC:

1. Run `dev/release/release.sh`
   1. `dev/release/release.sh` pushes `v${version}` tag that refers that same commit ID as `v${version}-rc${rc}`
   2. `dev/release/release.sh` downloads `apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` from GitHub Actions
   3. `dev/release/release.sh` uploads `apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` to https://dist.apache.org/repos/dist/release/arrow
   4. `dev/release/release.sh` removes old releases from https://dist.apache.org/repos/dist/release/arrow
2. Add this release to ASF's report database: https://reporter.apache.org/addrelease.html?arrow

Follow-up tasks:
* Add support for building binary packages (.jar)
* Add support for releasing binary packages (.jar)
* Add support for running JNI test in the verification script
* Add support for running integration test in the verification script
* Add support for verifying binary packages (.jar) in the verification script
* Add support for releasing a release note

kou added a commit to kou/arrow-java that referenced this pull request

Jan 10, 2025
Fixes apacheGH-20.

This is based on apache/arrow-go#122 .

Workflow:

Cut a RC:

1. Bump version by `dev/release/bump_version.sh 19.0.0`
2. Run `dev/release/release_rc.sh`
   1. `dev/release/release_rc.sh` pushes `v${version}-rc${rc}` tag
   2. `.github/workflows/rc.yml` creates `apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}`
   3. `.github/workflows/rc.yml` uploads `apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}` to GitHub Releases
   4. `dev/release/release_rc.sh` downloads `apache-arrow-java-${version}.tar.gz` from GitHub Releases
   5. `dev/release/release_rc.sh` signs `apache-arrow-java-${version}.tar.gz` as `apache-arrow-go-${version}.tar.gz.asc`
   6. `dev/release/release_rc.sh` uploads `apache-arrow-java-${version}.tar.gz.asc` to GitHub Releases
3. Start a vote

(GitHub Actions instead of
https://dist.apache.org/repos/dist/dev/arrow/ is used like ADBC.)

Verify a RC:

1. Run `dev/release/verify_rc.sh`

Release an approved RC:

1. Run `dev/release/release.sh`
   1. `dev/release/release.sh` pushes `v${version}` tag that refers that same commit ID as `v${version}-rc${rc}`
   2. `dev/release/release.sh` downloads `apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` from GitHub Actions
   3. `dev/release/release.sh` uploads `apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` to https://dist.apache.org/repos/dist/release/arrow
   4. `dev/release/release.sh` removes old releases from https://dist.apache.org/repos/dist/release/arrow
2. Add this release to ASF's report database: https://reporter.apache.org/addrelease.html?arrow

Follow-up tasks:
* Add support for building binary packages (.jar)
* Add support for releasing binary packages (.jar)
* Add support for running JNI test in the verification script
* Add support for running integration test in the verification script
* Add support for verifying binary packages (.jar) in the verification script
* Add support for releasing a release note

kou added a commit to apache/arrow-java that referenced this pull request

Jan 13, 2025
Fixes GH-20.

This is based on apache/arrow-go#122 .

Workflow:

Cut a RC:

1. Bump version by `dev/release/bump_version.sh 19.0.0`
2. Run `dev/release/release_rc.sh`
   1. `dev/release/release_rc.sh` pushes `v${version}-rc${rc}` tag
2. `.github/workflows/rc.yml` creates
`apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}`
3. `.github/workflows/rc.yml` uploads
`apache-arrow-java-${version}.tar.gz{,.sha256,.sha512}` to GitHub
Releases
4. `dev/release/release_rc.sh` downloads
`apache-arrow-java-${version}.tar.gz` from GitHub Releases
5. `dev/release/release_rc.sh` signs
`apache-arrow-java-${version}.tar.gz` as
`apache-arrow-go-${version}.tar.gz.asc`
6. `dev/release/release_rc.sh` uploads
`apache-arrow-java-${version}.tar.gz.asc` to GitHub Releases
3. Start a vote

(GitHub Actions instead of
https://dist.apache.org/repos/dist/dev/arrow/ is used like ADBC.)

Verify a RC:

1. Run `dev/release/verify_rc.sh`

Release an approved RC:

1. Run `dev/release/release.sh`
1. `dev/release/release.sh` pushes `v${version}` tag that refers that
same commit ID as `v${version}-rc${rc}`
2. `.github/workflows/release.yml` create a GitHub Releases for
`v${version}` tag by copying the RC GitHub Releases
3. `dev/release/release.sh` downloads
`apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` from GitHub
Releases
4. `dev/release/release.sh` uploads
`apache-arrow-java-${version}.tar.gz{,.asc,.sha256,.sha512}` to
https://dist.apache.org/repos/dist/release/arrow
5. `dev/release/release.sh` removes old releases from
https://dist.apache.org/repos/dist/release/arrow
2. Add this release to ASF's report database:
https://reporter.apache.org/addrelease.html?arrow

Follow-up tasks:
* Add support for building binary packages (.jar)
* Add support for releasing binary packages (.jar)
* Add support for running JNI test in the verification script
* Add support for running integration test in the verification script
* Add support for verifying binary packages (.jar) in the verification
script

---------

Co-authored-by: Raúl Cumplido <raulcumplido@gmail.com>