This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-adbc.git


The following commit(s) were added to refs/heads/main by this push:
     new 593077b49a ci: fix various nightly issues (#4795)
593077b49a is described below

commit 593077b49ac54945260d8cf75705fdc1f4b83cfd
Author: David Li <[email protected]>
AuthorDate: Thu Sep 24 08:08:29 2026 +0900

    ci: fix various nightly issues (#4795)
    
    Assisted-by: GPT-6 Astra <[email protected]>
---
 ci/docker/python-debug.sh                         |  1 +
 dev/release/verify-release-candidate.sh           |  4 +--
 go/adbc/driver/flightsql/flightsql_adbc_test.go   | 35 ++++++++++++++++----
 go/adbc/driver/internal/driverbase/driver_test.go | 39 ++++++++++++++++++-----
 4 files changed, 63 insertions(+), 16 deletions(-)

diff --git a/ci/docker/python-debug.sh b/ci/docker/python-debug.sh
index 68f17babe2..a9cdb3a044 100755
--- a/ci/docker/python-debug.sh
+++ b/ci/docker/python-debug.sh
@@ -31,6 +31,7 @@ cat /adbc/ci/conda_env_cpp.txt /adbc/ci/conda_env_python.txt 
|\
 
 micromamba install -c conda-forge -y \
            -f /tmp/spec.txt \
+           binutils \
            "conda-forge/label/python_debug::python=${PYTHON}.*"
 micromamba clean --all -y
 
diff --git a/dev/release/verify-release-candidate.sh 
b/dev/release/verify-release-candidate.sh
index 701e71d6e1..3a33eed0e6 100755
--- a/dev/release/verify-release-candidate.sh
+++ b/dev/release/verify-release-candidate.sh
@@ -511,7 +511,7 @@ test_cpp() {
   maybe_setup_conda \
     --file ci/conda_env_cpp.txt \
     compilers \
-    go python || exit 1
+    go-cgo python || exit 1
 
   if [ "${USE_CONDA}" -gt 0 ]; then
     export 
CMAKE_PREFIX_PATH="${CONDA_BACKUP_CMAKE_PREFIX_PATH}:${CMAKE_PREFIX_PATH}"
@@ -661,7 +661,7 @@ test_go() {
   # apache/arrow-adbc#517: `go build` calls git. Don't assume system
   # has git; even if it's there, go_build.sh sets DYLD_LIBRARY_PATH
   # which can interfere with system git.
-  maybe_setup_conda compilers git go || exit 1
+  maybe_setup_conda compilers git go-cgo || exit 1
 
   if [ "${USE_CONDA}" -gt 0 ]; then
     # The CMake setup forces RPATH to be the Conda prefix
diff --git a/go/adbc/driver/flightsql/flightsql_adbc_test.go 
b/go/adbc/driver/flightsql/flightsql_adbc_test.go
index 66019995f7..d7dc28c3f4 100644
--- a/go/adbc/driver/flightsql/flightsql_adbc_test.go
+++ b/go/adbc/driver/flightsql/flightsql_adbc_test.go
@@ -38,6 +38,7 @@ import (
        "os"
        "path/filepath"
        "runtime"
+       "runtime/debug"
        "slices"
        "strings"
        "testing"
@@ -45,6 +46,7 @@ import (
 
        "github.com/apache/arrow-adbc/go/adbc"
        driver "github.com/apache/arrow-adbc/go/adbc/driver/flightsql"
+       "github.com/apache/arrow-adbc/go/adbc/driver/internal/driverbase"
        "github.com/apache/arrow-adbc/go/adbc/validation"
        "github.com/apache/arrow-go/v18/arrow"
        "github.com/apache/arrow-go/v18/arrow/array"
@@ -256,16 +258,37 @@ func (s *FlightSQLQuirks) SupportsStatistics() bool       
             { return
 func (s *FlightSQLQuirks) SupportsTransactions() bool                  { 
return true }
 func (s *FlightSQLQuirks) SupportsGetParameterSchema() bool            { 
return false }
 func (s *FlightSQLQuirks) SupportsDynamicParameterBinding() bool       { 
return true }
+
+func expectedDriverVersions() (string, string) {
+       driverVersion, arrowVersion := driverbase.UnknownVersion, 
driverbase.UnknownVersion
+       if info, ok := debug.ReadBuildInfo(); ok {
+               for _, setting := range info.Settings {
+                       if setting.Key == "vcs.modified" && setting.Value == 
"true" {
+                               driverVersion = "-dev"
+                       }
+               }
+               for _, dep := range info.Deps {
+                       if strings.HasPrefix(dep.Path, 
"github.com/apache/arrow-go/") {
+                               if dep.Version != "" {
+                                       arrowVersion = dep.Version
+                               }
+                               break
+                       }
+               }
+       }
+       return driverVersion, arrowVersion
+}
+
 func (s *FlightSQLQuirks) GetMetadata(code adbc.InfoCode) interface{} {
        switch code {
        case adbc.InfoDriverName:
                return "ADBC Flight SQL Driver - Go"
-       // runtime/debug.ReadBuildInfo doesn't currently work for tests
-       // github.com/golang/go/issues/33976
        case adbc.InfoDriverVersion:
-               return "(unknown or development build)"
+               driverVersion, _ := expectedDriverVersions()
+               return driverVersion
        case adbc.InfoDriverArrowVersion:
-               return "(unknown or development build)"
+               _, arrowVersion := expectedDriverVersions()
+               return arrowVersion
        case adbc.InfoDriverADBCVersion:
                return adbc.AdbcVersion1_1_0
        case adbc.InfoVendorName:
@@ -1147,12 +1170,12 @@ func (suite *ConnectionTests) TestGetInfo() {
                        case adbc.InfoDriverVersion:
                                {
                                        driverVersion = true
-                                       // Can't assert on value here since 
test won't have debug.ReadBuildInfo
+                                       // Version values are checked by 
TestMetadataGetInfo.
                                }
                        case adbc.InfoDriverArrowVersion:
                                {
                                        driverArrowVersion = true
-                                       // Can't assert on value here since 
test won't have debug.ReadBuildInfo
+                                       // Version values are checked by 
TestMetadataGetInfo.
                                }
                        }
                }
diff --git a/go/adbc/driver/internal/driverbase/driver_test.go 
b/go/adbc/driver/internal/driverbase/driver_test.go
index ab8efb4c80..2084cd140c 100644
--- a/go/adbc/driver/internal/driverbase/driver_test.go
+++ b/go/adbc/driver/internal/driverbase/driver_test.go
@@ -22,6 +22,7 @@ import (
        "encoding/json"
        "fmt"
        "log/slog"
+       "runtime/debug"
        "slices"
        "strings"
        "testing"
@@ -51,6 +52,26 @@ func NewDriver(alloc memory.Allocator, handler slog.Handler, 
useHelpers bool) ad
        return driverbase.NewDriver(&driverImpl{DriverImplBase: 
driverbase.NewDriverImplBase(info, alloc), handler: handler, useHelpers: 
useHelpers})
 }
 
+func expectedDriverVersions() (string, string) {
+       driverVersion, arrowVersion := driverbase.UnknownVersion, 
driverbase.UnknownVersion
+       if info, ok := debug.ReadBuildInfo(); ok {
+               for _, setting := range info.Settings {
+                       if setting.Key == "vcs.modified" && setting.Value == 
"true" {
+                               driverVersion = "-dev"
+                       }
+               }
+               for _, dep := range info.Deps {
+                       if strings.HasPrefix(dep.Path, 
"github.com/apache/arrow-go/") {
+                               if dep.Version != "" {
+                                       arrowVersion = dep.Version
+                               }
+                               break
+                       }
+               }
+       }
+       return driverVersion, arrowVersion
+}
+
 func TestDefaultDriver(t *testing.T) {
        var handler MockedHandler
        handler.On("Handle", mock.Anything, mock.Anything).Return(nil)
@@ -94,7 +115,8 @@ func TestDefaultDriver(t *testing.T) {
 
        // This is what the driverbase provided GetInfo result should look like 
out of the box,
        // with one custom setting registered at initialization
-       expectedGetInfoTable, err := array.TableFromJSON(alloc, 
adbc.GetInfoSchema, []string{`[
+       driverVersion, arrowVersion := expectedDriverVersions()
+       expectedGetInfoTable, err := array.TableFromJSON(alloc, 
adbc.GetInfoSchema, []string{fmt.Sprintf(`[
                {
                        "info_name": 0,
                        "info_value": [0, "MockDriver"]
@@ -113,11 +135,11 @@ func TestDefaultDriver(t *testing.T) {
                },
                {
                        "info_name": 101,
-                       "info_value": [0, "(unknown or development build)"]
+                       "info_value": [0, %q]
                },
                {
                        "info_name": 102,
-                       "info_value": [0, "(unknown or development build)"]
+                       "info_value": [0, %q]
                },
                {
                        "info_name": 103,
@@ -127,7 +149,7 @@ func TestDefaultDriver(t *testing.T) {
                        "info_name": 10001,
                        "info_value": [0, "my custom info"]
                }
-       ]`})
+       ]`, driverVersion, arrowVersion)})
        require.NoError(t, err)
        defer expectedGetInfoTable.Release()
 
@@ -223,7 +245,8 @@ func TestCustomizedDriver(t *testing.T) {
        //  - the default DriverInfo set at initialization
        //  - the DriverInfo set once in the NewDriver constructor
        //  - the DriverInfo set dynamically when GetInfo is called by 
implementing DriverInfoPreparer interface
-       expectedGetInfoTable, err := array.TableFromJSON(alloc, 
adbc.GetInfoSchema, []string{`[
+       driverVersion, arrowVersion := expectedDriverVersions()
+       expectedGetInfoTable, err := array.TableFromJSON(alloc, 
adbc.GetInfoSchema, []string{fmt.Sprintf(`[
                {
                        "info_name": 0,
                        "info_value": [0, "MockDriver"]
@@ -250,11 +273,11 @@ func TestCustomizedDriver(t *testing.T) {
                },
                {
                        "info_name": 101,
-                       "info_value": [0, "(unknown or development build)"]
+                       "info_value": [0, %q]
                },
                {
                        "info_name": 102,
-                       "info_value": [0, "(unknown or development build)"]
+                       "info_value": [0, %q]
                },
                {
                        "info_name": 103,
@@ -268,7 +291,7 @@ func TestCustomizedDriver(t *testing.T) {
                        "info_name": 10002,
                        "info_value": [0, "this was fetched dynamically"]
                }
-       ]`})
+       ]`, driverVersion, arrowVersion)})
        require.NoError(t, err)
        defer expectedGetInfoTable.Release()
 

Reply via email to