@@ -246,38 +246,42 @@ install_dotnet() {
246246 return 0
247247 fi
248248
249- show_info " Ensuring that .NET is installed... "
250-
251- if dotnet --version | grep 8 \. 0 > /dev/null 2>&1 ; then
252- local csharp_bin= $( dirname $( which dotnet ) )
253- show_info " Found C# at $( which csharp ) (.NET $( dotnet --version ) ) "
254- else
255- if which dotnet > /dev/null 2>&1 ; then
256- show_info " dotnet found but it is the wrong version and will be ignored. "
249+ if command -v dotnet ; then
250+ show_info " Found $( dotnet --version ) at $( which dotnet ) "
251+
252+ if dotnet --version | grep --quiet --fixed-string 8.0 ; then
253+ local csharp_bin= $( dirname $( which dotnet ) )
254+ show_info " Found C# at $( which csharp ) (.NET $( dotnet --version ) ) "
255+ DOTNET_ALREADY_INSTALLED=1
256+ return 0
257257 fi
258- local csharp_bin=${ARROW_TMPDIR} /csharp/bin
259- local dotnet_version=8.0.204
260- local dotnet_platform=
261- case " $( uname) " in
258+ fi
259+
260+ show_info " dotnet found but it is the wrong version or dotnet not found"
261+
262+ local csharp_bin=${ARROW_TMPDIR} /csharp/bin
263+ local dotnet_version=8.0.204
264+ local dotnet_platform=
265+ case " $( uname) " in
262266 Linux)
263- dotnet_platform=linux
264- ;;
267+ dotnet_platform=linux
268+ ;;
265269 Darwin)
266- dotnet_platform=macos
267- ;;
268- esac
269- local dotnet_download_thank_you_url=https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-${dotnet_version} -${dotnet_platform} -x64-binaries
270- local dotnet_download_url=$( \
271- curl -sL ${dotnet_download_thank_you_url} | \
272- grep ' directLink' | \
273- grep -E -o ' https://download[^"]+' | \
274- sed -n 2p)
275- mkdir -p ${csharp_bin}
276- curl -sL ${dotnet_download_url} | \
270+ dotnet_platform=macos
271+ ;;
272+ esac
273+ local dotnet_download_thank_you_url=https://dotnet.microsoft.com/download/thank-you/dotnet-sdk-${dotnet_version} -${dotnet_platform} -x64-binaries
274+ show_info " Getting .NET download URL from ${dotnet_download_thank_you_url} "
275+ local dotnet_download_url=$( curl -sL ${dotnet_download_thank_you_url} | \
276+ grep ' directLink' | \
277+ grep -E -o ' https://download[^"]+' | \
278+ sed -n 2p)
279+ show_info " Downloading .NET from ${dotnet_download_url} "
280+ mkdir -p ${csharp_bin}
281+ curl -sL ${dotnet_download_url} | \
277282 tar xzf - -C ${csharp_bin}
278- PATH=${csharp_bin} :${PATH}
279- show_info " Installed C# at $( which csharp) (.NET $( dotnet --version) )"
280- fi
283+ PATH=${csharp_bin} :${PATH}
284+ show_info " Installed C# at $( which csharp) (.NET $( dotnet --version) )"
281285
282286 DOTNET_ALREADY_INSTALLED=1
283287}
@@ -296,6 +300,18 @@ install_go() {
296300 return 0
297301 fi
298302
303+ local prefix=${ARROW_TMPDIR} /go
304+ mkdir -p $prefix
305+
306+ if [ -f " ${prefix} /go/bin/go" ]; then
307+ export GOROOT=${prefix} /go
308+ export GOPATH=${prefix} /gopath
309+ export PATH=$GOROOT /bin:$GOPATH /bin:$PATH
310+ show_info " Found $( go version) at ${prefix} /go/bin/go"
311+ GO_ALREADY_INSTALLED=1
312+ return 0
313+ fi
314+
299315 local version=1.24.2
300316 show_info " Installing go version ${version} ..."
301317
@@ -315,8 +331,6 @@ install_go() {
315331 local archive=" go${version} .${os} -${arch} .tar.gz"
316332 curl -sLO https://go.dev/dl/$archive
317333
318- local prefix=${ARROW_TMPDIR} /go
319- mkdir -p $prefix
320334 tar -xzf $archive -C $prefix
321335 rm -f $archive
322336
@@ -549,7 +563,7 @@ test_python() {
549563 show_header " Build and test Python libraries"
550564
551565 # Build and test Python
552- maybe_setup_virtualenv cython duckdb pandas protobuf pyarrow pytest setuptools_scm setuptools importlib_resources || exit 1
566+ maybe_setup_virtualenv cython duckdb pandas polars protobuf pyarrow pytest setuptools_scm setuptools importlib_resources || exit 1
553567 # XXX: pin Python for now since various other packages haven't caught up
554568 maybe_setup_conda --file " ${ADBC_DIR} /ci/conda_env_python.txt" python=3.12 || exit 1
555569
0 commit comments