Commit Graph

77 Commits

Author SHA1 Message Date
rayx 5cd9178bf4
fix: add aio to nightly build (#469)
* fix: add aio to nightly build

* fix: fix nightly coverage

* fix: fix nightly coverage
2026-06-23 14:17:37 +08:00
dependabot[bot] 7ca09fcf54
ci(deps): bump actions/checkout from 6 to 7 (#507)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 10:40:01 +08:00
feihongxu0824 841b1ed3f9
fix: refactor parquet buffer cache ownership (#492) 2026-06-16 10:47:07 +08:00
egolearner 2a9837e33d
chore: clang-tidy check header file (#455) 2026-06-10 13:54:01 +08:00
feihongxu0824 4679a8f39d
feat: support zvec core-only build (#481) 2026-06-09 23:45:42 +08:00
feihongxu0824 b224b17653
fix: add cmake subproject integration check (#465) 2026-06-09 16:01:21 +08:00
egolearner 9fa1b4deb6
fix(build): fix RISC-V compile FastPFOR with SIMDe via patch (#470) 2026-06-08 14:44:07 +08:00
dependabot[bot] af88794463
ci(deps): bump actions/cache from 4 to 5 (#466) 2026-06-08 10:33:03 +08:00
dependabot[bot] 711461b16c
ci(deps): bump codecov/codecov-action from 6 to 7 (#467) 2026-06-08 10:31:16 +08:00
luoxiaojian 823b5e6824
fix: resolve compiler warnings and enable -Werror across all CI platforms (#460) 2026-06-05 14:51:37 +08:00
rayx e720c1fd20
feat: add diskann index (#369) 2026-06-04 20:52:43 +08:00
egolearner 355523a628
ci(windows): upgrade ilammy/msvc-dev-cmd, remove /MP and add sccache stats (#454)
- Upgrade ilammy/msvc-dev-cmd from v1 to v1.13.0 to resolve Node.js 20
  deprecation warning (affects 05-windows-build and build_wheel_on_windows)
- Remove /MP from antlr4 and protobuf patches to eliminate 332
  non-cacheable sccache calls caused by "multiple input files"
- Add sccache statistics steps after pip install and after C++ Tests to
  capture build and test compilation cache metrics separately
2026-06-03 14:16:35 +08:00
egolearner e91b7802f3
feat(ci): enable sccache on Windows and propagate compiler launcher to ExternalProject (#439)
feat(ci): enable sccache on Windows and propagate compiler launcher to ExternalProject

Windows CI builds were ~6-9x slower than other platforms (35-40 min vs
4-7 min) due to missing compiler cache. This commit enables sccache for
Windows and ensures all ExternalProject_Add dependencies (Arrow, lz4)
receive the compiler launcher on every platform.

Changes:

MSVC /Zi → /Z7 compatibility:
- Replace /Zi with /Z7 in root CMakeLists.txt for DEBUG and
  RELWITHDEBINFO configurations (MSVC cache variable level)
- Patch rocksdb, antlr4, and googletest source CMakeLists to replace
  hardcoded /Zi with /Z7 at the source, eliminating D9025 warnings
- Clear COMPILE_PDB_NAME on googletest targets to prevent CMake from
  adding /Fd<path>, which causes sccache to look for nonexistent .pdb
- Remove /FS (forced synchronous PDB writes) from Arrow ExternalProject
  MSVC flags — unnecessary with /Z7

Windows CI workflow:
- Add mozilla-actions/sccache-action@v0.0.10
- Set SCCACHE_GHA_ENABLED=true to use GitHub Actions Cache backend
- Pass CMAKE_C/CXX_COMPILER_LAUNCHER=sccache via --config-settings

Compiler launcher propagation:
- Propagate CMAKE_C/CXX_COMPILER_LAUNCHER to Arrow ExternalProject on
  all platforms (Windows, Linux, macOS, Android, iOS)
- Propagate to lz4 ExternalProject on Windows via CMAKE_ARGS, using
  CMP0141=NEW + CMAKE_MSVC_DEBUG_INFORMATION_FORMAT=Embedded for /Z7
2026-06-02 16:23:37 +08:00
Cuiys e1f6ada776
ci: limit main workflow to linux-x64 platform only on push to main (#448) 2026-06-02 15:48:29 +08:00
ihb2032 df447a54e2
Refactor CPU feature detection to use an explicit x86 whitelist (#258)
* fix(cpu_features): refactor architecture detection to explicit x86 whitelist

Currently, `cpu_features.cc` assumes any non-ARM architecture is x86/x64, which leads to a fatal missing `<cpuid.h>` error on architectures like RISC-V.
This commit refactors the preprocessor macros to explicitly whitelist x86 architectures (`__x86_64__`, `__i386__`, `_M_X64`, `_M_IX86`). All other architectures (RISC-V, ARM, etc.) will now safely fall back to the default zero-initialization, allowing cross-compilation to succeed.

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: Add RISE RISC-V runner

Introduce the RISC-V CI runner provided by the RISE project.
This enables automated testing and building for the RISC-V architecture.

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: use python 3.12 for RISC-V64

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: add RISC-V numpy dependencies

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: add RISC-V wheel cache

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: use pre-built RISE numpy wheel to speed up riscv builds

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: use pre-built RISE cmake wheel to speed up riscv builds

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: split RISC-V build and test into separate jobs

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: fix

Signed-off-by: ihb2032 <hebome@foxmail.com>

* ci: fix

Signed-off-by: ihb2032 <hebome@foxmail.com>

* Update hnsw_streamer_test.cc

* ci: add cache

Signed-off-by: ihb2032 <hebome@foxmail.com>

* Update hnsw_streamer_test.cc

* Update test_gil_release.py

* ci: schedule workflow to run overnight

---------

Signed-off-by: ihb2032 <hebome@foxmail.com>
Co-authored-by: ZeFeng Yin <yinzefeng.yzf@alibaba-inc.com>
2026-06-02 11:51:25 +08:00
egolearner 3e98314d7c
feat(ci): speed up clang-tidy CI workflow (#438)
- Add `clang_tidy_deps` CMake target that only builds generated headers
  (protobuf, Arrow, glog, gflags, lz4) instead of full `zvec_db`
- Run clang-tidy in parallel via `xargs -P $(nproc)` with per-file logs
- Split actions/cache into restore/save to ensure cache is saved even
  when clang-tidy fails, without caching incomplete build artifacts
- Shallow-clone submodules with `--depth 1`
- Bump ccache size from 100M to 500M
- Add `--quiet` to suppress noisy clang-tidy summary lines
- Remove redundant concurrency block from reusable workflow

Performance comparison (3 runs, same repo):

| Step            | Before  | After (cold) | After (warm) |
|-----------------|---------|--------------|--------------|
| Submodule clone | 66s     | 49s          | 28s          |
| Build deps      | 70s     | 21s          | 0s (skipped) |
| Cache restore   | 1s      | 1s           | 12s          |
| Total           | 3m03s   | 2m34s        | 1m46s        |

Dominant win: reduced build target (~49s). Headers cache adds ~9s net.
`--depth 1` contributes ~15s (with network variance).
2026-06-02 10:28:05 +08:00
feihongxu0824 18b79586a7
ci: skip timing-sensitive GIL test in coverage builds (#412)
The COVERAGE build type uses -O0 and gcov instrumentation, which slows
C++ query execution ~5-10x. This causes test_gil_released_during_query
to exceed its 0.5s timing threshold and fail with an inconclusive result.
2026-05-19 10:45:42 +08:00
egolearner a29b9b366c
chore: clang-tidy check fast quits if no cpp files changed (#396) 2026-05-13 10:03:26 +08:00
Cuiys 42958caef5
feat(test): enable parallel tests (#384)
- Set unique WORKING_DIRECTORY per test binary via cc_test()/cuda_test() to prevent filesystem path conflicts when running tests in parallel. Each test runs in ${CMAKE_BINARY_DIR}/test_tmp/${test_name}/.

- Enable parallel ctest execution in the unittest target with ProcessorCount-based --parallel flag (defaults to NPROC - 1).

- Set TEST_BINARY_DIR environment variable for crash recovery tests so they can locate helper binaries from isolated working directories.

- Update LocateDataGenerator() and LocateOptimizeGenerator() to search TEST_BINARY_DIR and TEST_BINARY_DIR/bin for helper executables.
2026-05-12 23:14:17 +08:00
Cuiys d91867e00e
ci: add ccache/sccache compilation caching to speed up CI builds (#360)
* ci: add ccache/sccache compilation caching to speed up CI builds

- Use hendrikmuhs/ccache-action@v1.2 for Linux/macOS/iOS/Android/clang-tidy
  (auto-installs ccache, manages cache, sets env vars, shows stats)
- Use mozilla-actions/sccache-action@v0.0.9 for Windows (MSVC compatible)
- Add CMAKE_C/CXX_COMPILER_LAUNCHER to all CMake build steps
- Exclude wheel build and nightly coverage workflows per decision

* ci: switch MacOS & Linux build from Unix Makefiles to Ninja generator

- Replace CMAKE_GENERATOR='Unix Makefiles' with 'Ninja' in pip build
- Replace 'make unittest -j' with 'cmake --build --target unittest --parallel'
- Add '-G Ninja' to C++ and C example cmake configure steps
- Replace 'make -j' with 'cmake --build --parallel' for examples
- Aligns with Windows and Android workflows which already use Ninja

* ci: enable parallel ctest execution with -j and --timeout

- Use CMake ProcessorCount module to detect available CPU cores
- Add -j ${NPROC} to ctest command for parallel test execution
- Add --timeout 300 to prevent individual tests from hanging CI
- Fallback to NPROC=1 when ProcessorCount returns 0
- iOS target unchanged (build-only, no test execution)

* Revert "ci: enable parallel ctest execution with -j and --timeout"

This reverts commit d196dac5f17b1f7cae443360c88bbd8c935dc145.

* fix(ci): remove sccache from Windows, fix cmake.define quote issues

Windows (05-windows-build.yml):
- Remove mozilla-actions/sccache-action: sccache incompatible with MSVC /FS flag
- Remove SCCACHE_GHA_ENABLED env var
- Remove CMAKE_C/CXX_COMPILER_LAUNCHER=sccache from build steps
- Remove 'Show sccache statistics' step
- MSVC /FS (global PDB concurrency flag) causes fatal C1041 when used with sccache

MacOS & Linux (03-macos-linux-build.yml):
- Fix cmake.define values: remove extra quotes around 'ccache' and 'ON'
- Bare values required: cmake.define.FOO=bar not cmake.define.FOO="bar"

* feat: cache key with platform and os

* ci: add compiler to ccache key to avoid cache pollution

* ci: optimize cache usage to reduce bloat

- Add max-size limits to all ccache configs (150M general, 300M Android,
  100M clang-tidy) to prevent unbounded cache growth
- Remove redundant iOS full build directory cache (~1.2 GB) since ccache
  already handles incremental compilation
- Fix iOS protoc cache key to use thirdparty/protobuf/** instead of
  src/**, avoiding unnecessary cache misses on business code changes

* ci: trigger CI run
2026-05-12 15:48:48 +08:00
egolearner 2b16ed39cd
chore: rm hnsw-rabitq searcher/streamer (#367)
* chore: rm hnsw-rabitq searcher/streamer

* fix clang-tidy

* fix
2026-04-23 10:20:46 +08:00
feihongxu0824 d9cf689ce1
ci: disable benchmark ci temp (#362) 2026-04-21 14:39:25 +08:00
feihongxu0824 bbe4ca7bae
minor: fix c example cmake and build c++ dynamic lib (#347) 2026-04-20 22:08:34 +08:00
kgeg401 1e25294c07
feat(ci): integrate clang-tidy for changed C/C++ files (#116)
* feat(ci): add clang-tidy checks for changed cpp files

* fix(ci): correct clang-tidy workflow heredoc indentation

* test: stabilize fp16 euclidean matrix comparison

* test: fix fp16 matrix CI and clang-tidy warnings

* ci: scope clang-tidy PR and filter compile-db files

* check nullptr only

* fix nullptr

* fix: format

* chore: ignore c

* fix: tests files

* fix: workflow

* fix: specify clang-tidy version

* fix: filter regex

* fix: more files

* fix: update version

* add thirdparty cache

* add pipeline dependency

* fix clang-tidy trigger

---------

Co-authored-by: kgeg401 <kgeg401@users.noreply.github.com>
Co-authored-by: jiliang.ljl <jiliang.ljl@alibaba-inc.com>
2026-04-20 20:14:21 +08:00
feihongxu0824 6737810190
ci: refact android ci (#330) 2026-04-15 15:37:51 +08:00
dependabot[bot] 8f2d0e30a1
ci(deps): bump actions/github-script from 8 to 9 (#334)
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-13 11:18:35 +08:00
feihongxu0824 41822413f3
fix: enhance ios ci (#332) 2026-04-10 18:10:30 +08:00
ZeFeng Yin 725519516d
Ci: fix coverage (#331) 2026-04-10 11:37:24 +08:00
feihongxu0824 30a20e14b0
feat: add iOS build support (#321)
* support ios build

* fix: ci

* fix: update build_ios.sh

* fix: pr

* fix: cmake minimum version

* fix: cmake minimum version

* fix: cmake minimum version in ci

* fix: add all test in ci

* fix: ci
2026-04-09 16:14:26 +08:00
dependabot[bot] eec0526650
ci(deps): bump android-actions/setup-android from 3 to 4 (#280)
Bumps [android-actions/setup-android](https://github.com/android-actions/setup-android) from 3 to 4.
- [Release notes](https://github.com/android-actions/setup-android/releases)
- [Commits](https://github.com/android-actions/setup-android/compare/v3...v4)

---
updated-dependencies:
- dependency-name: android-actions/setup-android
  dependency-version: '4'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ZeFeng Yin <yinzefeng.yzf@alibaba-inc.com>
Co-authored-by: feihongxu0824 <xufeihong.xfh@alibaba-inc.com>
2026-04-07 19:23:28 +08:00
dependabot[bot] 544fd1075e
ci(deps): bump kentaro-m/auto-assign-action from 2.0.0 to 2.0.2 (#278)
Bumps [kentaro-m/auto-assign-action](https://github.com/kentaro-m/auto-assign-action) from 2.0.0 to 2.0.2.
- [Release notes](https://github.com/kentaro-m/auto-assign-action/releases)
- [Commits](https://github.com/kentaro-m/auto-assign-action/compare/v2.0.0...v2.0.2)

---
updated-dependencies:
- dependency-name: kentaro-m/auto-assign-action
  dependency-version: 2.0.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ZeFeng Yin <yinzefeng.yzf@alibaba-inc.com>
Co-authored-by: feihongxu0824 <xufeihong.xfh@alibaba-inc.com>
2026-04-07 19:23:04 +08:00
dependabot[bot] cd3070bb0d
ci(deps): bump actions/github-script from 7 to 8 (#276)
Bumps [actions/github-script](https://github.com/actions/github-script) from 7 to 8.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](https://github.com/actions/github-script/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: ZeFeng Yin <yinzefeng.yzf@alibaba-inc.com>
Co-authored-by: feihongxu0824 <xufeihong.xfh@alibaba-inc.com>
2026-04-07 19:22:29 +08:00
dependabot[bot] 7647c06e7b
ci(deps): bump actions/download-artifact from 4 to 8 (#317)
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 4 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v4...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 10:01:46 +08:00
dependabot[bot] ed37abdaa8
ci(deps): bump actions/upload-artifact from 4 to 7 (#318)
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-04-07 10:01:16 +08:00
Jalin Wang ae13e9541b
fix(ci): wrong wheel version on Windows (#308)
use first-time setuptools-scm detected version to avoid leftover dir incfluence subsequent wheel version detection
2026-04-03 14:51:35 +08:00
Jalin Wang 2cb1a146fb
fix(ci): fix wheel version detection & windows wheel ci (#303) 2026-04-02 22:26:00 +08:00
feihongxu0824 3a9893ef31
chore: update codeowners (#269) 2026-04-02 16:12:07 +08:00
Jalin Wang ca4b893755
fix: misc fix for Windows(BUILD_SHARED_LIBS, CI) (#296) 2026-04-02 09:23:35 +08:00
feihongxu0824 dc8d1a586e
ci: ignore draft or wip pull request (#285) 2026-03-31 20:33:35 +08:00
lichen2015 ed8c010cfd
feat: add c language support (#167)
* init branch

Add GitHub Actions release workflow for C API

add release linux-arm64

remove c api version

refact some code

add api reference

* feat(c-api): add nullable/doc-result APIs for agency migration (#234)


* Flattened index parameters structure

* refact c api code

* remove RAII guard

* refact use opaque pointer pattern

* refact version info

* refact use pure opaque pointers

* use typedef instead of enum

* fix set_last_error

* fix build yml

* fix doc.h

* remove wheel exclude

* fix c msvc link

* remove release yml

* fix c link libstdc++

* fix c link libgcc

---------

Co-authored-by: Donny/강동윤 <kdy.1997.dev@gmail.com>
2026-03-31 18:00:08 +08:00
Jalin Wang 8182cfff93
feat: windows support (#216)
Preliminary support for Windows with remaining TODOs
2026-03-30 20:47:34 +08:00
dependabot[bot] cef9fbf2ab
ci(deps): bump codecov/codecov-action from 5 to 6 (#279)
Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 5 to 6.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 10:02:07 +08:00
dependabot[bot] b92c0a1a25
ci(deps): bump actions/checkout from 4 to 6 (#277)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-30 10:00:20 +08:00
feihongxu0824 209ef1fba8
ci: add issue auto assign workflow (#254) 2026-03-24 09:32:13 +08:00
feihongxu0824 c23ef686f3
ci: add macos-26-arm64 workflow (#253) 2026-03-23 21:57:48 +08:00
feihongxu0824 22cb3cc4b5
ci: auto pr assign by CODEOWNERS (#249)
* ci: auto pr assign by CODEOWNERS

* fix

* Update .github/workflows/community-pr-handler.yml

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* Update .github/workflows/auto-assign.yml

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>

* add python owners

---------

Co-authored-by: greptile-apps[bot] <165735046+greptile-apps[bot]@users.noreply.github.com>
2026-03-23 19:59:34 +08:00
egolearner 0489b8e598
build: add clang ci (#214)
* build: add clang ci

* add lscpu

* add clang ci

* install libomp-dev

* address comments
2026-03-23 09:54:35 +08:00
feihongxu0824 363f970da8
chore: android ci needs lint first (#240) 2026-03-18 16:16:49 +08:00
Cuiys 7bc4838aca
feat: buildwheel in ghrunner (#221) 2026-03-16 14:20:01 +08:00
rayx a7bfd6060d
refactor/march based reorganization (#193)
* add for march compatible test

* fix: remove MxN

* fix: add macro scope

* fix for android ci

* refactor: call euclidean via squared euclidean

* refactor: add match utility

* refactor: comment config out

* fix: fix dimension remainder

* fix: fix condition & config flags

* fix: remove redundant macros

* fix: fix condition error

* fix: fix macros

* fix: remove unnecessary macros

* fix: fix remaining code with vector

* fix: remove unnecessary codes

---------

Co-authored-by: Zefeng Yin <yinzefeng.yzf@alibaba-inc.com>
Co-authored-by: xufeihong.xfh <xufeihong.xfh@alibaba-inc.com>
2026-03-11 22:44:48 +08:00