Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
cmake_minimum_required(VERSION 3.20)

project(RaBitQLib VERSION 0.7.1 LANGUAGES CXX)
project(RaBitQLib VERSION 0.7.2 LANGUAGES CXX)

include(CMakePackageConfigHelpers)
include(GNUInstallDirs)
Expand Down
10 changes: 7 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,13 @@ approximate nearest-neighbor search. See the [research papers](docs/docs/papers.

## News

- **v0.7.2:** Python type hints, expanded API documentation, path-like inputs,
clearer input errors, and concise index representations. Internal quantization
refactoring and streamlined regression checks preserve existing APIs and index formats.
See the [release notes](docs/docs/releases/0.7.2.md).
- **v0.7.0:** Modular C++ components, stable core API v1, optional
OpenMP for numerical components, and unified index counts. This documentation
targets 0.7.0; see the [upgrade notes](docs/docs/releases/0.7.0.md).
OpenMP for numerical components, and unified index counts. See the
[upgrade notes](docs/docs/releases/0.7.0.md).

## Vector indexes

Expand All @@ -44,7 +48,7 @@ settings, and limitations.
### Python

```bash
python -m pip install --upgrade "rabitqlib>=0.7.1"
python -m pip install --upgrade "rabitqlib>=0.7.2"
```

Wheels support CPython 3.11–3.14 on Linux x86-64/ARM64, Windows x86-64,
Expand Down
4 changes: 2 additions & 2 deletions docs/docs/cpp_integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,12 +58,12 @@ The core example is built as the `core_example` CMake target. For the GIST bench

The [core quantization v1 API](rabitq/core_api.md) has a C++ source-compatibility contract.
Other C++ APIs may evolve, and no cross-version C++ binary ABI is promised.
Pin the `v0.7.0` release and include RaBitQ-Library as a Git submodule:
Pin the `v0.7.2` release and include RaBitQ-Library as a Git submodule:

```bash
git submodule add https://github.com/VectorDB-NTU/RaBitQ-Library.git third_party/rabitqlib
git submodule update --init --recursive
git -C third_party/rabitqlib checkout v0.7.0
git -C third_party/rabitqlib checkout v0.7.2
git add third_party/rabitqlib
```

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ estimation into your own C++ search engine.</p>
</div>

```bash
python -m pip install "rabitqlib>=0.7.0"
python -m pip install "rabitqlib>=0.7.2"
```

[Installation and supported platforms](installation.md) ·
Expand Down Expand Up @@ -102,5 +102,5 @@ when choosing an index.
## Explore further

- [Algorithm overview](rabitq/rabitq.md) for the rotation, encoding, and scoring workflow.
- [RaBitQ Library 0.7.0 release notes](releases/0.7.0.md) for new APIs and upgrade guidance.
- [RaBitQ Library 0.7.2 release notes](releases/0.7.2.md) for the latest changes and upgrade guidance.
- [Papers and citations](papers.md) for the original RaBitQ method, its multi-bit extension, and SymphonyQG.
16 changes: 12 additions & 4 deletions docs/docs/installation.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Installation

Platform requirements and source installation for RaBitQ Library **0.7.0**.
Platform requirements and source installation for RaBitQ Library **0.7.2**.
For the first Python example, see [Quick Start](quick_start.md).

## Requirements
Expand Down Expand Up @@ -40,7 +40,7 @@ build can use scalar kernels without the FastScan CPU baseline.
## Python wheels

```bash
python -m pip install "rabitqlib>=0.7.0"
python -m pip install "rabitqlib>=0.7.2"
```

For changes from 0.6.0, see the [0.7.0 upgrade notes](releases/0.7.0.md).
Expand All @@ -50,13 +50,21 @@ Linux ARM64 and macOS ARM64 wheels bundle OpenMP, so wheel users do not
need a separate OpenMP installation.
Release wheels disable native CPU tuning and select supported kernels at runtime.

### Python editor support

Version 0.7.2 includes type declarations (`__init__.pyi`) and a `py.typed` marker
for editor completion and static type checking. Select the Python environment
where `rabitqlib` is installed. Index and clustering docstrings describe parameters,
defaults and returned arrays; use `help(IvfIndex)` or `help(RaBitQKMeans)` after
importing those classes. Array shapes and parameter ranges are still checked at runtime.

## Get the source

For Python source builds or C++ use, obtain the 0.7.0 checkout once. With Git
For Python source builds or C++ use, obtain the 0.7.2 checkout once. With Git
installed, run:

```bash
git clone --branch v0.7.0 --depth 1 https://github.com/VectorDB-NTU/RaBitQ-Library.git
git clone --branch v0.7.2 --depth 1 https://github.com/VectorDB-NTU/RaBitQ-Library.git
cd RaBitQ-Library
```

Expand Down
4 changes: 2 additions & 2 deletions docs/docs/quick_start.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Quick start

Build, search, save and reload a small IVF-RaBitQ index with Python. This guide describes
**0.7.0** and uses synthetic data, so no dataset download is required.
**0.7.2** and uses synthetic data, so no dataset download is required.
For C++, go directly to [C++ integration](cpp_integration.md).

## Install

```bash
python -m pip install "rabitqlib>=0.7.0"
python -m pip install "rabitqlib>=0.7.2"
```

Wheels support CPython 3.11–3.14 on Linux x86-64/ARM64, Windows x86-64 and
Expand Down
40 changes: 40 additions & 0 deletions docs/docs/releases/0.7.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# RaBitQ Library 0.7.2

This release improves Python API usability and consolidates internal quantization
code and regression checks.

## Python changes

- Packages include type declarations and `py.typed` for editor completion and
static checking. Index and clustering docstrings now describe parameters,
defaults, array shapes and returned values. See [editor support](../installation.md#python-editor-support).
- Index `save` and `load` accept `pathlib.Path` and `os.PathLike`, alongside
existing string, bytes and bytearray paths. Embedded null characters are
rejected before file access. See [file-path contracts](../index/usage.md#threading-and-file-paths).
- Invalid inputs report more context, including expected dimensions, actual
shapes or dtypes, and invalid cluster-ID positions.
- `repr(index)` summarizes index configuration, counts and build state without
searching or modifying the index. See [index counts](../index/usage.md#index-counts).

## Internal changes

Quantization paths share factor and threshold calculations and reuse prepared
residuals. Regression coverage includes numerical references, degenerate inputs,
Python boundaries and persistence. Test and CI consolidation reduces repeated
validation while retaining platform and installed-package checks. These changes
do not establish a new performance result; the published
[benchmarks](../benchmarks/bench.md) retain their recorded 0.7.1 provenance.

## Upgrading

From 0.7.1, existing public call forms and index file formats remain supported;
no index conversion is required. C++ component targets and the stable core API v1
remain unchanged. Rebuild C++ consumers with matching headers and libraries;
no cross-version C++ binary ABI is promised.

When upgrading from before 0.7.0, also follow the
[0.7.0 migration guide](../modular_migration.md) for component targets, headers
and index-count semantics.

Use the [installation guide](../installation.md) for supported platforms and
the [quick start](../quick_start.md) for a complete Python example.
1 change: 1 addition & 0 deletions docs/mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ nav:
- Installation: installation.md
- C++ Integration: cpp_integration.md
- Release notes:
- "0.7.2": releases/0.7.2.md
- "0.7.0": releases/0.7.0.md
- "0.6.0": releases/0.6.0.md
- RaBitQ:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"

[project]
name = "rabitqlib"
version = "0.7.1"
version = "0.7.2"
description = "RaBitQ Python bindings for indexes and clustering"
readme = "README.md"
requires-python = ">=3.11"
Expand Down
Loading