Files
connor 43b94489f5
Check / guardrails (push) Successful in 1m43s
Check / bundle (push) Successful in 1m15s
Check / check (push) Successful in 2m42s
Image / image (push) Failing after 20s
v0.2 wave 1: merge-rule-v2 clustering with LLM-candidate gray zone, 0.2.0 version plumbing, deploy verification docs
2026-09-03 16:46:12 -04:00

75 lines
2.2 KiB
TOML

[workspace]
resolver = "3"
members = [
"crates/news-core",
"crates/news-ingest",
"crates/news-store",
"crates/news-server",
"crates/news-web",
"crates/news-cli",
]
[workspace.package]
version = "0.2.0"
edition = "2024"
license = "MIT"
[workspace.lints.rust]
dead_code = "deny"
unused_must_use = "deny"
unsafe_code = "forbid"
[workspace.lints.clippy]
unwrap_used = "deny"
expect_used = "deny"
[workspace.dependencies]
# Internal
news-core = { path = "crates/news-core" }
news-store = { path = "crates/news-store" }
news-ingest = { path = "crates/news-ingest" }
news-server = { path = "crates/news-server" }
# Errors + serde -- everything else lands with the todo that needs it.
serde = { version = "1", features = ["derive"] }
thiserror = "2"
# Domain-model primitives (todo 2): ids and timestamps.
uuid = { version = "1", features = ["v4", "v5", "serde"] }
chrono = { version = "0.4", default-features = false, features = ["serde", "clock", "std"] }
chrono-tz = "0.10"
# Test-only: JSON round-trip assertions + readable diffs.
serde_json = "1"
pretty_assertions = "1"
# Persistence (todo 5): SQLite via sqlx, async runtime via tokio.
# Pinned to the 0.8 line (not runway's 0.9) because 0.9 requires rustc
# 1.94.0 and this workspace's rust-toolchain.toml is pinned to 1.89.0.
sqlx = { version = "0.8", features = ["runtime-tokio", "sqlite", "chrono", "uuid", "migrate"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros"] }
# Feed polling (todo 7): HTTP client + XML parsing, mirroring runway's
# exact feature sets.
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
url = "2"
quick-xml = "0.42"
# Config hot-reload (todo 14): TOML parsing + tracing.
toml = "0.8"
tracing = "0.1"
clap = { version = "4", features = ["derive"] }
tracing-subscriber = "0.3"
# Test-only: capture tracing logs in tests + temp files for config fixtures.
tracing-test = "0.2"
tempfile = "3"
# HTTP API (todo 13): axum router + tower oneshot test helper.
axum = "0.8"
tower = { version = "0.4", features = ["util"] }
# Metrics (todo 18): Prometheus text exposition for /metrics.
# 0.14 drops the protobuf dependency (RUSTSEC-2024-0437).
prometheus = "0.14"