Commit Graph

58 Commits

Author SHA1 Message Date
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
dependabot[bot] 23ca093fc7
ci(deps): bump actions/cache from 3 to 5 (#204)
Bumps [actions/cache](https://github.com/actions/cache) from 3 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  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-09 18:42:01 +08:00
dependabot[bot] 95acaa38ee
ci(deps): bump actions/checkout from 4 to 6 (#203)
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-09 18:41:26 +08:00
dependabot[bot] f5a094d232
ci(deps): bump actions/setup-java from 4 to 5 (#202)
Bumps [actions/setup-java](https://github.com/actions/setup-java) from 4 to 5.
- [Release notes](https://github.com/actions/setup-java/releases)
- [Commits](https://github.com/actions/setup-java/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-java
  dependency-version: '5'
  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-09 17:54:08 +08:00
feihongxu0824 43e3eeac40
feat: support android platform cross build (#90) 2026-03-04 16:42:23 +08:00
Cuiys 9eb68ee061
fix: fix main ci only trigger linux64 platform (#187)
* fix: fix main ci only trigger linux64 platform

* Fix YAML syntax for build-and-test job name
2026-02-28 16:46:07 +08:00
Cuiys 120d9e3e68
Update Python version in workflow to 3.10 (#186) 2026-02-28 14:39:16 +08:00
Maxime Grenu 3c38a8b94c
feat: add Python 3.13 and 3.14 support (#164)
* feat: add Python 3.13 and 3.14 support

- Add Python 3.13 and 3.14 classifiers to pyproject.toml
- Add cp313 and cp314 cibuildwheel build targets
- Add Python 3.13 and 3.14 to CI test matrix
- Enable allow-prereleases for setup-python (required for 3.14 alpha)

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* ci: retrigger (flaky Int4SquaredEuclideanMetric tolerance on linux-x64)

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* fix: widen Int4 distance matrix test tolerance from 1e-4 to 5e-4

Int4 quantization uses only 16 levels per dimension (vs 256 for Int8),
resulting in larger rounding errors in distance computations. The
previous 1e-4 absolute tolerance was too tight and caused flaky
failures (observed diff: 1.22e-4 on values ~523.77). The Int8 test
already has this EXPECT_NEAR commented out, relying solely on the
relative IsAlmostEqual check.

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

* fix: remove allow-prereleases flag for Python 3.14

Python 3.14 is now a stable release (v3.14.3, released Oct 2025),
so allow-prereleases: true is no longer needed in setup-python.

Signed-off-by: Maxime Kawawa-Beaudan <maxkb@meta.com>
Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>

---------

Signed-off-by: Maxime Grenu <maxime.grenu@gmail.com>
Signed-off-by: Maxime Kawawa-Beaudan <maxkb@meta.com>
2026-02-28 14:37:43 +08:00
feihongxu0824 753e3a3fbd
fix[build]: default build from source with -march=native (#184) 2026-02-28 12:21:37 +08:00
Cuiys 88439c69e1
feat(ci): ci workflow with github-hosted runner (#171)
* feat: linux ci with github runner

* fix: add CFLAGS with -march=native

* fix: fix linux x86 ci

* fix: with zen3 in x86 ci

* feat: nightly report with github-runner

* feat: refactor ci workflow

* feat: rename workflow

* feat: rename job

* feat: update ci badge

* feat: remove python coverage
2026-02-26 10:47:55 +08:00
Salman Chishti 17d931fabf
Upgrade GitHub Actions to latest versions (#130)
Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
2026-02-25 19:01:39 +08:00
Salman Chishti d1be135a00
Upgrade GitHub Actions for Node 24 compatibility (#129)
Signed-off-by: Salman Muin Kayser Chishti <13schishti@gmail.com>
2026-02-25 18:09:55 +08:00
Jalin Wang 32a5662460
ci: continuous benching (#110) 2026-02-25 11:22:18 +08:00
Cuiys e60ae09e5a
feat(ci): macos ci with github-runner (#94) 2026-02-13 14:41:57 +08:00
Cuiys 1fa15ce96b
feat: support ai extension (#88) 2026-02-12 18:33:41 +08:00
Cuiys dc088a4446
feat: support linux arm64 ci and release (#71) 2026-02-10 14:17:49 +08:00
feihongxu0824 efc6f3f7ce
fix: add c++ example to macos/linux ci (#86) 2026-02-09 23:31:56 +08:00