Skip to content
Draft
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
Expand Up @@ -23,7 +23,7 @@ project(svs
# - /bindings/python/tests/test_common.py
# Manually keep in-sync with:
# - /bindings/python/setup.py
VERSION 0.4.0
VERSION 0.5.0
)

set(SVS_LIB svs_devel)
Expand Down
22 changes: 22 additions & 0 deletions HISTORY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,25 @@
# SVS 0.4.0 Release Notes

## Additions and Changes

* Native serialization support for Indexes (#300)

* Clang-21 compiler support with gcc-11 headers for shared library builds

* Amazonlinux2 support for shared/static library dropped

* Consolidated to publish only minimal necessary shared library (14 -> 6) and runtime bindings (2 -> 1) release artifacts

* Adaptive batch size heuristic for filtered search in Vamana, with new `filter_stop` early-exit parameter (#309)

* IVF runtime support for `IDFilter`-based filtered search and dynamic `set_intra_query_threads` adjustment after `train()`/`load()` (#322)

* IVF inter-query thread pool initialization now validates and clamps thread count against the number of centroids (#329)

* In-memory (mmap) stream index mapping with new `map_to_file` and `map_to_memory` APIs on `FlatIndex` and `VamanaIndex` (#310)

* Add get_distance and reconstruct_at to VamanaIndex API (#315)

# SVS 0.3.0 Release Notes

## Additions and Changes
Expand Down
22 changes: 12 additions & 10 deletions NEWS.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,23 @@
# SVS 0.4.0 Release Notes
# SVS 0.5.0 Release Notes

## Additions and Changes

* Native serialization support for Indexes (#300)
* New C API for SVS — index construction, search, and lifecycle management from C, including filtered TopK search, memory accounting (`get_memory_usage` / `get_memory_breakdown`), and index threadpool size control (#305, #306, #352, #354, #363, #370)

* Clang-21 compiler support with gcc-11 headers for shared library builds
* Experimental fine-grain concurrent Vamana index, `svs::index::vamana::concurrent::MutableVamanaIndex`, supporting lock-free search concurrent with `add_points`, `delete_entries`, and `consolidate` (#369)

* Amazonlinux2 support for shared/static library dropped
* LVQ and LeanVec dataset support for the fine-grain concurrent Vamana index

* Consolidated to publish only minimal necessary shared library (14 -> 6) and runtime bindings (2 -> 1) release artifacts
* `get_memory_usage()` added to VamanaIndex to report allocated bytes (#345)

* Adaptive batch size heuristic for filtered search in Vamana, with new `filter_stop` early-exit parameter (#309)
* Optional `blocksize_elements` added to `BlockingParameters` (#344)

* IVF runtime support for `IDFilter`-based filtered search and dynamic `set_intra_query_threads` adjustment after `train()`/`load()` (#322)
* `element_size()` added to LVQ and LeanVec datasets

* IVF inter-query thread pool initialization now validates and clamps thread count against the number of centroids (#329)
* `CompressedDataset` instantiations added to the shared library

* In-memory (mmap) stream index mapping with new `map_to_file` and `map_to_memory` APIs on `FlatIndex` and `VamanaIndex` (#310)
* Fixed LeanVec `is_pca` to derive centering from matrix equality rather than matrix presence

* Add get_distance and reconstruct_at to VamanaIndex API (#315)
* Fixed GCC-12.x prefetch-loop collapse in `greedy_search` neighbor prefetch (#361)

* `Blocked` class refactored to meet allocator requirements (#351)
2 changes: 1 addition & 1 deletion bindings/c/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.

cmake_minimum_required(VERSION 3.21)
project(svs_c_api VERSION 0.4.0 LANGUAGES CXX C)
project(svs_c_api VERSION 0.5.0 LANGUAGES CXX C)
set(TARGET_NAME svs_c_api)

include(GNUInstallDirs)
Expand Down
2 changes: 1 addition & 1 deletion bindings/cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.

cmake_minimum_required(VERSION 3.21)
project(svs_runtime VERSION 0.4.0 LANGUAGES CXX)
project(svs_runtime VERSION 0.5.0 LANGUAGES CXX)
set(TARGET_NAME svs_runtime)

# IVF requires MKL, so it's optional
Expand Down
2 changes: 1 addition & 1 deletion bindings/cpp/conda-recipe/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
# limitations under the License.


{% set version = '0.4.0' %}
{% set version = '0.5.0' %}
{% set buildnumber = 0 %}
{% set variant_suffix = environ.get('SUFFIX', '').replace('-', '_') %}

Expand Down
4 changes: 2 additions & 2 deletions bindings/cpp/include/svs/runtime/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@

#ifndef SVS_RUNTIME_VERSION_MINOR
/// Minor version number - incremented for backward-compatible feature additions
#define SVS_RUNTIME_VERSION_MINOR 4
#define SVS_RUNTIME_VERSION_MINOR 5
#endif

#ifndef SVS_RUNTIME_VERSION_PATCH
Expand All @@ -51,7 +51,7 @@

#ifndef SVS_RUNTIME_VERSION_STRING
/// Complete version string
#define SVS_RUNTIME_VERSION_STRING "0.4.0"
#define SVS_RUNTIME_VERSION_STRING "0.5.0"
#endif

#ifndef SVS_RUNTIME_API_VERSION
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@

setup(
name="scalable-vs",
version="0.4.0",
version="0.5.0",
description="Scalable Vector Search (SVS) is a performance library for vector similarity search.",
long_description=long_description,
long_description_content_type="text/markdown",
Expand Down
2 changes: 1 addition & 1 deletion bindings/python/tests/test_common.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def tearDown(self):
#####

def test_version(self):
self.assertEqual(svs.library_version(), "v0.4.0")
self.assertEqual(svs.library_version(), "v0.5.0")

def test_conversion(self):
# signed
Expand Down
4 changes: 2 additions & 2 deletions tests/svs/lib/version.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,6 @@ CATCH_TEST_CASE("Version Numbers", "[lib][versions]") {

// Keep in-sync with CMakeLists.txt
CATCH_TEST_CASE("Global Version", "[lib][versions]") {
static_assert(svs::lib::svs_version == svs::lib::Version(0, 4, 0), "Version mismatch!");
CATCH_REQUIRE(svs::lib::svs_version == svs::lib::Version(0, 4, 0));
static_assert(svs::lib::svs_version == svs::lib::Version(0, 5, 0), "Version mismatch!");
CATCH_REQUIRE(svs::lib::svs_version == svs::lib::Version(0, 5, 0));
}
Loading