Skip to content

chore(release): 0.8.0 - #24

Merged
chinaux merged 1 commit into
mainfrom
release/v0.8.0
Oct 21, 2026
Merged

chinaux merged 1 commit into
mainfrom
release/v0.8.0

Conversation

@chinaux

@chinaux chinaux commented Oct 21, 2026

Copy link
Copy Markdown
Collaborator

Bump the workspace from 0.7.2 to 0.8.0 so the v0.8.0 tag can be cut.

release.yml and publish-crates.yml both verify that zvec-sys/Cargo.toml, zvec/Cargo.toml and zvec-build/Cargo.toml match the tag before doing anything, so this has to land on main first.

Why 0.8.0 (breaking)

#21 (6949471) adapted to upstream zvec embedding cppjieba's default dictionary and HMM model into libzvec_c_api as LZ4-compressed arrays. That deleted four C-API functions and, with them, the corresponding Rust surface:

  • ConfigBuilder::jieba_dict_dir
  • set_default_jieba_dict_dir / get_default_jieba_dict_dir
  • the ZVEC_RUST_JIEBA_DICT_DIR build-time env
  • data/jieba_dict staging in zvec-rust-build and in the prebuilt SDK tarballs

A dictionary directory is now resolved by the engine itself as per-field extra_params["jieba_dict_dir"] > ZVEC_JIEBA_DICT_DIR > the embedded default. Code that called any of the removed APIs has to be updated; code that relied on the default keeps working with no dictionary files on disk.

0.8.0 also lines up with the upstream v0.8.0 series the vendor submodule tracks — currently v0.8.0-beta2 = 8397071 = upstream main HEAD.

Also new since 0.7.2

Changes

File Change
Cargo.toml workspace.package.version 0.7.2 → 0.8.0
zvec/Cargo.toml zvec-rust-sys requirement 0.7.2 → 0.8.0
Cargo.lock regenerated for the four workspace members
README.md, README_CN.md zvec-rust / zvec-rust-build snippets → "0.8.0"

The two historical notes about releases up to v0.7.2 stamping macOS 14.0 on Apple Silicon are deliberately left alone — they describe past releases and are still true.

Validation

Local, macOS arm64:

cargo fmt --all -- --check                              clean
cargo clippy --workspace --all-targets -- -D warnings   clean
cargo test --workspace --lib                            119 + 8 passed, 0 failed
cargo publish -p zvec-rust-build --dry-run              packaged 6 files, verified
cargo publish -p zvec-rust-sys   --dry-run              packaged 8 files, verified

cargo publish -p zvec-rust --dry-run fails locally with failed to select a version for the requirement zvec-rust-sys = "^0.8.0" — expected, since the -sys crate is not on crates.io yet. publish-crates.yml handles this by publishing zvec-rust-build → zvec-rust-sys → waiting for it to appear → zvec-rust.

cargo package --list confirms no native artifacts are shipped: zvec-rust-sys packages 8 files (111.4 KiB) and zvec-rust 27, all Rust sources plus READMEs. The C library reaches users through the prebuilt tarballs that build-prebuilt.yml attaches to the GitHub Release.

Release sequence after this merges

  1. git tag v0.8.0 && git push origin v0.8.0 → release.yml calls build-prebuilt.yml (8 targets), verifies the manifests against the tag, then creates the GitHub Release with the tarballs.
  2. Once the Release exists, dispatch publish-crates.yml with tag: v0.8.0. Step 2 must come after step 1: the -sys build script resolves the prebuilt SDK from releases/download/v0.8.0/..., which does not exist until the Release is created.

Bump the workspace from 0.7.2 to 0.8.0 for the v0.8.0 tag.

This is a breaking release for the `jieba` FTS tokenizer. 6949471 adapted
to upstream zvec embedding cppjieba's default dictionary and HMM model
into libzvec_c_api as LZ4-compressed arrays, which deleted four C-API
functions and, with them, the corresponding Rust surface:

  ConfigBuilder::jieba_dict_dir
  set_default_jieba_dict_dir / get_default_jieba_dict_dir
  the ZVEC_RUST_JIEBA_DICT_DIR build-time env
  the data/jieba_dict staging in zvec-rust-build and in the prebuilt SDKs

A dictionary directory is now resolved by the engine itself as
per-field extra_params["jieba_dict_dir"] > ZVEC_JIEBA_DICT_DIR > the
embedded default, so code that called any of the removed APIs has to be
updated; code that relied on the default keeps working with no files on
disk. 0.8.0 also matches the upstream v0.8.0 series the vendor submodule
tracks (currently v0.8.0-beta2 = 8397071).

Also new since 0.7.2: `Collection::try_close` (6120ca9), which reports a
failed native close instead of leaving it to the `Drop` warning, and an
aarch64-pc-windows-msvc prebuilt (ec4ae91).

The two historical notes about releases up to v0.7.2 stamping macOS 14.0
on Apple Silicon are left as they are.

Verified locally: `cargo fmt --all -- --check`, `cargo clippy --workspace
--all-targets -- -D warnings`, unit tests 119 + 8, and
`cargo publish --dry-run` for zvec-rust-build and zvec-rust-sys. The
zvec-rust dry-run fails only on `zvec-rust-sys = "^0.8.0"` not being on
crates.io yet, which publish-crates.yml resolves by publishing the -sys
crate first and waiting for it to appear.
@chinaux
chinaux merged commit 1683610 into main Oct 21, 2026
17 of 18 checks passed
@chinaux
chinaux deleted the release/v0.8.0 branch October 21, 2026 03:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant