This is an automated email from the ASF dual-hosted git repository.
kou pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git
The following commit(s) were added to refs/heads/main by this push:
new af1c67ed1e GH-50424: [CI] install Chrome latest for
test-conda-python-emscripten (#50425)
af1c67ed1e is described below
commit af1c67ed1ec3b4608ecf9a99acc4bb40b44daf2e
Author: tadeja <[email protected]>
AuthorDate: Thu Jul 16 03:20:31 2026 +0200
GH-50424: [CI] install Chrome latest for test-conda-python-emscripten
(#50425)
### Rationale for this change
Fix #50424 `Python Emscripten Crossbow` job with multiple failing points
A) failing to install Chrome - `Requested Chrome major 148, but apt repo
currently publishes 150.0.7871.100`,
B) and underlying Abseil failure - `error: expected '(' before
'ABSL_INTERNAL_CONSTEXPR_SINCE_CXX17'`
[logB](https://github.com/ursacomputing/crossbow/actions/runs/28963702667/job/85941369345#step:6:2995)
C) pytest 8.1.1 failing on three tests with the message - `E TypeError:
importorskip() got an unexpected keyword argument 'exc_type'`
[logC](https://github.com/ursacomputing/crossbow/actions/runs/28972366846/job/85971005157#step:6:6354)
The remaining intermittent issue be best dealt with in a follow up PR:
D) intermittent `loadPyodide` / Selenium timeout hang -
`selenium.common.exceptions.TimeoutException: Message: script timeout`
[logD](https://github.com/ursacomputing/crossbow/actions/runs/28997397611/job/86049819728#step:6:6856)
and [hang log with
debug](https://github.com/ursacomputing/crossbow/actions/runs/29015193964/job/86108340808#step:6:7248)
### What changes are included in this PR?
A) Changed `chrome_version: "148"` to `chrome_version: "latest"`
B) Disabled zlib for protobuf build of the host in order to avoid conda
include path overriding vendor Abseil headers.
C) Added work-around for current Pyodide's bundled pytest version 8.1.1
which lacks `importorskip(..., exc_type=...)`
### Are these changes tested?
Yes, test-conda-python-emscripten job completed successfully on rerun. Some
earlier runs hit the intermittent Chrome/Selenium timeout mentioned above.
### Are there any user-facing changes?
No.
* GitHub Issue: #50424
Authored-by: Tadeja Kadunc <[email protected]>
Signed-off-by: Sutou Kouhei <[email protected]>
---
compose.yaml | 2 +-
cpp/cmake_modules/ThirdpartyToolchain.cmake | 4 +++-
python/scripts/run_emscripten_tests.py | 8 ++++++++
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/compose.yaml b/compose.yaml
index 6676a87bd5..6809d6994b 100644
--- a/compose.yaml
+++ b/compose.yaml
@@ -982,7 +982,7 @@ services:
clang_tools: ${CLANG_TOOLS}
llvm: ${LLVM}
pyodide_version: "0.26.0"
- chrome_version: "148"
+ chrome_version: "latest"
selenium_version: "4.41.0"
required_python_min: "(3,12)"
python: ${PYTHON}
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake
b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 07054b4bb2..4eab2ab208 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -2073,7 +2073,9 @@ function(build_protobuf)
"-DCMAKE_C_FLAGS="
"-DCMAKE_INSTALL_PREFIX=${PROTOBUF_HOST_PREFIX}"
-Dprotobuf_BUILD_TESTS=OFF
- -Dprotobuf_DEBUG_POSTFIX=)
+ -Dprotobuf_DEBUG_POSTFIX=
+ # OFF to avoid conda include dirs leaking into vendored Abseil
+ -Dprotobuf_WITH_ZLIB=OFF)
if(ABSL_VENDORED)
# Force protobuf to reuse Arrow's already-extracted absl source
# so we don't re-download and we don't have issues with multiple abseil.
diff --git a/python/scripts/run_emscripten_tests.py
b/python/scripts/run_emscripten_tests.py
index 3cd7d5fd67..002698a77e 100644
--- a/python/scripts/run_emscripten_tests.py
+++ b/python/scripts/run_emscripten_tests.py
@@ -289,6 +289,14 @@ if "pyarrow" not in sys.modules:
await pjs.loadPackage("numpy")
await pjs.loadPackage("pandas")
import pytest
+ import inspect
+ if "exc_type" not in inspect.signature(pytest.importorskip).parameters:
+ _original_importorskip = pytest.importorskip
+ def _importorskip(modname, minversion=None, reason=None, *,
+ exc_type=ImportError):
+ return _original_importorskip(modname, minversion=minversion,
+ reason=reason)
+ pytest.importorskip = _importorskip
import pandas # import pandas after pyarrow package load for pandas/pyarrow
# functions to work
import pyarrow