# iqdb-build v0.6.0 — Entering the validation band (alpha)

**Into the pre-1.0 home stretch.** The builder has been feature-complete since
v0.4.0 and API-frozen since v0.5.0. v0.6.0 opens the alpha band and adds an
end-to-end soak test. There is no API change — this release is purely additive,
and the version is aligned with the iQDB family line (`iqdb-flat` / `iqdb-hnsw`
are at `0.6.0`).

## What is iqdb-build?

The bulk-construction layer of the iQDB vector database — generic over
`iqdb_index::Index`, so the same builder constructs and merges flat, HNSW, IVF, or
custom backends. It splits input into shards, builds them in parallel, and merges
them back into one index.

## What's in 0.6.0

- **`tests/consumer_simulation.rs`** — an end-to-end soak test that drives the
  whole public surface the way the `iqdb` engine would: one-call `build`,
  configured `IndexBuilder`, parallel sharded `build_parallel`, the full
  `build_merged` pipeline with an `on_progress` callback, incremental
  `build_into`, `merge`, and search/delete on the result — asserting that the
  parallel-merged index matches a sequential build.

The test runs against an in-crate index so the crate's suite stays
**self-contained**, which is what its CI requires (the standalone repo is built
and tested on its own, without the sibling crates checked out or published).

## Where cross-crate validation lives

Validating the builder against the *real* `iqdb-flat` and `iqdb-hnsw` backends
needs all the crates present at once. That belongs in `iqdb-eval` / the engine
workspace — not in this standalone crate's tests — the same split `iqdb-flat`
records for its recall oracle. (A v0.6.0 attempt to wire the siblings in as path
dev-dependencies broke the standalone CI, since `../iqdb-flat` does not exist on
the runner; it was reverted in favour of this self-contained approach.)

## Breaking changes

**None.** The public API is unchanged from the 0.5.0 freeze.

## Verification

```bash
cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --all-features        # unit + property + loom-gated + soak + doctests
RUSTDOCFLAGS="-D warnings" cargo doc --no-deps --all-features
cargo deny check
```

Tested across the CI matrix (Linux, macOS, Windows) on stable and the 1.87 MSRV.

## What's next

- **0.7.x → 0.9.x — beta / RC.** Integrate against the `iqdb` engine (in the
  engine workspace), broader testing, final benchmarks, and doc polish.
- **1.0.0 — stable**, once the Definition of Done holds and the builder has proven
  itself driving the engine's bulk-ingestion path.

## Installation

```toml
[dependencies]
iqdb-build = "0.6"
```

## Documentation

- [README](https://github.com/jamesgober/iqdb-build/blob/main/README.md)
- [API reference](https://github.com/jamesgober/iqdb-build/blob/main/docs/API.md)
- [ROADMAP](https://github.com/jamesgober/iqdb-build/blob/main/dev/ROADMAP.md)
- [Standards (REPS)](https://github.com/jamesgober/iqdb-build/blob/main/REPS.md)
- [CHANGELOG](https://github.com/jamesgober/iqdb-build/blob/main/CHANGELOG.md)

---

**Full diff:** [`v0.5.0...v0.6.0`](https://github.com/jamesgober/iqdb-build/compare/v0.5.0...v0.6.0).
**Changelog:** [`CHANGELOG.md`](https://github.com/jamesgober/iqdb-build/blob/main/CHANGELOG.md).
