Hi,

This is a continuation of the "[DISCUSS] Versioning and
releases for apache/arrow components" thread:
https://lists.apache.org/thread/tvqns9d9z45mtpsqrngjyg083jdv8f1t

How about splitting Go release process from other
apache/arrow components as the first try? Here are reasons
why Go is the best candidate:

* Go doesn't depend on other components such as C++
* Go has some active PMC member (Matt) and committer (Joel)
  * Could you become a release manager for Go?

Here is my idea how to proceed this:

1. Extract go/ in apache/arrow to apache/arrow-go like
   apache/arrow-rs
   * Filter go/ related commits from apache/arrow and create
     apache/arrow-go with them like we did for apache/arrow-rs
   * Remove go/ related codes from apache/arrow
2. Prepare integration test CI like apache/arrow-rs does:
   
https://github.com/apache/arrow-rs/blob/master/.github/workflows/integration.yml
3. Prepare release script based on apache/arrow-julia,
   apache/arrow-adbc and/or apache/arrow-flight-sql-postgresql

We can proceed this in apache/arrow but it may be difficult
to maintain and release a new version. The apache/arrow-go
approach needs more work at the initial step but we will be
able to release easily after that like apache/arrow-julia.

We can reuse some release scripts in dev/release/ in
apache/arrow like we did in apache/arrow-adbc.

Cons of this idea:

* This is a backward incompatible change
  * Users need to change their "import" to
    "github.com/apache/arrow-go/arrow" from
    "github.com/apache/arrow/go/arrow"


What do you think about this?


Thanks,
-- 
kou

Reply via email to