Skip to content

Commit af1c67e

Browse files
authored
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 <tadeja.kadunc@gmail.com> Signed-off-by: Sutou Kouhei <kou@clear-code.com>
1 parent c1f1954 commit af1c67e

3 files changed

Lines changed: 12 additions & 2 deletions

File tree

compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -982,7 +982,7 @@ services:
982982
clang_tools: ${CLANG_TOOLS}
983983
llvm: ${LLVM}
984984
pyodide_version: "0.26.0"
985-
chrome_version: "148"
985+
chrome_version: "latest"
986986
selenium_version: "4.41.0"
987987
required_python_min: "(3,12)"
988988
python: ${PYTHON}

cpp/cmake_modules/ThirdpartyToolchain.cmake

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2073,7 +2073,9 @@ function(build_protobuf)
20732073
"-DCMAKE_C_FLAGS="
20742074
"-DCMAKE_INSTALL_PREFIX=${PROTOBUF_HOST_PREFIX}"
20752075
-Dprotobuf_BUILD_TESTS=OFF
2076-
-Dprotobuf_DEBUG_POSTFIX=)
2076+
-Dprotobuf_DEBUG_POSTFIX=
2077+
# OFF to avoid conda include dirs leaking into vendored Abseil
2078+
-Dprotobuf_WITH_ZLIB=OFF)
20772079
if(ABSL_VENDORED)
20782080
# Force protobuf to reuse Arrow's already-extracted absl source
20792081
# so we don't re-download and we don't have issues with multiple abseil.

python/scripts/run_emscripten_tests.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,14 @@ def _load_pyarrow_in_runner(driver, wheel_name):
289289
await pjs.loadPackage("numpy")
290290
await pjs.loadPackage("pandas")
291291
import pytest
292+
import inspect
293+
if "exc_type" not in inspect.signature(pytest.importorskip).parameters:
294+
_original_importorskip = pytest.importorskip
295+
def _importorskip(modname, minversion=None, reason=None, *,
296+
exc_type=ImportError):
297+
return _original_importorskip(modname, minversion=minversion,
298+
reason=reason)
299+
pytest.importorskip = _importorskip
292300
import pandas # import pandas after pyarrow package load for pandas/pyarrow
293301
# functions to work
294302
import pyarrow

0 commit comments

Comments
 (0)