Hi, > My vote - for whatever it's worth - would be to do away with the > version-in-path naming convention and relying on the go version/package > system for major upgrades.
Could you share the document URL of the "go version/package system"? I'm not familiar with it. Thanks, -- kou In <CAFHtBWM2hQhtASvgDq=mnrpjv2jgerq3g0ftxnqvljfay7w...@mail.gmail.com> "Re: [DISCUSS] Split Go release process" on Thu, 18 Jul 2024 15:54:33 -0400, George Godik <ggo...@gmail.com> wrote: >> If we shift the Go lib to a new/different import > path we'll end up with the same problem where people will rely on older > versions and an incorrect path. > > Major version upgrades already require changing the import paths by > increasing the version. The proposed change would require everyone to go > through a similar process one last time. > >> More to the point, there would be the question of whether or not we > should port over the same major version > number, i.e. `github.com/apache/arrow-go/v17` > <http://github.com/apache/arrow-go/v17> or something to that end? Or > do we restart back at v1 (which I think would be confusing)? > > My vote - for whatever it's worth - would be to do away with the > version-in-path naming convention and relying on the go version/package > system for major upgrades. > > Benefits: I don't have to change import paths every 3-6months > > On Thu, Jul 18, 2024 at 3:34 PM Matt Topol <zotthewiz...@gmail.com> wrote: > >> My thoughts: >> >> > * 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? >> >> I'd happily be the release manager for the Go implementation. >> >> > 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 >> >> Personally I would prefer that we do not extract it to its own separate >> repository purely because I don't want to change the import path for users >> again. We already have this issue from before we introduced the major >> version into the import path and shifted it up to allow for the Parquet lib >> in the same repository. If you look at [1] you see that there's still over >> 100 projects that never upgraded to v6 or higher because they are still >> using the old import path. If we shift the Go lib to a new/different import >> path we'll end up with the same problem where people will rely on older >> versions and an incorrect path. >> >> If we as a community decide that splitting out the implementations all into >> separate repositories is the best way forward, I won't hold it up by >> strictly hammering on this. I'm just concerned about the realities and >> difficulties of communicating the import path change, ensuring we don't >> break any consumers, and ensuring that users still end up being able to >> upgrade easily. >> >> > The import path could be "github.com/apache/arrow-go" instead of " >> github.com/apache/arrow-go/arrow". Since go will allow users to use >> `arrow.Abc` directly if user imports `github.com/apache/arrow-go` >> <http://github.com/apache/arrow-go> >> <http://github.com/apache/arrow-go>. >> >> The import path would still have to be `github.com/apache/arrow-go/arrow` >> <http://github.com/apache/arrow-go/arrow> >> since it would also contain the parquet implementation in ` >> github.com/apache/arrow-go/parquet` >> <http://github.com/apache/arrow-go/parquet>. More to the point, there >> would be the >> question of whether or not we should port over the same major version >> number, i.e. `github.com/apache/arrow-go/v17` >> <http://github.com/apache/arrow-go/v17> or something to that end? Or >> do we restart back at v1 (which I think would be confusing)? >> >> --Matt >> >> [1]: https://pkg.go.dev/github.com/apache/arrow/go/arrow >> >> On Thu, Jul 18, 2024 at 7:33 AM Antoine Pitrou <anto...@python.org> wrote: >> >> > >> > Hi Kou, >> > >> > Le 18/07/2024 à 11:33, Sutou Kouhei a écrit : >> > > >> > > 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 >> > >> > I think this is a good idea, but I'm not part of the Go maintainers. >> > >> > > 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" >> > >> > Is there no way to leave some kind of alias or redirection in the >> > apache/arrow repository? >> > >> > Regards >> > >> > Antoine. >> > >>