[package]
name = "sdivi-detection"
version.workspace = true
edition.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
description = "Native Leiden community detection for sdivi-rust"
readme = "README.md"
keywords = ["sdivi", "leiden", "community-detection", "graph", "clustering"]
categories = ["algorithms", "development-tools"]

[features]
# Placeholder for consistency with the other compute crates. No sdivi-parsing dep
# needed here since Leiden operates on graph structures, not FeatureRecords.
pipeline-records = []
default = ["pipeline-records"]
# Enables the cross-check suite against leidenalg (requires Python + leidenalg).
verify-leiden = []

[dependencies]
sdivi-config  = { workspace = true }
sdivi-graph   = { workspace = true }
thiserror   = { workspace = true }
serde       = { workspace = true }
serde_json  = { workspace = true }
rand        = { workspace = true }
tracing     = { workspace = true }

[dev-dependencies]
proptest     = { workspace = true }
tempfile     = { workspace = true }
# Internal sdivi-* dev-deps must use direct path (no workspace inheritance):
# workspace.dependencies has version constraints used during cargo publish, but
# dev-deps publish through cargo without their crates needing to exist on
# crates.io yet. Path-only avoids the chicken-and-egg of dev-deps on
# later-published siblings (e.g. sdivi-pipeline publishes after sdivi-detection).
sdivi-graph    = { path = "../sdivi-graph",    features = ["pipeline-records"] }
sdivi-parsing  = { path = "../sdivi-parsing" }
sdivi-pipeline = { path = "../sdivi-pipeline" }
