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
17 changes: 17 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,22 @@
# Changelog

## 0.9.1 - Unreleased

### Added

- Added feature-gated compact point storage and its correctness, fault, and
benchmark coverage. Production memory and performance qualification remains
pending; historical diagnostics retain their original source and scope.

### Fixed

- Preserved absolute SET KEEPTTL deadlines across delayed writes and cold
overflow values.
- Restored strict CUDA feature builds and explicit rejection of incomplete
benchmark summary rows.
- Aligned package versions and internal dependency minimums with the new
compact-storage features, including pre-publication archive validation.

## 0.9.0 - 2026-07-29

### Changed
Expand Down
16 changes: 8 additions & 8 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 4 additions & 4 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ members = [
resolver = "3"

[workspace.package]
version = "0.9.0"
version = "0.9.1"
edition = "2024"
authors = ["Devon Tietjen <devon@eden.dev>"]
homepage = "https://github.com/d-tietjen/shard-kv"
Expand All @@ -21,9 +21,9 @@ repository = "https://github.com/d-tietjen/shard-kv"
rust-version = "1.93"

[workspace.dependencies]
shardcache = { path = "crates/shardcache", version = "0.9.0" }
shardmap = { path = "crates/shardmap", version = "0.9.0", default-features = false }
shardcache-client-rs = { path = "crates/shardcache-client-rs", version = "0.9.0" }
shardcache = { path = "crates/shardcache", version = "0.9.1" }
shardmap = { path = "crates/shardmap", version = "0.9.1", default-features = false }
shardcache-client-rs = { path = "crates/shardcache-client-rs", version = "0.9.1" }
fast-telemetry = "=0.9.0"

ahash = { version = "0.8.12", default-features = false, features = ["std", "runtime-rng"] }
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Embedded `shardmap`:

```toml
[dependencies]
shardmap = "0.9.0"
shardmap = "0.9.1"
```

```rust
Expand Down
7 changes: 7 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,13 @@ release policy explicitly call for it.

## Publishing

Choose an unpublished package version and require that version of the internal
dependencies that provide the release's features. Before the registry handoff,
`./scripts/check-publish-artifacts.sh` validates the archives and consumers with
temporary local patches for both `shardmap` and `shardcache-client-rs`. These
patches do not publish either dependency. Each ordinary publish dry run below
requires its dependencies to have reached the crates.io index in this order.

```bash
cargo publish -p shardcache-client-rs --dry-run
cargo publish -p shardcache-client-rs
Expand Down
6 changes: 3 additions & 3 deletions crates/shardcache-client-rs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Use the published crate from crates.io:

```toml
[dependencies]
shardcache-client-rs = "0.9.0"
shardcache-client-rs = "0.9.1"
```

From a workspace checkout, use a path dependency:
Expand Down Expand Up @@ -200,7 +200,7 @@ without enabling the complete optional Redis command API:

```toml
[dependencies]
shardcache-client-rs = { version = "0.9.0", features = ["vector"] }
shardcache-client-rs = { version = "0.9.1", features = ["vector"] }
```

`VSIM` always requests `WITHSCORES WITHATTRIBS`, giving every successful query
Expand Down Expand Up @@ -282,7 +282,7 @@ building RESP request frames in user code.

```toml
[dependencies]
shardcache-client-rs = { version = "0.9.0", features = ["redis"] }
shardcache-client-rs = { version = "0.9.1", features = ["redis"] }
```

The primary API is the first-party Redis namespace on the client. Common
Expand Down
2 changes: 1 addition & 1 deletion crates/shardcache-py/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,6 @@ dashmap = "6.1"
libc = { workspace = true }
parking_lot = { workspace = true }
shardmap = { workspace = true, default-features = false, features = ["sharded"] }
shardcache-runtime = { path = "../shardcache-runtime", version = "0.9.0" }
shardcache-runtime = { path = "../shardcache-runtime", version = "0.9.1" }
shardcache-client-rs = { workspace = true }
pyo3 = { version = "0.29", features = ["abi3-py311"] }
2 changes: 1 addition & 1 deletion crates/shardcache/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ cargo run -p shardcache -- --bind-addr 127.0.0.1:6380 --disable-persistence
Install the binary from crates.io:

```sh
cargo install shardcache --version 0.9.0 --locked
cargo install shardcache --version 0.9.1 --locked
```

Install the binary from a checkout:
Expand Down
2 changes: 1 addition & 1 deletion crates/shardmap/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Use `shardmap` when you want an embedded Rust cache. Use the repository's

```toml
[dependencies]
shardmap = "0.9.0"
shardmap = "0.9.1"
```

## Quick Start
Expand Down
16 changes: 8 additions & 8 deletions docs/DEPENDENCIES.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,14 +42,14 @@ OpenSSL-backed Rustls provider.

| Package | Version | License | Manifest |
| --- | --- | --- | --- |
| `shardcache-benchmarks` | `0.9.0` | Apache-2.0 | `benchmarks/Cargo.toml` |
| `shardcache-c` | `0.9.0` | Apache-2.0 | `crates/shardcache-c/Cargo.toml` |
| `shardcache-client-rs` | `0.9.0` | Apache-2.0 | `crates/shardcache-client-rs/Cargo.toml` |
| `shardcache-formal` | `0.9.0` | Apache-2.0 | `crates/shardcache-formal/Cargo.toml` |
| `shardcache-py` | `0.9.0` | Apache-2.0 | `crates/shardcache-py/Cargo.toml` |
| `shardcache-runtime` | `0.9.0` | Apache-2.0 | `crates/shardcache-runtime/Cargo.toml` |
| `shardcache` | `0.9.0` | Apache-2.0 | `crates/shardcache/Cargo.toml` |
| `shardmap` | `0.9.0` | Apache-2.0 | `crates/shardmap/Cargo.toml` |
| `shardcache-benchmarks` | `0.9.1` | Apache-2.0 | `benchmarks/Cargo.toml` |
| `shardcache-c` | `0.9.1` | Apache-2.0 | `crates/shardcache-c/Cargo.toml` |
| `shardcache-client-rs` | `0.9.1` | Apache-2.0 | `crates/shardcache-client-rs/Cargo.toml` |
| `shardcache-formal` | `0.9.1` | Apache-2.0 | `crates/shardcache-formal/Cargo.toml` |
| `shardcache-py` | `0.9.1` | Apache-2.0 | `crates/shardcache-py/Cargo.toml` |
| `shardcache-runtime` | `0.9.1` | Apache-2.0 | `crates/shardcache-runtime/Cargo.toml` |
| `shardcache` | `0.9.1` | Apache-2.0 | `crates/shardcache/Cargo.toml` |
| `shardmap` | `0.9.1` | Apache-2.0 | `crates/shardmap/Cargo.toml` |

## Third-Party Packages (377)

Expand Down
4 changes: 2 additions & 2 deletions docs/KV_OVERFLOW.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ promotion. See [`EXACT_GOVERNANCE.md`](EXACT_GOVERNANCE.md).

```toml
[dependencies]
shardmap = { version = "0.9.0", features = ["kv-overflow"] }
shardmap = { version = "0.9.1", features = ["kv-overflow"] }
```

```rust,ignore
Expand Down Expand Up @@ -265,7 +265,7 @@ compatible managed service as the overflow tier:

```toml
[dependencies]
shardmap = { version = "0.9.0", features = ["kv-overflow-redis"] }
shardmap = { version = "0.9.1", features = ["kv-overflow-redis"] }
```

```toml
Expand Down
6 changes: 3 additions & 3 deletions docs/OPERATIONS.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ For the container-specific runbook, see

| Build | Command | Use When |
| --- | --- | --- |
| Embedded crate | `shardmap = "0.9.0"` | In-process Rust cache use. |
| Server crate | `shardcache = "0.9.0"` | Install or depend on the RESP/SCNP server package. |
| Native client crate | `shardcache-client-rs = "0.9.0"` | SCNP client access from Rust applications. |
| Embedded crate | `shardmap = "0.9.1"` | In-process Rust cache use. |
| Server crate | `shardcache = "0.9.1"` | Install or depend on the RESP/SCNP server package. |
| Native client crate | `shardcache-client-rs = "0.9.1"` | SCNP client access from Rust applications. |
| Server | `cargo run -p shardcache --features server --bin shardcache -- ...` | RESP/SCNP TCP access without the full Redis command catalog. |
| Redis-compatible server | `cargo run -p shardcache --features redis-server --bin shardcache -- ...` | Redis/Valkey-compatible command and object behavior. |

Expand Down
5 changes: 3 additions & 2 deletions scripts/check-publish-artifacts.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@ package_crate() {
cargo package -p "$package" --locked --allow-dirty "$@"
}

package_crate_with_local_shardmap_patch() {
package_crate_with_local_dependency_patches() {
local package="$1"
shift
cargo package -p "$package" --locked --allow-dirty \
--config "patch.crates-io.shardmap.path=\"$root/crates/shardmap\"" \
--config "patch.crates-io.shardcache-client-rs.path=\"$root/crates/shardcache-client-rs\"" \
"$@"
}

Expand Down Expand Up @@ -109,7 +110,7 @@ package_shardmap_with_local_client_patch
# shardmap release, that exact version is not indexed on crates.io yet. Use a
# temporary Cargo patch only while creating the dependent archive so CI can
# still validate the packaged source before the publish-order handoff.
package_crate_with_local_shardmap_patch shardcache --no-verify
package_crate_with_local_dependency_patches shardcache --no-verify

unpack_crate shardmap "$shardmap_version"
unpack_crate shardcache "$shardcache_version"
Expand Down
Loading