apache / arrow-go

Official Go implementation of Apache Arrow
https://arrow.apache.org/
Apache License 2.0
34 stars 6 forks source link

GH-21: Add release CI #122

Closed kou closed 1 month ago

kou commented 1 month ago

Fix GH-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:

kou commented 1 month ago

Example RC:

kou commented 1 month ago

I'll merge this.