Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
9b3ef5c
fix(dynostore): fix 3 partial-failure bugs found by object_store faul…
shortishly Sep 30, 2026
d296d70
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 5, 2026
c285c1b
docs: remove dangling references to docs/traceforge-test-plan.md
shortishly Oct 5, 2026
39e2b18
test: remove redundant traceforge Phase 0 feasibility spike
shortishly Oct 5, 2026
2141c57
fix(dynostore): gate DynoStore's test-only constructor behind test-su…
shortishly Oct 5, 2026
5150eb0
docs: drop unsubstantiated bug-finding claim in traceforge_offset_commit
shortishly Oct 5, 2026
3b49576
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 6, 2026
647cc9b
fix(dynostore): address review on idempotent produce and txn_end retry
shortishly Oct 6, 2026
2119485
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 8, 2026
2da29dc
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 9, 2026
d35fff9
test: produce with acks=1 in traceforge tests
shortishly Oct 9, 2026
2e75557
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 9, 2026
2afdbc3
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 12, 2026
d080ea7
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 13, 2026
dc2497f
Merge remote-tracking branch 'origin/main' into 742-idempotent-produc…
shortishly Oct 14, 2026
7281b6d
test: scope turso-only imports in init_producer_id to the turso module
shortishly Oct 14, 2026
10918fa
fix(dynostore): count every failed post-write sequence advance, by re…
shortishly Oct 14, 2026
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
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -140,6 +140,7 @@ Lake features: `parquet`, `iceberg`, `delta` - enable writing schema-backed topi
- Tests in `nisshi-broker` run against multiple backends: InMemory, Lite (libSQL), Postgres, SlateDb
- `nisshi-broker`, `nisshi-sans-io` and `nisshi-service` each build one integration-test binary, `it`. To add a test file, create `tests/it/<name>.rs` and declare it with `pub mod <name>;` in `tests/it/main.rs`; Cargo ignores undeclared files, and the `every_test_file_is_declared` test fails if one is missed. Gate backend-specific tests with `#[cfg(feature = "...")]` on a module, not `required-features`. Run one file's tests with a name filter, e.g. `cargo nextest run -p nisshi-broker --all-features -E 'test(/^fetch::/)'`
- Give each feature its own test file. Put the tests of one feature or one Kafka API in one file under `tests/it/`, named after it. Tests for a new feature go in a new file, not at the end of a file about another subject. A reader then finds them by name, and a name filter on the module selects them.
- Assert a pattern with `assert_matches!(value, pattern)` from std (`use std::assert_matches;`, stable since Rust 1.96, no crate needed), not `assert!(matches!(value, pattern))` or the `assert_matches` crate. On failure it prints the value, and it reads as one assertion. Nothing enforces this yet, and some older tests still use `assert!(matches!(..))`; leave those alone unless you're already editing them.
- `nisshi-smoke-test` runs the real Kafka CLI tools (in a `$KAFKA_IMAGE` container) against a broker, and stays out of `just test`; run it with `just smoke <engine>`. Its containers use the host network, so on macOS it needs Docker Desktop with host networking turned on. Its tests talk to the shared broker through `KafkaCli::shared()`, or start their own with `Broker::isolated()`, and each uses its own topic and group names (`nisshi_smoke_test::unique_name`). A test that applies only to some engines is gated with `#[cfg(feature = "<engine>")]` or `#[cfg(any(...))]` on the engines' features, never with `cfg(not(...))`, because `just clippy` turns every feature on and would never compile it. S3 runs only `topic_lifecycle`, selected by the `smoke-s3` profile in `.config/nextest.toml`. A test that fails because of an open bug is marked `#[ignore = "<what is broken>"]`, or `#[cfg_attr(feature = "<engine>", ignore = "...")]` if it fails only on some engines. CI skips it, local runs still run it (`run.sh` passes `--run-ignored all` outside CI), and the change that fixes the bug removes the attribute
- Single-file test targets with specific feature requirements (e.g. `nisshi-schema`'s `berg`) use `required-features` in their `Cargo.toml`

Expand Down
186 changes: 166 additions & 20 deletions Cargo.lock

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

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -78,14 +78,13 @@
anyhow = "1.0.94"
apache-avro = "0.21.0"
arrow = { version = "58" }
assert_matches = "1.5.0"
async-trait = "0.1.86"
backoff = {version = "0.4.0", features = ["tokio"]}
bytes = { version = "1", features = ["serde"] }
cached = "4.0.1"
chrono = "0.4"
clap = { version = "4.5.57", features = ["derive", "env"] }
condtype = "1.3.0"

Check warning on line 87 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `condtype`

Check warning on line 87 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `condtype`

Check warning on line 87 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `condtype`
console = "0.16.2"
convert_case = "0.12.0"
crc-fast = "1.8.0"
Expand All @@ -99,7 +98,7 @@
# builds against. Pin to 1.1.0 until deltalake bumps its buoyant_kernel dep.
buoyant_kernel_derive = "=1.1.0"
deltalake = { version = "0.32", features = ["datafusion", "s3"] }
digest = "0.11.3"

Check warning on line 101 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `digest`

Check warning on line 101 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `digest`

Check warning on line 101 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `digest`
dotenv = "0.15.0"
fake = "5.1.0"
flate2 = "1.1"
Expand Down Expand Up @@ -165,7 +164,7 @@
snap = "1.1.1"
socket2 = "0.6.5"
syn = { version = "3.0.3", features = ["extra-traits", "full"] }
nisshi = { version = "0.7.0-pre.3", path = "nisshi", default-features = false }

Check warning on line 167 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `nisshi`

Check warning on line 167 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `nisshi`
nisshi-auth = { version = "0.7.0-pre.3", path = "nisshi-auth", default-features = false }
nisshi-broker = { version = "0.7.0-pre.3", path = "nisshi-broker", default-features = false }
nisshi-cat = { version = "0.7.0-pre.3", path = "nisshi-cat", default-features = false }
Expand Down Expand Up @@ -194,8 +193,9 @@
tokio-postgres-rustls = "0.13.0"
tokio-rustls = "0.26.4"
tokio-util = { version = "0.7", features = ["full"] }
traceforge = "0.2"
tracing = "0.1"
tracing-core = { version = "0.1" }

Check warning on line 198 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `tracing-core`

Check warning on line 198 in Cargo.toml

View workflow job for this annotation

GitHub Actions / fuzz-pr

unused workspace dependency `tracing-core`
tracing-opentelemetry = "0.34.0"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
turso = "0.7.1"
Expand Down
3 changes: 2 additions & 1 deletion nisshi-broker/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ uuid.workspace = true

[dev-dependencies]
anyhow.workspace = true
assert_matches.workspace = true
object_store.workspace = true
pbkdf2.workspace = true
rcgen.workspace = true
Expand All @@ -81,3 +80,5 @@ slatedb.workspace = true
nisshi-schema.workspace = true
nisshi-storage.workspace = true
crc-fast.workspace = true
nisshi-storage-dynostore = { workspace = true, features = ["test-support"] }
traceforge.workspace = true
Loading
Loading