From 588adbfe0d613b6a6dcfad0e98948eaa4fc3d83f Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Fri, 24 Jul 2026 10:53:47 -0400 Subject: [PATCH 1/9] Add native ARM64 Linux wheel builds for Python 3.11 and 3.12 --- .github/workflows/build.yml | 106 ++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d25810255..3a6c7da60 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -373,6 +373,112 @@ jobs: - name: Uninstall wheel run: python -m pip uninstall -y $DT_WHEEL + #------------------------------------------------------------------------------------- + # Linux ARM64 (aarch64) - native runners + #------------------------------------------------------------------------------------- + + linux-arm-311: + name: Linux ARM64 / Python 3.11 + runs-on: ubuntu-24.04-arm + needs: setup + + env: + DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} + DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }} + DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }} + DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }} + DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }} + DT_CHANGE_BRANCH: ${{ needs.setup.outputs.DT_CHANGE_BRANCH }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python 3.11 + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Build datatable wheel + run: | + python -V + python -m pip install --upgrade pip + python -m pip install auditwheel + python ci/ext.py wheel --audit + echo "DT_WHEEL=$(ls dist/*-cp311-*.whl)" >> $GITHUB_ENV + + - name: Print build information + run: | + echo "DT_WHEEL = $DT_WHEEL" + cat src/datatable/_build_info.py + + - name: Save wheel artifact + uses: actions/upload-artifact@v3 + with: + name: wheel-ubuntu-arm-3.11 + path: ${{ env.DT_WHEEL }} + + - name: Install and test + run: | + python -m pip install $DT_WHEEL + python -m pip install pytest docutils pandas pyarrow + python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/ + + - name: Uninstall wheel + run: python -m pip uninstall -y $DT_WHEEL + + linux-arm-312: + name: Linux ARM64 / Python 3.12 + runs-on: ubuntu-24.04-arm + needs: setup + + env: + DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} + DT_BUILD_ID: ${{ needs.setup.outputs.DT_BUILD_ID }} + DT_RELEASE: ${{ needs.setup.outputs.DT_RELEASE }} + DT_BUILD_SUFFIX: ${{ needs.setup.outputs.DT_BUILD_SUFFIX }} + DT_BUILD_NUMBER: ${{ needs.setup.outputs.DT_BUILD_NUMBER }} + DT_CHANGE_BRANCH: ${{ needs.setup.outputs.DT_CHANGE_BRANCH }} + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Python 3.12 + uses: actions/setup-python@v5 + with: + python-version: "3.12" + + - name: Build datatable wheel + run: | + python -V + python -m pip install --upgrade pip + # Update to normal install when they publish the next version > 5.4.0 + # Current version fails on 3.12 because of distutils + python -m pip install git+https://github.com/pypa/auditwheel + python ci/ext.py wheel --audit + echo "DT_WHEEL=$(ls dist/*-cp312-*.whl)" >> $GITHUB_ENV + + - name: Print build information + run: | + echo "DT_WHEEL = $DT_WHEEL" + cat src/datatable/_build_info.py + + - name: Save wheel artifact + uses: actions/upload-artifact@v3 + with: + name: wheel-ubuntu-arm-3.12 + path: ${{ env.DT_WHEEL }} + + - name: Install and test + run: | + python -m pip install $DT_WHEEL + python -m pip install pytest docutils pandas pyarrow + python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/ + + - name: Uninstall wheel + run: python -m pip uninstall -y $DT_WHEEL + #------------------------------------------------------------------------------------- # MacOS #------------------------------------------------------------------------------------- From b6b5769dcd2d2bcedc1ec7f36ece4715fa7c8635 Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Fri, 24 Jul 2026 10:57:36 -0400 Subject: [PATCH 2/9] Update GitHub Actions to current major versions bump action versions to prevent failure and warnings CI failed with ...it uses a deprecated version of `actions/upload-artifact: v3`.. warns: Node.js 20 is deprecated.... --- .github/workflows/build.yml | 110 ++++++++++++++++++------------------ 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3a6c7da60..694b09249 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,7 +23,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v7 with: fetch-depth: 0 @@ -93,10 +93,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.11 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.11" @@ -108,7 +108,7 @@ jobs: echo "DT_SDIST=$(ls dist/*.tar.gz)" >> $GITHUB_ENV - name: Save sdist artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: sdist path: ${{ env.DT_SDIST }} @@ -132,10 +132,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.8 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.8" @@ -153,7 +153,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-3.8 path: ${{ env.DT_WHEEL }} @@ -183,10 +183,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.9 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.9" @@ -204,7 +204,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-3.9 path: ${{ env.DT_WHEEL }} @@ -234,10 +234,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.10 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.10" @@ -255,7 +255,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-3.10 path: ${{ env.DT_WHEEL }} @@ -285,10 +285,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.11 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.11" @@ -306,7 +306,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-3.11 path: ${{ env.DT_WHEEL }} @@ -336,10 +336,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.12 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.12" @@ -359,7 +359,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-3.12 path: ${{ env.DT_WHEEL }} @@ -392,10 +392,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.11 - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: python-version: "3.11" @@ -413,7 +413,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-arm-3.11 path: ${{ env.DT_WHEEL }} @@ -442,10 +442,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.12 - uses: actions/setup-python@v5 + uses: actions/setup-python@v7 with: python-version: "3.12" @@ -465,7 +465,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-ubuntu-arm-3.12 path: ${{ env.DT_WHEEL }} @@ -499,10 +499,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.8 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.8" @@ -519,7 +519,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-macos-3.8 path: ${{ env.DT_WHEEL }} @@ -549,10 +549,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.9 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.9" @@ -569,7 +569,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-macos-3.9 path: ${{ env.DT_WHEEL }} @@ -599,10 +599,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.10 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.10" @@ -619,7 +619,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-macos-3.10 path: ${{ env.DT_WHEEL }} @@ -648,10 +648,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.11 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.11" @@ -668,7 +668,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-macos-3.11 path: ${{ env.DT_WHEEL }} @@ -698,10 +698,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.12 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.12" @@ -718,7 +718,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-macos-3.12 path: ${{ env.DT_WHEEL }} @@ -751,10 +751,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.8 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.8" @@ -771,7 +771,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-windows-3.8 path: ${{ env.DT_WHEEL }} @@ -801,10 +801,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.9 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.9" @@ -821,7 +821,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-windows-3.9 path: ${{ env.DT_WHEEL }} @@ -851,10 +851,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.10 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.10" @@ -871,7 +871,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-windows-3.10 path: ${{ env.DT_WHEEL }} @@ -901,10 +901,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.11 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.11" @@ -921,7 +921,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-windows-3.11 path: ${{ env.DT_WHEEL }} @@ -951,10 +951,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v4 + uses: actions/checkout@v7 - name: Set up Python 3.12 - uses: actions/setup-python@v3 + uses: actions/setup-python@v7 with: python-version: "3.12" @@ -971,7 +971,7 @@ jobs: cat src/datatable/_build_info.py - name: Save wheel artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v7 with: name: wheel-windows-3.12 path: ${{ env.DT_WHEEL }} From f5c3b5f51ed7e59b540d4c30fb15310a49c125d7 Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Fri, 24 Jul 2026 11:05:45 -0400 Subject: [PATCH 3/9] Only build Linux x86 and ARM for Python 3.11 and 3.12 Gate the rest of the build behind the DT_RELEASE, except sdist --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 694b09249..c24bcbdc5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -121,6 +121,7 @@ jobs: name: Linux / Python 3.8 runs-on: ubuntu-latest needs: setup + if: ${{ needs.setup.outputs.DT_RELEASE == 'True' }} env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -273,7 +274,6 @@ jobs: name: Linux / Python 3.11 runs-on: ubuntu-latest needs: setup - if: ${{ needs.setup.outputs.DT_RELEASE == 'True' }} env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -324,7 +324,6 @@ jobs: name: Linux / Python 3.12 runs-on: ubuntu-latest needs: setup - if: ${{ needs.setup.outputs.DT_RELEASE == 'True' }} env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -637,6 +636,7 @@ jobs: name: MacOS / Python 3.11 runs-on: macos-latest needs: setup + if: ${{ needs.setup.outputs.DT_RELEASE == 'True' }} env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -740,6 +740,7 @@ jobs: name: Windows / Python 3.8 runs-on: windows-latest needs: setup + if: ${{ needs.setup.outputs.DT_RELEASE == 'True' }} env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} From c9a02d48d7c29831adb62d7010430d1539693cf3 Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Fri, 24 Jul 2026 11:24:07 -0400 Subject: [PATCH 4/9] Fix python 9 warning passing non-Collection iterable to parametrize is deprecated. pytest 9 escalated PytestRemovedIn10Warning to an error under -Werror --- tests/test-parallel.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test-parallel.py b/tests/test-parallel.py index 3d39ec33e..7892a6443 100644 --- a/tests/test-parallel.py +++ b/tests/test-parallel.py @@ -73,10 +73,10 @@ def test_core_progress(testname): @skip_on_jenkins @pytest.mark.usefixtures("nowin") # `SIGINT` is not supported on Windows @pytest.mark.parametrize('parallel_type, nthreads', - itertools.product( + list(itertools.product( [None, "static", "nested", "dynamic", "ordered"], ["1", "half", "all"] - ) + )) ) def test_progress_interrupt(parallel_type, nthreads): import signal From 0f4d8af76eaae61757e4fe94e745ded49d21b02c Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Fri, 24 Jul 2026 12:29:25 -0400 Subject: [PATCH 5/9] Pin test dependencies and disable Python 3.12 builds pin numpy, pandas and pyarrow to DAI compatible version and disable python 3.12 because no py 3.12 compatible version availble --- .github/workflows/build.yml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c24bcbdc5..ebcb05337 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -314,7 +314,7 @@ jobs: - name: Install and test run: | python -m pip install $DT_WHEEL - python -m pip install pytest docutils pandas pyarrow + python -m pip install pytest docutils numpy==1.26.4 pandas==1.5.3 pyarrow==23.0.1 python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/ - name: Uninstall wheel @@ -324,6 +324,8 @@ jobs: name: Linux / Python 3.12 runs-on: ubuntu-latest needs: setup + # Disabled: DAI-compatible numpy/pandas pins have no Python 3.12 wheels + if: false env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -420,7 +422,7 @@ jobs: - name: Install and test run: | python -m pip install $DT_WHEEL - python -m pip install pytest docutils pandas pyarrow + python -m pip install pytest docutils numpy==1.26.4 pandas==1.5.3 pyarrow==23.0.1 python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/ - name: Uninstall wheel @@ -430,6 +432,8 @@ jobs: name: Linux ARM64 / Python 3.12 runs-on: ubuntu-24.04-arm needs: setup + # Disabled: DAI-compatible numpy/pandas pins have no Python 3.12 wheels + if: false env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} From f239f6d0f8580bdc6e12c9daae49f3cc771a61fe Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Fri, 24 Jul 2026 13:30:32 -0400 Subject: [PATCH 6/9] Pin numpy to 1.24.4 in test steps fixes test failure because of warning DeprecationWarning: np.find_common_type is deprecated. Please use `np.result_type` or `np.promote_types`. numpy 1.25 deprecated np.find_common_type --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ebcb05337..95ca56c7c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -314,7 +314,7 @@ jobs: - name: Install and test run: | python -m pip install $DT_WHEEL - python -m pip install pytest docutils numpy==1.26.4 pandas==1.5.3 pyarrow==23.0.1 + python -m pip install pytest docutils numpy==1.24.4 pandas==1.5.3 pyarrow==23.0.1 python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/ - name: Uninstall wheel @@ -422,7 +422,7 @@ jobs: - name: Install and test run: | python -m pip install $DT_WHEEL - python -m pip install pytest docutils numpy==1.26.4 pandas==1.5.3 pyarrow==23.0.1 + python -m pip install pytest docutils numpy==1.24.4 pandas==1.5.3 pyarrow==23.0.1 python -m pytest -ra --maxfail=10 -Werror -vv --showlocals ./tests/ - name: Uninstall wheel From 5defe72d644c07c5a0a1db3b1347f5351018dfd4 Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Sat, 25 Jul 2026 02:20:27 -0400 Subject: [PATCH 7/9] Build Linux wheels in manylinux_2_28 for glibc 2.28 compatibility --- .github/workflows/build.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 95ca56c7c..8ed4f68d8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -274,6 +274,8 @@ jobs: name: Linux / Python 3.11 runs-on: ubuntu-latest needs: setup + # Build inside manylinux_2_28 (glibc 2.28) for broad Linux compatibility + container: quay.io/pypa/manylinux_2_28_x86_64 env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -287,10 +289,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - name: Set up Python 3.11 - uses: actions/setup-python@v7 - with: - python-version: "3.11" + - name: Select Python 3.11 + run: echo "/opt/python/cp311-cp311/bin" >> $GITHUB_PATH - name: Build datatable wheel run: | @@ -382,6 +382,8 @@ jobs: name: Linux ARM64 / Python 3.11 runs-on: ubuntu-24.04-arm needs: setup + # Build inside manylinux_2_28 (glibc 2.28) for broad Linux compatibility + container: quay.io/pypa/manylinux_2_28_aarch64 env: DT_HARNESS: ${{ needs.setup.outputs.DT_HARNESS }} @@ -395,10 +397,8 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - name: Set up Python 3.11 - uses: actions/setup-python@v7 - with: - python-version: "3.11" + - name: Select Python 3.11 + run: echo "/opt/python/cp311-cp311/bin" >> $GITHUB_PATH - name: Build datatable wheel run: | From 5f762bd9c40003579a9d026b8bb8fd98c2739752 Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Sat, 25 Jul 2026 02:26:03 -0400 Subject: [PATCH 8/9] Fix git issue in manylinux container --- .github/workflows/build.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8ed4f68d8..3e53073fa 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -289,8 +289,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - name: Select Python 3.11 - run: echo "/opt/python/cp311-cp311/bin" >> $GITHUB_PATH + - name: Configure Python and git + run: | + echo "/opt/python/cp311-cp311/bin" >> $GITHUB_PATH + git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Build datatable wheel run: | @@ -397,8 +399,10 @@ jobs: - name: Checkout repository uses: actions/checkout@v7 - - name: Select Python 3.11 - run: echo "/opt/python/cp311-cp311/bin" >> $GITHUB_PATH + - name: Configure Python and git + run: | + echo "/opt/python/cp311-cp311/bin" >> $GITHUB_PATH + git config --global --add safe.directory "$GITHUB_WORKSPACE" - name: Build datatable wheel run: | From ffe33dd6df54c758176cb4349a6bfa056179a411 Mon Sep 17 00:00:00 2001 From: Sujeevan Rasaratnam Date: Sat, 25 Jul 2026 02:39:58 -0400 Subject: [PATCH 9/9] Fix flatbuffers span compile error on GCC 14 flatbuffers span declared data_/count_ as const yet defines a copy assignment operator that writes to them. This is ill-formed; GCC 14 (used by manylinux_2_28) rejects it, while older compilers accepted the un-instantiated constexpr body. Make the members non-const, matching upstream flatbuffers. Co-Authored-By: Claude Opus 4.8 (1M context) --- src/core/lib/flatbuffers/stl_emulation.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/core/lib/flatbuffers/stl_emulation.h b/src/core/lib/flatbuffers/stl_emulation.h index c37935338..552ba670b 100644 --- a/src/core/lib/flatbuffers/stl_emulation.h +++ b/src/core/lib/flatbuffers/stl_emulation.h @@ -624,8 +624,10 @@ class span FLATBUFFERS_FINAL_CLASS { private: // This is a naive implementation with 'count_' member even if (Extent != dynamic_extent). - pointer const data_; - const size_type count_; + // Members are non-const so the copy-assignment operator above is well-formed + // (GCC 14+ rejects assigning to const members; older compilers did not). + pointer data_; + size_type count_; }; #if !defined(FLATBUFFERS_SPAN_MINIMAL)