This is an automated email from the ASF dual-hosted git repository.

JingsongLi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/paimon-cpp.git


The following commit(s) were added to refs/heads/main by this push:
     new a4f6fe5  chore: add github workflows and update asf yaml (#144)
a4f6fe5 is described below

commit a4f6fe5baad19e8baae029c77f1adc3446cb641f
Author: Yonghao Fang <[email protected]>
AuthorDate: Thu Jul 9 15:15:25 2026 +0800

    chore: add github workflows and update asf yaml (#144)
---
 .asf.yaml                                      |  44 +++++++-
 .github/workflows/build_docs.yaml              |  81 ++++++++++++++
 .github/workflows/build_release.yaml           |  81 ++++++++++++++
 .github/workflows/clang_test.yaml              |  59 ++++++++++
 .github/workflows/gcc8_test.yaml               |  77 +++++++++++++
 .github/workflows/gcc_test.yaml                |  58 ++++++++++
 .github/workflows/license_check.yaml           |  55 ++++++++++
 .asf.yaml => .github/workflows/pre-commit.yaml |  43 +++-----
 .github/workflows/test_with_sanitizer.yaml     |  58 ++++++++++
 CMakeLists.txt                                 |  18 +--
 ci/scripts/build_paimon.sh                     |  16 +--
 cmake_modules/ThirdpartyToolchain.cmake        | 145 -------------------------
 docs/source/basic_concepts.rst                 |   2 +-
 docs/source/build_system.rst                   |   3 -
 docs/source/building.rst                       |   3 -
 docs/source/conf.py                            |   7 +-
 docs/source/user_guide/global_index.rst        |   8 --
 src/paimon/testing/utils/CMakeLists.txt        |   1 +
 18 files changed, 531 insertions(+), 228 deletions(-)

diff --git a/.asf.yaml b/.asf.yaml
index ab16547..b4cdb12 100644
--- a/.asf.yaml
+++ b/.asf.yaml
@@ -21,8 +21,10 @@
 # https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features
 
 github:
-  description: "Apache Paimon C++"
+  description: "Paimon-cpp is a high-performance C++ implementation of Apache 
Paimon."
   homepage: https://paimon.apache.org/
+  ghp_branch: gh-pages
+  ghp_path: /
   labels:
     - paimon
     - apache
@@ -31,17 +33,47 @@ github:
     merge: false
     squash: true
     rebase: false
-  protected_branches:
-    main:
+  rulesets:
+    - name: "Branch Protection"
+      type: branch
+      branches:
+        includes:
+          - "~DEFAULT_BRANCH"
+          - "release-*"
+        excludes: []
+      restrict_deletion: true
+      restrict_force_push: true
+      required_linear_history: true
+      required_conversation_resolution: true
       required_pull_request_reviews:
+        dismiss_stale_reviews: true
+        require_last_push_approval: true
         required_approving_review_count: 1
-      required_linear_history: true
+      required_status_checks:
+        - name: "pre-commit"
+          app_slug: -1
+        - name: "gcc-test"
+          app_slug: -1
+        - name: "rat-license-check"
+          app_slug: -1
+        - name: "test-with-sanitizer"
+          app_slug: -1
+        - name: "clang-release"
+          app_slug: -1
+        - name: "gcc-release"
+          app_slug: -1
+        - name: "clang-test"
+          app_slug: -1
+        - name: "gcc8-test"
+          app_slug: -1
   pull_requests:
-    del_branch_on_merge: true
+    allow_auto_merge: false
+    allow_update_branch: true
+    del_branch_on_merge: false
   features:
     wiki: true
     issues: true
-    projects: true
+    projects: false
 
 notifications:
   commits:      [email protected]
diff --git a/.github/workflows/build_docs.yaml 
b/.github/workflows/build_docs.yaml
new file mode 100644
index 0000000..5b2a76a
--- /dev/null
+++ b/.github/workflows/build_docs.yaml
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: "Publish Docs"
+
+on:
+  push:
+    branches:
+      - main
+    paths:
+      - 'apidoc/**'
+      - 'docs/**'
+      - 'include/**'
+
+concurrency:
+  group: ${{ github.workflow }}-${{ github.ref }}
+  cancel-in-progress: false
+
+permissions:
+  contents: write
+
+jobs:
+  docs:
+    runs-on: ubuntu-24.04
+
+    steps:
+      - uses: actions/[email protected]
+        with:
+          fetch-depth: 1
+
+      - uses: actions/setup-python@v6
+        with:
+          python-version: '3.x'
+
+      - name: Install dependencies
+        run: |
+          sudo apt-get update
+          sudo apt-get install -y doxygen
+          pip install -r docs/requirements.txt
+
+      - name: Build API
+        run: |
+          cd ./apidoc
+          doxygen
+          cd -
+
+      - name: Build Docs
+        run: |
+            cd docs
+            make html
+            mkdir -p /tmp/site
+            cp -r ./_build/html/* /tmp/site/
+            touch /tmp/site/.nojekyll
+            cd -
+
+      - name: Deploy to gh-pages
+        if: github.event_name == 'push' && github.ref == 'refs/heads/main'
+        run: |
+          git config --global user.name 'GitHub Actions'
+          git config --global user.email '[email protected]'
+
+          git checkout --orphan gh-pages-tmp
+          git rm --quiet -rf .
+          cp -r /tmp/site/. .
+          git add --all
+          git commit -m "Publish docs from commit ${{ github.sha }}"
+          git push -f origin gh-pages-tmp:gh-pages
diff --git a/.github/workflows/build_release.yaml 
b/.github/workflows/build_release.yaml
new file mode 100644
index 0000000..fe25c7a
--- /dev/null
+++ b/.github/workflows/build_release.yaml
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Build Release
+
+on:
+  push:
+    branches:
+      - '**'
+    tags:
+      - '**'
+  pull_request:
+
+concurrency:
+  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  cancel-in-progress: true
+
+permissions:
+  contents: read
+
+jobs:
+  clang-release:
+    runs-on: ubuntu-24.04
+    timeout-minutes: 120
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout paimon-cpp
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          lfs: true
+      - name: Setup ccache
+        uses: ./.github/actions/setup-ccache
+        with:
+          cache-key-prefix: ccache-clang-release
+      - name: Build Paimon
+        shell: bash
+        env:
+          CC: clang
+          CXX: clang++
+        run: ci/scripts/build_paimon.sh $(pwd) false false Release
+      - name: Show ccache statistics
+        if: always()
+        run: ccache -s
+  gcc-release:
+    runs-on: ubuntu-24.04
+    timeout-minutes: 120
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout paimon-cpp
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          lfs: true
+      - name: Setup ccache
+        uses: ./.github/actions/setup-ccache
+        with:
+          cache-key-prefix: ccache-gcc-release
+      - name: Build Paimon
+        shell: bash
+        env:
+          CC: gcc-14
+          CXX: g++-14
+        run: ci/scripts/build_paimon.sh $(pwd) false false Release
+      - name: Show ccache statistics
+        if: always()
+        run: ccache -s
diff --git a/.github/workflows/clang_test.yaml 
b/.github/workflows/clang_test.yaml
new file mode 100644
index 0000000..20efbfa
--- /dev/null
+++ b/.github/workflows/clang_test.yaml
@@ -0,0 +1,59 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Clang Test
+
+on:
+  push:
+    branches:
+      - '**'
+    tags:
+      - '**'
+  pull_request:
+
+concurrency:
+  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  cancel-in-progress: true
+
+permissions:
+  contents: read
+
+jobs:
+  clang-test:
+    runs-on: ubuntu-24.04
+    timeout-minutes: 120
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout paimon-cpp
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          lfs: true
+          fetch-depth: 0  # fetch all history for git diff in clang-tidy
+      - name: Setup ccache
+        uses: ./.github/actions/setup-ccache
+        with:
+          cache-key-prefix: ccache-clang-test
+      - name: Build Paimon
+        shell: bash
+        env:
+          CC: clang
+          CXX: clang++
+        run: ci/scripts/build_paimon.sh $(pwd) false true
+      - name: Show ccache statistics
+        if: always()
+        run: ccache -s
diff --git a/.github/workflows/gcc8_test.yaml b/.github/workflows/gcc8_test.yaml
new file mode 100644
index 0000000..405ffb0
--- /dev/null
+++ b/.github/workflows/gcc8_test.yaml
@@ -0,0 +1,77 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Gcc 8 Test
+
+on:
+  push:
+    branches:
+      - '**'
+    tags:
+      - '**'
+  pull_request:
+
+concurrency:
+  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  cancel-in-progress: true
+
+permissions:
+  contents: read
+
+jobs:
+  gcc8-test:
+    runs-on: ubuntu-22.04
+    container:
+      image: ubuntu:20.04
+      options: --privileged
+    timeout-minutes: 120
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Install dependencies
+        run: |
+          apt-get update
+          DEBIAN_FRONTEND=noninteractive apt-get install -y gcc-8 g++-8 
ninja-build git git-lfs tar curl tzdata zip unzip pkg-config build-essential 
python3-dev gdb sudo
+          curl -L -O 
https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.tar.gz
+          tar -zxvf cmake-3.28.3-linux-x86_64.tar.gz -C /usr/local 
--strip-components=1
+          rm cmake-3.28.3-linux-x86_64.tar.gz
+      - name: Enable core dumps
+        run: |
+          ulimit -c unlimited
+          sysctl -w kernel.core_pattern=core.%e.%p
+      - name: Debug core dump settings
+        run: |
+          ulimit -c
+          cat /proc/sys/kernel/core_pattern
+          ls -la
+      - name: Checkout paimon-cpp
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          lfs: true
+      - name: Setup ccache
+        uses: ./.github/actions/setup-ccache
+        with:
+          cache-key-prefix: ccache-gcc8-test
+      - name: Build Paimon
+        shell: bash
+        env:
+          CC: gcc-8
+          CXX: g++-8
+        run: ci/scripts/build_paimon.sh $(pwd)
+      - name: Show ccache statistics
+        if: always()
+        run: ccache -s
diff --git a/.github/workflows/gcc_test.yaml b/.github/workflows/gcc_test.yaml
new file mode 100644
index 0000000..8d23c7e
--- /dev/null
+++ b/.github/workflows/gcc_test.yaml
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Gcc Test
+
+on:
+  push:
+    branches:
+      - '**'
+    tags:
+      - '**'
+  pull_request:
+
+concurrency:
+  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  cancel-in-progress: true
+
+permissions:
+  contents: read
+
+jobs:
+  gcc-test:
+    runs-on: ubuntu-24.04
+    timeout-minutes: 120
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout paimon-cpp
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          lfs: true
+      - name: Setup ccache
+        uses: ./.github/actions/setup-ccache
+        with:
+          cache-key-prefix: ccache-gcc-test
+      - name: Build Paimon
+        shell: bash
+        env:
+          CC: gcc-14
+          CXX: g++-14
+        run: ci/scripts/build_paimon.sh $(pwd)
+      - name: Show ccache statistics
+        if: always()
+        run: ccache -s
diff --git a/.github/workflows/license_check.yaml 
b/.github/workflows/license_check.yaml
new file mode 100644
index 0000000..a908f9a
--- /dev/null
+++ b/.github/workflows/license_check.yaml
@@ -0,0 +1,55 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: License Check
+
+on:
+  pull_request:
+  push:
+    branches:
+      - main
+
+jobs:
+  rat-license-check:
+    runs-on: ubuntu-latest
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Set up Java
+        uses: actions/setup-java@v4
+        with:
+          distribution: 'temurin'
+          java-version: '17'
+
+      - name: Download Apache Rat jar
+        run: |
+          wget 
https://repo1.maven.org/maven2/org/apache/rat/apache-rat/0.16.1/apache-rat-0.16.1.jar
 -O rat.jar
+
+      - name: Run Apache Rat
+        run: |
+          java -jar rat.jar -E .github/.rat-excludes -d . > rat-report.txt
+      - name: Check for Unapproved Licenses
+        run: |
+          if grep "Files with unapproved licenses" rat-report.txt; then
+            echo "❌ Found files with unapproved licenses!"
+            cat rat-report.txt
+            exit 1
+          else
+            echo "✅ All files have approved licenses."
+            cat rat-report.txt
+          fi
diff --git a/.asf.yaml b/.github/workflows/pre-commit.yaml
similarity index 52%
copy from .asf.yaml
copy to .github/workflows/pre-commit.yaml
index ab16547..74ded94 100644
--- a/.asf.yaml
+++ b/.github/workflows/pre-commit.yaml
@@ -1,4 +1,3 @@
-#
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
 # distributed with this work for additional information
@@ -15,35 +14,19 @@
 # KIND, either express or implied.  See the License for the
 # specific language governing permissions and limitations
 # under the License.
-#
 
-# The format of this file is documented at
-# https://cwiki.apache.org/confluence/display/INFRA/Git+-+.asf.yaml+features
+name: pre-commit
 
-github:
-  description: "Apache Paimon C++"
-  homepage: https://paimon.apache.org/
-  labels:
-    - paimon
-    - apache
-    - cpp
-  enabled_merge_buttons:
-    merge: false
-    squash: true
-    rebase: false
-  protected_branches:
-    main:
-      required_pull_request_reviews:
-        required_approving_review_count: 1
-      required_linear_history: true
-  pull_requests:
-    del_branch_on_merge: true
-  features:
-    wiki: true
-    issues: true
-    projects: true
+on:
+  pull_request:
+  push:
+    branches:
+      - '**'
 
-notifications:
-  commits:      [email protected]
-  issues:       [email protected]
-  pullrequests: [email protected]
+jobs:
+  pre-commit:
+    runs-on: ubuntu-24.04
+    steps:
+    - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
+    - uses: actions/setup-python@v6
+    - uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd  # 
v3.0.1
diff --git a/.github/workflows/test_with_sanitizer.yaml 
b/.github/workflows/test_with_sanitizer.yaml
new file mode 100644
index 0000000..06436eb
--- /dev/null
+++ b/.github/workflows/test_with_sanitizer.yaml
@@ -0,0 +1,58 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+name: Test with sanitizer
+
+on:
+  push:
+    branches:
+      - '**'
+    tags:
+      - '**'
+  pull_request:
+
+concurrency:
+  group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ 
github.workflow }}
+  cancel-in-progress: true
+
+permissions:
+  contents: read
+
+jobs:
+  test-with-sanitizer:
+    runs-on: ubuntu-24.04
+    timeout-minutes: 120
+    strategy:
+      fail-fast: false
+    steps:
+      - name: Checkout paimon-cpp
+        uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # 
v6.0.1
+        with:
+          lfs: true
+      - name: Setup ccache
+        uses: ./.github/actions/setup-ccache
+        with:
+          cache-key-prefix: ccache-sanitizer
+      - name: Build Paimon
+        shell: bash
+        env:
+          CC: clang
+          CXX: clang++
+        run: ci/scripts/build_paimon.sh $(pwd) true
+      - name: Show ccache statistics
+        if: always()
+        run: ccache -s
diff --git a/CMakeLists.txt b/CMakeLists.txt
index c3116ce..06668ab 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -52,10 +52,11 @@ option(PAIMON_USE_UBSAN "Use Undefined Behavior Sanitizer" 
OFF)
 option(PAIMON_USE_CXX11_ABI "Use C++11 ABI" ON)
 option(PAIMON_ENABLE_AVRO "Whether to enable avro file format" ON)
 option(PAIMON_ENABLE_ORC "Whether to enable orc file format" ON)
-option(PAIMON_ENABLE_LANCE "Whether to enable lance file format" OFF)
-option(PAIMON_ENABLE_JINDO "Whether to enable jindo file system" OFF)
-option(PAIMON_ENABLE_LUMINA "Whether to enable lumina vector index" OFF)
 option(PAIMON_ENABLE_LUCENE "Whether to enable lucene index" OFF)
+if(PAIMON_ENABLE_LUCENE)
+    message(FATAL_ERROR "PAIMON_ENABLE_LUCENE is temporarily disabled. Please 
configure with -DPAIMON_ENABLE_LUCENE=OFF."
+    )
+endif()
 
 if(PAIMON_ENABLE_ORC)
     add_definitions(-DPAIMON_ENABLE_ORC)
@@ -63,9 +64,6 @@ endif()
 if(PAIMON_ENABLE_AVRO)
     add_definitions(-DPAIMON_ENABLE_AVRO)
 endif()
-if(PAIMON_ENABLE_JINDO)
-    add_definitions(-DPAIMON_ENABLE_JINDO)
-endif()
 if(PAIMON_USE_CXX11_ABI)
     add_definitions(-D_GLIBCXX_USE_CXX11_ABI=1)
 else()
@@ -407,11 +405,6 @@ if(PAIMON_BUILD_TESTS)
         list(APPEND TEST_STATIC_LINK_LIBS paimon_avro_file_format_shared)
         list(APPEND TEST_STATIC_LINK_LIBS "-Wl,--as-needed")
     endif()
-    if(PAIMON_ENABLE_JINDO)
-        list(APPEND TEST_STATIC_LINK_LIBS "-Wl,--no-as-needed")
-        list(APPEND TEST_STATIC_LINK_LIBS paimon_jindo_file_system_shared)
-        list(APPEND TEST_STATIC_LINK_LIBS "-Wl,--as-needed")
-    endif()
     if(PAIMON_ENABLE_LUMINA)
         list(APPEND TEST_STATIC_LINK_LIBS "-Wl,--no-as-needed")
         list(APPEND TEST_STATIC_LINK_LIBS paimon_lumina_index_shared)
@@ -444,9 +437,6 @@ config_summary_message()
 
 add_subdirectory(src/paimon)
 add_subdirectory(src/paimon/fs/local)
-if(PAIMON_ENABLE_JINDO)
-    add_subdirectory(src/paimon/fs/jindo)
-endif()
 add_subdirectory(src/paimon/format/blob)
 add_subdirectory(src/paimon/format/orc)
 add_subdirectory(src/paimon/format/parquet)
diff --git a/ci/scripts/build_paimon.sh b/ci/scripts/build_paimon.sh
index da28fef..45f1bd9 100755
--- a/ci/scripts/build_paimon.sh
+++ b/ci/scripts/build_paimon.sh
@@ -35,25 +35,11 @@ fi
 mkdir ${build_dir}
 pushd ${build_dir}
 
-ENABLE_LUMINA="ON"
-ENABLE_LANCE="ON"
-if [[ "${CC:-}" == *"gcc-8"* ]] || [[ "${CXX:-}" == *"g++-8"* ]]; then
-    ENABLE_LUMINA="OFF" # Lumina is only supported on GCC 9 or higher.
-    ENABLE_LANCE="OFF"
-    # Lance's prebuilt binaries can only be compiled on Ubuntu 22.04 and above
-    # which requires a higher version of glibc,
-    # but Ubuntu 22.04 and above no longer ships with gcc-8 by default.
-    # Consider supporting Lance from source compilation in the future
-fi
-
 CMAKE_ARGS=(
     "-G Ninja"
     "-DCMAKE_BUILD_TYPE=${build_type}"
     "-DPAIMON_BUILD_TESTS=ON"
-    "-DPAIMON_ENABLE_LANCE=${ENABLE_LANCE}"
-    "-DPAIMON_ENABLE_JINDO=ON"
-    "-DPAIMON_ENABLE_LUMINA=${ENABLE_LUMINA}"
-    "-DPAIMON_ENABLE_LUCENE=ON"
+    "-DPAIMON_ENABLE_LUCENE=OFF"
 )
 
 if [[ "${enable_sanitizer}" == "true" ]]; then
diff --git a/cmake_modules/ThirdpartyToolchain.cmake 
b/cmake_modules/ThirdpartyToolchain.cmake
index 669301b..fc4f31c 100644
--- a/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cmake_modules/ThirdpartyToolchain.cmake
@@ -281,56 +281,6 @@ else()
     endif()
 endif()
 
-if(APPLE)
-    set(JINDOSDK_C_DYNAMIC_LIB_NAME 
"jindosdk_c.${PAIMON_JINDOSDK_C_BUILD_VERSION}")
-    set(JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME}.dylib")
-    if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
-        set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
-            "${PAIMON_JINDOSDK_C_MACOS_X86_64_BUILD_SHA256_CHECKSUM}")
-        if(DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL})
-            set(JINDOSDK_C_SOURCE_URL 
"$ENV{PAIMON_JINDOSDK_C_MACOS_X86_64_URL}")
-        else()
-            set_urls(JINDOSDK_C_SOURCE_URL
-                     
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-x86_64.tar.gz";
-            )
-        endif()
-    elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64")
-        set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
-            "${PAIMON_JINDOSDK_C_MACOS_AARCH64_BUILD_SHA256_CHECKSUM}")
-        if(DEFINED ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL})
-            set(JINDOSDK_C_SOURCE_URL 
"$ENV{PAIMON_JINDOSDK_C_MACOS_AARCH64_URL}")
-        else()
-            set_urls(JINDOSDK_C_SOURCE_URL
-                     
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-macos-11_0-aarch64.tar.gz";
-            )
-        endif()
-    endif()
-else()
-    set(JINDOSDK_C_DYNAMIC_LIB_NAME "jindosdk_c")
-    set(JINDOSDK_C_DYNAMIC_LIB_FILE "lib${JINDOSDK_C_DYNAMIC_LIB_NAME}.so")
-    if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|amd64|AMD64")
-        set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
-            "${PAIMON_JINDOSDK_C_LINUX_X86_64_BUILD_SHA256_CHECKSUM}")
-        if(DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL})
-            set(JINDOSDK_C_SOURCE_URL 
"$ENV{PAIMON_JINDOSDK_C_LINUX_X86_64_URL}")
-        else()
-            set_urls(JINDOSDK_C_SOURCE_URL
-                     
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux.tar.gz";
-            )
-        endif()
-    elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "aarch64|arm64|ARM64")
-        set(JINDOSDK_C_BUILD_SHA256_CHECKSUM
-            "${PAIMON_JINDOSDK_C_LINUX_AARCH64_BUILD_SHA256_CHECKSUM}")
-        if(DEFINED ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL})
-            set(JINDOSDK_C_SOURCE_URL 
"$ENV{PAIMON_JINDOSDK_C_LINUX_AARCH64_URL}")
-        else()
-            set_urls(JINDOSDK_C_SOURCE_URL
-                     
"https://jindodata-binary.oss-cn-shanghai.aliyuncs.com/release/${PAIMON_JINDOSDK_C_BUILD_VERSION}/jindosdk-${PAIMON_JINDOSDK_C_BUILD_VERSION}-linux-el7-aarch64.tar.gz";
-            )
-        endif()
-    endif()
-endif()
-
 set(EP_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
 set(EP_C_FLAGS "${CMAKE_C_FLAGS}")
 string(REPLACE "-Wglobal-constructors" "" EP_CXX_FLAGS ${EP_CXX_FLAGS})
@@ -1155,97 +1105,6 @@ macro(build_lz4)
     add_dependencies(lz4 lz4_ep)
 endmacro()
 
-macro(build_jindosdk_c)
-    message(STATUS "Building jindosdk-c from precompiled package")
-
-    set(JINDOSDK_C_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/jindosdk_ep-install")
-    set(JINDOSDK_C_HOME "${JINDOSDK_C_PREFIX}")
-    set(JINDOSDK_C_INCLUDE_DIR "${JINDOSDK_C_PREFIX}/include")
-    set(JINDOSDK_C_LIB_DIR "${JINDOSDK_C_PREFIX}/lib/native")
-    set(JINDOSDK_C_DYNAMIC_LIB 
"${JINDOSDK_C_LIB_DIR}/${JINDOSDK_C_DYNAMIC_LIB_FILE}")
-
-    # Extract and install jindosdk from precompiled package
-    externalproject_add(jindosdk_ep
-                        URL ${JINDOSDK_C_SOURCE_URL}
-                        URL_HASH "SHA256=${JINDOSDK_C_BUILD_SHA256_CHECKSUM}"
-                        ${THIRDPARTY_LOG_OPTIONS}
-                        CONFIGURE_COMMAND ""
-                        BUILD_COMMAND ""
-                        INSTALL_COMMAND bash -c
-                                        "cp -r <SOURCE_DIR>/include/* 
${JINDOSDK_C_INCLUDE_DIR}"
-                        COMMAND bash -c
-                                "cp -r 
<SOURCE_DIR>/lib/native/${JINDOSDK_C_DYNAMIC_LIB_FILE}* ${JINDOSDK_C_LIB_DIR}"
-                        BUILD_BYPRODUCTS "${JINDOSDK_C_DYNAMIC_LIB}")
-
-    # The include directory must exist before it is referenced by a target.
-    file(MAKE_DIRECTORY "${JINDOSDK_C_INCLUDE_DIR}")
-    file(MAKE_DIRECTORY "${JINDOSDK_C_LIB_DIR}")
-
-    add_library(jindosdk::c_sdk SHARED IMPORTED)
-    set_target_properties(jindosdk::c_sdk
-                          PROPERTIES IMPORTED_LOCATION 
"${JINDOSDK_C_DYNAMIC_LIB}"
-                                     INTERFACE_INCLUDE_DIRECTORIES
-                                     "${JINDOSDK_C_INCLUDE_DIR}")
-    list(APPEND JINDOSDK_INCLUDE_DIR ${JINDOSDK_C_INCLUDE_DIR})
-
-    add_dependencies(jindosdk::c_sdk jindosdk_ep)
-    install(DIRECTORY "${JINDOSDK_C_LIB_DIR}/"
-            DESTINATION ${CMAKE_INSTALL_LIBDIR}
-            FILES_MATCHING
-            PATTERN "${JINDOSDK_C_DYNAMIC_LIB_FILE}*")
-
-endmacro()
-
-macro(build_jindosdk_nextarch)
-    message(STATUS "Building jindosdk-nextarch from local source")
-
-    set(JINDOSDK_NEXTARCH_PREFIX
-        "${CMAKE_CURRENT_BINARY_DIR}/jindosdk-nextarch_ep-install")
-    set(JINDOSDK_NEXTARCH_HOME "${JINDOSDK_NEXTARCH_PREFIX}")
-    set(JINDOSDK_NEXTARCH_INCLUDE_DIR "${JINDOSDK_NEXTARCH_PREFIX}/include")
-    set(JINDOSDK_NEXTARCH_LIB_DIR "${JINDOSDK_NEXTARCH_PREFIX}/lib")
-    set(JINDOSDK_NEXTARCH_SOURCE_DIR 
"${CMAKE_SOURCE_DIR}/third_party/jindosdk-nextarch")
-    set(JINDOSDK_NEXTARCH_STATIC_LIB
-        "${JINDOSDK_NEXTARCH_LIB_DIR}/libjindosdk-nextarch.a")
-
-    # Get jindosdk dependencies (headers and dynamic library)
-    get_target_property(JINDOSDK_C_INCLUDE_DIR jindosdk::c_sdk
-                        INTERFACE_INCLUDE_DIRECTORIES)
-    get_target_property(JINDOSDK_C_LIBRARY_LOCATION jindosdk::c_sdk 
IMPORTED_LOCATION)
-    get_filename_component(JINDOSDK_C_DIR_ROOT "${JINDOSDK_C_INCLUDE_DIR}" 
DIRECTORY)
-
-    # Compile flags for jindosdk-nextarch
-    set(JINDOSDK_NEXTARCH_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS}")
-    set(JINDOSDK_NEXTARCH_CMAKE_C_FLAGS "${EP_C_FLAGS}")
-    set(JINDOSDK_NEXTARCH_CMAKE_ARGS
-        ${EP_COMMON_CMAKE_ARGS}
-        "-DCMAKE_INSTALL_PREFIX=${JINDOSDK_NEXTARCH_PREFIX}"
-        "-DCMAKE_CXX_FLAGS=${JINDOSDK_NEXTARCH_CMAKE_CXX_FLAGS}"
-        "-DCMAKE_C_FLAGS=${JINDOSDK_NEXTARCH_CMAKE_C_FLAGS}"
-        -DJINDOSDK_ROOT=${JINDOSDK_C_DIR_ROOT}
-        -DJINDOSDK_LIBRARY_NAME=${JINDOSDK_C_DYNAMIC_LIB_NAME})
-
-    externalproject_add(jindosdk-nextarch_ep
-                        SOURCE_DIR ${JINDOSDK_NEXTARCH_SOURCE_DIR}
-                        CMAKE_ARGS ${JINDOSDK_NEXTARCH_CMAKE_ARGS}
-                        BUILD_BYPRODUCTS "${JINDOSDK_NEXTARCH_STATIC_LIB}"
-                        DEPENDS jindosdk::c_sdk ${THIRDPARTY_LOG_OPTIONS})
-
-    # The include directory must exist before it is referenced by a target.
-    file(MAKE_DIRECTORY "${JINDOSDK_NEXTARCH_INCLUDE_DIR}")
-    file(MAKE_DIRECTORY "${JINDOSDK_NEXTARCH_LIB_DIR}")
-
-    add_library(jindosdk::nextarch STATIC IMPORTED)
-    set_target_properties(jindosdk::nextarch
-                          PROPERTIES IMPORTED_LOCATION 
"${JINDOSDK_NEXTARCH_STATIC_LIB}"
-                                     INTERFACE_INCLUDE_DIRECTORIES
-                                     "${JINDOSDK_NEXTARCH_INCLUDE_DIR}")
-    target_link_libraries(jindosdk::nextarch INTERFACE jindosdk::c_sdk pthread 
dl)
-    list(APPEND JINDOSDK_INCLUDE_DIR ${JINDOSDK_NEXTARCH_INCLUDE_DIR})
-
-    add_dependencies(jindosdk::nextarch jindosdk-nextarch_ep)
-endmacro()
-
 macro(build_protobuf)
     message(STATUS "Building protobuf from source")
     set(PROTOBUF_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/protobuf_ep-install")
@@ -1813,10 +1672,6 @@ if(PAIMON_ENABLE_ORC)
     resolve_dependency(Protobuf)
     resolve_dependency(ORC)
 endif()
-if(PAIMON_ENABLE_JINDO)
-    build_jindosdk_c()
-    build_jindosdk_nextarch()
-endif()
 if(PAIMON_ENABLE_LUCENE)
     build_boost()
     build_lucene()
diff --git a/docs/source/basic_concepts.rst b/docs/source/basic_concepts.rst
index 10143e9..a773fd2 100644
--- a/docs/source/basic_concepts.rst
+++ b/docs/source/basic_concepts.rst
@@ -55,7 +55,7 @@ the corresponding snapshot.
 Data Files
 ---------------------------
 Data files are grouped by partitions. Currently, Paimon supports using parquet
-(default), orc and lance as data file’s format.
+(default) and orc as data file’s format.
 
 .. note::
    avro write as a data file format is not supported yet.
diff --git a/docs/source/build_system.rst b/docs/source/build_system.rst
index 1f3f325..96ae92b 100644
--- a/docs/source/build_system.rst
+++ b/docs/source/build_system.rst
@@ -82,17 +82,14 @@ Paimon provides a set of built-in optional plugins that you 
can link to as neede
   - ``paimon_orc_file_format_shared`` / ``paimon_orc_file_format_static``
   - ``paimon_avro_file_format_shared`` / ``paimon_avro_file_format_static``
   - ``paimon_blob_file_format_shared`` / ``paimon_blob_file_format_static``
-  - ``paimon_lance_file_format_shared`` / ``paimon_lance_file_format_static``
 
 - File system plugins:
 
   - ``paimon_local_file_system_shared`` / ``paimon_local_file_system_static``
-  - ``paimon_jindo_file_system_shared`` / ``paimon_jindo_file_system_static``
 
 - Index plugins:
 
   - ``paimon_file_index_shared`` / ``paimon_file_index_static``
-  - ``paimon_lumina_index_shared`` / ``paimon_lumina_index_static``
 
 .. note::
 
diff --git a/docs/source/building.rst b/docs/source/building.rst
index 1b79175..f63df31 100644
--- a/docs/source/building.rst
+++ b/docs/source/building.rst
@@ -122,10 +122,7 @@ several optional system components which you can opt into 
building by passing
 boolean flags to ``cmake``.
 
 * ``-DPAIMON_ENABLE_ORC=ON``: Paimon integration with Apache ORC
-* ``-DPAIMON_ENABLE_LANCE=ON``: Paimon integration with Lance
 * ``-DPAIMON_ENABLE_AVRO=ON``: Apache Avro libraries and Paimon integration
-* ``-DPAIMON_ENABLE_JINDO=ON``: Support for Alibaba Jindo filesystems
-* ``-DPAIMON_ENABLE_LUMINA=ON``: Support for Lumina vector index, lumina is 
only supported on gcc9 or higher.
 
 Third-party dependency source
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 052c2c2..0874aaf 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -30,10 +30,11 @@
 # 
https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
 
 import os
+import datetime
 
-project = "C++ Paimon"
-copyright = "2024-present The Apache Software Foundation"
-author = "The Apache Software Foundation"
+project = u'C++ Paimon'
+copyright = f'2024-{datetime.datetime.now().year} Apache Software Foundation'
+author = u'Apache Software Foundation'
 
 # -- General configuration ---------------------------------------------------
 # 
https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
diff --git a/docs/source/user_guide/global_index.rst 
b/docs/source/user_guide/global_index.rst
index 5cb057a..02a13c9 100644
--- a/docs/source/user_guide/global_index.rst
+++ b/docs/source/user_guide/global_index.rst
@@ -26,7 +26,6 @@ Paimon supports multiple global index types:
 - **BTree Index**: An efficient index based on multi-level SST files for 
scalar column lookups.
 - **Range Bitmap Index**: A range bitmap index optimized for range predicates 
on ordered scalar columns. Extends the bitmap approach by encoding value 
ordering, enabling efficient less-than, greater-than, and range conditions.
 - **Lucene Index**: A full-text search index powered by Lucene++. Supports 
tokenized text search with multiple modes including match-all, match-any, 
phrase, prefix, and wildcard queries.
-- **Vector Index (Lumina)**: An approximate nearest neighbor (ANN) index 
powered by Lumina for vector similarity search with configurable distance 
metrics.
 
 Global indexes work on top of Data Evolution tables. To use global indexes, 
your table must have:
 
@@ -86,10 +85,3 @@ search modes including match-all, match-any, phrase, prefix, 
and wildcard querie
 - **Environment Variable**: ``PAIMON_JIEBA_DICT_DIR``
 
   - **Description**: Specifies the directory containing Jieba dictionary files 
for Chinese text tokenization. At runtime, the system first checks this 
environment variable; if not set, it falls back to the compile-time 
``JIEBA_TEST_DICT_DIR`` macro (only available in test builds). If neither is 
available, will fail with an error.
-
-Vector Index (Lumina)
----------------------
-
-An approximate nearest neighbor (ANN) index powered by Lumina for vector 
similarity search.
-Supports high-dimensional vector search with configurable distance metrics and 
encoding strategies.
-For more configurations, please refer to the third_party/lumina/reference 
directory.
diff --git a/src/paimon/testing/utils/CMakeLists.txt 
b/src/paimon/testing/utils/CMakeLists.txt
index 96281f8..453f963 100644
--- a/src/paimon/testing/utils/CMakeLists.txt
+++ b/src/paimon/testing/utils/CMakeLists.txt
@@ -24,6 +24,7 @@ if(PAIMON_BUILD_TESTS)
                    DEPENDENCIES
                    paimon_static
                    arrow
+                   GTest::gtest
                    STATIC_LINK_LIBS
                    paimon_static
                    ${GTEST_LINK_TOOLCHAIN})


Reply via email to