From 5bf3650d3d85729175fb824d7bde9662d507f122 Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 14 May 2026 12:18:23 +0800 Subject: [PATCH 1/6] fix: enable CI-nightly run normally Signed-off-by: Jason --- .github/workflows/ci-nightly.yml | 1 + cpp/cmake/apache-arrow.cmake | 13 ++++++++----- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci-nightly.yml b/.github/workflows/ci-nightly.yml index 754c080f2..9472cf145 100644 --- a/.github/workflows/ci-nightly.yml +++ b/.github/workflows/ci-nightly.yml @@ -19,6 +19,7 @@ name: GraphAr C++ CI Nightly on: workflow_dispatch: + push: schedule: # The notifications for scheduled workflows are sent to the user who # last modified the cron syntax in the workflow file. diff --git a/cpp/cmake/apache-arrow.cmake b/cpp/cmake/apache-arrow.cmake index d35352ce6..9a5677238 100644 --- a/cpp/cmake/apache-arrow.cmake +++ b/cpp/cmake/apache-arrow.cmake @@ -121,6 +121,14 @@ function(build_arrow) set(GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_STATIC_LIB}" "${GAR_PARQUET_STATIC_LIB}" "${GAR_DATASET_STATIC_LIB}" "${GAR_ARROW_COMPUTE_STATIC_LIB}") + if(ARROW_VERSION_TO_BUILD GREATER_EQUAL "12.0.0") + set(GAR_ARROW_ACERO_STATIC_LIB_FILENAME + "${CMAKE_STATIC_LIBRARY_PREFIX}arrow_acero${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GAR_ARROW_ACERO_STATIC_LIB + "${GAR_ARROW_STATIC_LIBRARY_DIR}/${GAR_ARROW_ACERO_STATIC_LIB_FILENAME}" + CACHE INTERNAL "acero lib") + list(APPEND GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_ACERO_STATIC_LIB}") + endif() find_package(Threads) find_package(Arrow QUIET) @@ -173,11 +181,6 @@ function(build_arrow) set_target_properties(${GAR_ARROW_BUNDLED_DEPS_TARGET} PROPERTIES IMPORTED_LOCATION ${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}) if(ARROW_VERSION_TO_BUILD GREATER_EQUAL "12.0.0") - set(GAR_ARROW_ACERO_STATIC_LIB_FILENAME - "${CMAKE_STATIC_LIBRARY_PREFIX}arrow_acero${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GAR_ARROW_ACERO_STATIC_LIB - "${GAR_ARROW_STATIC_LIBRARY_DIR}/${GAR_ARROW_ACERO_STATIC_LIB_FILENAME}" - CACHE INTERNAL "acero lib") set(GAR_ARROW_ACERO_LIBRARY_TARGET gar_acero_static) add_library(${GAR_ARROW_ACERO_LIBRARY_TARGET} STATIC IMPORTED) set_target_properties(${GAR_ARROW_ACERO_LIBRARY_TARGET} From 14adeb2eb6e07a9dd65834b3d8f01ae6c21cdc59 Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 14 May 2026 12:36:34 +0800 Subject: [PATCH 2/6] fix: enable pull request run ci-nightly Signed-off-by: Jason --- .github/workflows/ci-nightly.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/ci-nightly.yml b/.github/workflows/ci-nightly.yml index 9472cf145..ab27bc9a2 100644 --- a/.github/workflows/ci-nightly.yml +++ b/.github/workflows/ci-nightly.yml @@ -20,6 +20,17 @@ name: GraphAr C++ CI Nightly on: workflow_dispatch: push: + branches: + - main + paths: + - 'cpp/**' + - '.github/workflows/ci-nightly.yml' + pull_request: + branches: + - main + paths: + - 'cpp/**' + - '.github/workflows/ci-nightly.yml' schedule: # The notifications for scheduled workflows are sent to the user who # last modified the cron syntax in the workflow file. From 4945b8544490aa5ce076973793e8b1b6463cb18c Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 14 May 2026 13:22:33 +0800 Subject: [PATCH 3/6] fix: block other ci Signed-off-by: Jason --- .github/workflows/ci.yml | 4 ++-- .github/workflows/docs.yml | 2 +- .github/workflows/java-info.yml | 1 + .github/workflows/java.yml | 1 + .github/workflows/license.yml | 1 + .github/workflows/pr-title.yml | 1 + .github/workflows/pre-commit.yml | 1 + .github/workflows/publish-docker.yml | 2 +- .github/workflows/pyspark.yml | 1 + .github/workflows/python-wheel-workflow.yml | 6 ++++-- .github/workflows/python.yml | 2 ++ 11 files changed, 16 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fb7c4059e..5235097dc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,7 +42,7 @@ jobs: # TODO use ubuntu-latest name: Ubuntu 22.04 C++ runs-on: ubuntu-22.04 - if: ${{ !contains(github.event.pull_request.title, 'WIP') }} + if: false env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ steps: @@ -186,7 +186,7 @@ jobs: macos: name: macos latest C++ runs-on: macos-latest - if: ${{ !contains(github.event.pull_request.title, 'WIP') }} + if: false env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ strategy: diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 569886728..a913e5ef8 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -38,7 +38,7 @@ concurrency: jobs: build-website: runs-on: ubuntu-slim - if: ${{ !contains(github.event.pull_request.title, 'WIP') }} + if: false steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/java-info.yml b/.github/workflows/java-info.yml index fd5ccf5ba..288bae669 100644 --- a/.github/workflows/java-info.yml +++ b/.github/workflows/java-info.yml @@ -40,6 +40,7 @@ concurrency: jobs: test: runs-on: ubuntu-latest + if: false env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ steps: diff --git a/.github/workflows/java.yml b/.github/workflows/java.yml index d57eeee32..01ec5fed2 100644 --- a/.github/workflows/java.yml +++ b/.github/workflows/java.yml @@ -40,6 +40,7 @@ concurrency: jobs: test: runs-on: ubuntu-22.04 + if: false env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ steps: diff --git a/.github/workflows/license.yml b/.github/workflows/license.yml index 15efa1d5c..0b30e861d 100644 --- a/.github/workflows/license.yml +++ b/.github/workflows/license.yml @@ -33,6 +33,7 @@ jobs: license-check: name: License Check runs-on: ubuntu-slim + if: false steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/.github/workflows/pr-title.yml b/.github/workflows/pr-title.yml index 6182c9b8a..55d8bdde3 100644 --- a/.github/workflows/pr-title.yml +++ b/.github/workflows/pr-title.yml @@ -39,6 +39,7 @@ jobs: validate-title: name: Validate pull request title runs-on: ubuntu-slim + if: false steps: - uses: amannn/action-semantic-pull-request@v6 env: diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index 7627841e3..b7abf2d89 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -39,6 +39,7 @@ jobs: pre-commit: name: Pre-commit Checks runs-on: ubuntu-slim + if: false steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/publish-docker.yml b/.github/workflows/publish-docker.yml index e72629e1f..18b685ee9 100644 --- a/.github/workflows/publish-docker.yml +++ b/.github/workflows/publish-docker.yml @@ -29,7 +29,7 @@ env: jobs: build: - if: github.repository == 'apache/incubator-graphar' + if: false runs-on: ubuntu-latest permissions: contents: read diff --git a/.github/workflows/pyspark.yml b/.github/workflows/pyspark.yml index 3ceda7822..478e06453 100644 --- a/.github/workflows/pyspark.yml +++ b/.github/workflows/pyspark.yml @@ -42,6 +42,7 @@ concurrency: jobs: test: runs-on: ubuntu-latest + if: false steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/python-wheel-workflow.yml b/.github/workflows/python-wheel-workflow.yml index ad44f9c53..e90c0d9de 100644 --- a/.github/workflows/python-wheel-workflow.yml +++ b/.github/workflows/python-wheel-workflow.yml @@ -53,6 +53,7 @@ jobs: build_sdist: name: Build source distribution runs-on: ubuntu-22.04 + if: false steps: - uses: actions/checkout@v4 @@ -86,6 +87,7 @@ jobs: name: Build wheels on ${{ matrix.runner }} runs-on: ${{ matrix.runner }} needs: build_sdist + if: false strategy: matrix: include: @@ -259,7 +261,7 @@ jobs: name: Publish to TestPyPI (auto) needs: [build_wheels, build_sdist] runs-on: ubuntu-22.04 - if: github.event_name == 'push' + if: false permissions: contents: read id-token: write @@ -283,7 +285,7 @@ jobs: name: Publish (manual) needs: [build_wheels, build_sdist] runs-on: ubuntu-22.04 - if: github.event_name == 'workflow_dispatch' && inputs.publish_pypi + if: false permissions: contents: read id-token: write diff --git a/.github/workflows/python.yml b/.github/workflows/python.yml index 4a8962e01..5db63afc2 100644 --- a/.github/workflows/python.yml +++ b/.github/workflows/python.yml @@ -44,6 +44,7 @@ jobs: ubuntu: name: Ubuntu 22.04 Python runs-on: ubuntu-latest + if: false env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ @@ -111,6 +112,7 @@ jobs: macos: name: macos latest Python runs-on: macos-latest + if: false env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ From 49ca0cad9b58181d867cb1cb622ef09cbedc6777 Mon Sep 17 00:00:00 2001 From: Jason Date: Thu, 14 May 2026 13:25:12 +0800 Subject: [PATCH 4/6] fix: enable ci run Signed-off-by: Jason --- .github/workflows/ci-nightly.yml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/.github/workflows/ci-nightly.yml b/.github/workflows/ci-nightly.yml index ab27bc9a2..ae474d583 100644 --- a/.github/workflows/ci-nightly.yml +++ b/.github/workflows/ci-nightly.yml @@ -22,15 +22,9 @@ on: push: branches: - main - paths: - - 'cpp/**' - - '.github/workflows/ci-nightly.yml' pull_request: branches: - main - paths: - - 'cpp/**' - - '.github/workflows/ci-nightly.yml' schedule: # The notifications for scheduled workflows are sent to the user who # last modified the cron syntax in the workflow file. From f75cd972c3906ca9ec43ee9b982e11abaa64768c Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 16 May 2026 09:01:08 +0800 Subject: [PATCH 5/6] fix: enable ci --- .github/workflows/ci-nightly.yml | 62 +++++++++++++++----------------- 1 file changed, 28 insertions(+), 34 deletions(-) diff --git a/.github/workflows/ci-nightly.yml b/.github/workflows/ci-nightly.yml index ae474d583..52c4c5a2d 100644 --- a/.github/workflows/ci-nightly.yml +++ b/.github/workflows/ci-nightly.yml @@ -25,14 +25,8 @@ on: pull_request: branches: - main - schedule: - # The notifications for scheduled workflows are sent to the user who - # last modified the cron syntax in the workflow file. - # Trigger the workflow at 03:00(CST) every day. - - cron: '00 19 * * *' jobs: GraphAr-ubuntu-arrow-from-source: - if: ${{ github.ref == 'refs/heads/main' && github.repository == 'apache/incubator-graphar' }} runs-on: ubuntu-latest env: GAR_TEST_DATA: ${{ github.workspace }}/graphar-testing/ @@ -55,52 +49,52 @@ jobs: sudo apt-get update -y sudo apt-get install -y libboost-graph-dev ccache libcurl4-openssl-dev ninja-build + # install CMake 3.28+ + wget -O- https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null + echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ jammy main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null + sudo apt-get update -y + sudo apt-get install -y cmake + # install Catch2 v3 git clone --branch v3.6.0 https://github.com/catchorg/Catch2.git --depth 1 - pushd Catch2 - cmake -Bbuild -H. -DBUILD_TESTING=OFF - sudo cmake --build build/ --target install - popd + cmake -B Catch2/build -S Catch2 \ + -DBUILD_TESTING=OFF + sudo cmake --build Catch2/build \ + --target install git clone https://github.com/apache/incubator-graphar-testing.git $GAR_TEST_DATA --depth 1 - name: CMake-debug run: | - mkdir build-debug - pushd build-debug - cmake ../cpp -G Ninja -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_ARROW_FROM_SOURCE=ON - popd + cmake -B build-debug -S cpp \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=Debug \ + -DBUILD_TESTS=ON \ + -DBUILD_EXAMPLES=ON \ + -DBUILD_ARROW_FROM_SOURCE=ON - name: Build GraphAr-debug run: | - pushd build-debug - ninja - ninja graphar-ccache-stats - popd + ninja -C build-debug + ninja -C build-debug graphar-ccache-stats - name: Test-debug - run: | - pushd build-debug - ctest --output-on-failure - popd + run: ctest --output-on-failure -C build-debug - name: CMake-release run: | - mkdir build-release - pushd build-release - cmake ../cpp -G Ninja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTS=ON -DBUILD_EXAMPLES=ON -DBUILD_ARROW_FROM_SOURCE=ON - popd + cmake -B build-release -S cpp \ + -G Ninja \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DBUILD_TESTS=ON \ + -DBUILD_EXAMPLES=ON \ + -DBUILD_ARROW_FROM_SOURCE=ON - name: Build GraphAr-release run: | - pushd build-release - ninja - ninja graphar-ccache-stats - popd + ninja -C build-release + ninja -C build-release graphar-ccache-stats - name: Test-release - run: | - pushd build-release - ctest --output-on-failure - popd + run: ctest --output-on-failure -C build-release From 6f12f7e56d31cd5da5fa704243ce263a27b67882 Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 16 May 2026 09:37:40 +0800 Subject: [PATCH 6/6] fix: add arrow Signed-off-by: Jason --- .devcontainer/Dockerfile | 9 ++++++-- .gitignore | 2 +- cpp/cmake/apache-arrow.cmake | 41 ++++++++++++++++++++++-------------- 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index a2963fe8c..e46364a0a 100644 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -15,7 +15,7 @@ # specific language governing permissions and limitations # under the License. -FROM ubuntu:22.04 +FROM ubuntu:latest ENV DEBIAN_FRONTEND=noninteractive @@ -29,7 +29,7 @@ RUN apt-get update && apt-get install -y ca-certificates lsb-release wget \ && apt-get install -y ./apache-arrow-apt-source-latest-$(lsb_release --codename --short).deb \ && apt-get update \ && apt-get install -y \ - cmake \ + ninja-build \ build-essential \ libarrow-dev \ libarrow-dataset-dev \ @@ -44,6 +44,11 @@ RUN apt-get update && apt-get install -y ca-certificates lsb-release wget \ sudo \ tzdata \ maven \ + && wget https://github.com/Kitware/CMake/releases/download/v3.28.0/cmake-3.28.0-linux-x86_64.tar.gz -O /tmp/cmake.tar.gz \ + && tar -xzf /tmp/cmake.tar.gz -C /opt \ + && ln -sf /opt/cmake-3.28.0-linux-x86_64/bin/cmake /usr/local/bin/cmake \ + && ln -sf /opt/cmake-3.28.0-linux-x86_64/bin/ccmake /usr/local/bin/ccmake \ + && rm /tmp/cmake.tar.gz \ && curl -sSL https://install.python-poetry.org | python3 - \ && wget https://github.com/muttleyxd/clang-tools-static-binaries/releases/download/master-22538c65/clang-format-8_linux-amd64 -O /usr/bin/clang-format \ && chmod +x /usr/bin/clang-format \ diff --git a/.gitignore b/.gitignore index 8e0a539be..a1e406c3d 100644 --- a/.gitignore +++ b/.gitignore @@ -11,7 +11,7 @@ .factorypath compile_commands.json - +build-debug ### Python ### # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/cpp/cmake/apache-arrow.cmake b/cpp/cmake/apache-arrow.cmake index 9a5677238..bfdf3a377 100644 --- a/cpp/cmake/apache-arrow.cmake +++ b/cpp/cmake/apache-arrow.cmake @@ -121,14 +121,6 @@ function(build_arrow) set(GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_STATIC_LIB}" "${GAR_PARQUET_STATIC_LIB}" "${GAR_DATASET_STATIC_LIB}" "${GAR_ARROW_COMPUTE_STATIC_LIB}") - if(ARROW_VERSION_TO_BUILD GREATER_EQUAL "12.0.0") - set(GAR_ARROW_ACERO_STATIC_LIB_FILENAME - "${CMAKE_STATIC_LIBRARY_PREFIX}arrow_acero${CMAKE_STATIC_LIBRARY_SUFFIX}") - set(GAR_ARROW_ACERO_STATIC_LIB - "${GAR_ARROW_STATIC_LIBRARY_DIR}/${GAR_ARROW_ACERO_STATIC_LIB_FILENAME}" - CACHE INTERNAL "acero lib") - list(APPEND GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_ACERO_STATIC_LIB}") - endif() find_package(Threads) find_package(Arrow QUIET) @@ -143,6 +135,23 @@ function(build_arrow) CACHE INTERNAL "arrow version") endif() + if(ARROW_VERSION_TO_BUILD GREATER_EQUAL "12.0.0") + set(GAR_ARROW_ACERO_STATIC_LIB_FILENAME + "${CMAKE_STATIC_LIBRARY_PREFIX}arrow_acero${CMAKE_STATIC_LIBRARY_SUFFIX}") + set(GAR_ARROW_ACERO_STATIC_LIB + "${GAR_ARROW_STATIC_LIBRARY_DIR}/${GAR_ARROW_ACERO_STATIC_LIB_FILENAME}" + CACHE INTERNAL "acero lib") + list(APPEND GAR_ARROW_BUILD_BYPRODUCTS "${GAR_ARROW_ACERO_STATIC_LIB}") + + # Set up acero library target here to ensure it's in the same scope + set(GAR_ARROW_ACERO_LIBRARY_TARGET gar_acero_static) + add_library(${GAR_ARROW_ACERO_LIBRARY_TARGET} STATIC IMPORTED) + set_target_properties(${GAR_ARROW_ACERO_LIBRARY_TARGET} + PROPERTIES INTERFACE_INCLUDE_DIRECTORIES + ${GAR_ARROW_INCLUDE_DIR} + IMPORTED_LOCATION ${GAR_ARROW_ACERO_STATIC_LIB}) + endif() + if(DEFINED ENV{GAR_ARROW_SOURCE_URL}) set(GAR_ARROW_SOURCE_URL "$ENV{GAR_ARROW_SOURCE_URL}") else() @@ -180,14 +189,7 @@ function(build_arrow) IMPORTED_LOCATION ${GAR_DATASET_STATIC_LIB}) set_target_properties(${GAR_ARROW_BUNDLED_DEPS_TARGET} PROPERTIES IMPORTED_LOCATION ${GAR_ARROW_BUNDLED_DEPS_STATIC_LIB}) - if(ARROW_VERSION_TO_BUILD GREATER_EQUAL "12.0.0") - set(GAR_ARROW_ACERO_LIBRARY_TARGET gar_acero_static) - add_library(${GAR_ARROW_ACERO_LIBRARY_TARGET} STATIC IMPORTED) - set_target_properties(${GAR_ARROW_ACERO_LIBRARY_TARGET} - PROPERTIES INTERFACE_INCLUDE_DIRECTORIES - ${GAR_ARROW_INCLUDE_DIR} - IMPORTED_LOCATION ${GAR_ARROW_ACERO_STATIC_LIB}) - endif() + set(GAR_ARROW_COMPUTE_LIBRARY_TARGET gar_arrow_compute_static) add_library(${GAR_ARROW_COMPUTE_LIBRARY_TARGET} STATIC IMPORTED) set_target_properties(${GAR_ARROW_COMPUTE_LIBRARY_TARGET} @@ -195,4 +197,11 @@ function(build_arrow) IMPORTED_LOCATION ${GAR_ARROW_COMPUTE_STATIC_LIB}) add_dependencies(${GAR_ARROW_LIBRARY_TARGET} arrow_ep) + add_dependencies(${GAR_PARQUET_LIBRARY_TARGET} arrow_ep) + add_dependencies(${GAR_ARROW_DATASET_LIBRARY_TARGET} arrow_ep) + add_dependencies(${GAR_ARROW_BUNDLED_DEPS_TARGET} arrow_ep) + if(ARROW_VERSION_TO_BUILD GREATER_EQUAL "12.0.0") + add_dependencies(${GAR_ARROW_ACERO_LIBRARY_TARGET} arrow_ep) + endif() + add_dependencies(${GAR_ARROW_COMPUTE_LIBRARY_TARGET} arrow_ep) endfunction()