brewlog/Cargo.toml
Jon Seager 2bd008a8d7
chore(lint): enable clippy pedantic and restriction lints
- Add [lints.clippy] section to Cargo.toml with pedantic group
- Cherry-pick restriction lints: dbg_macro (deny), todo, unwrap_used, expect_used (warn)
- Allow noisy pedantic lints (missing_errors_doc, module_name_repetitions, etc.)
- Fix unnecessary Result wrappers in token and user repository to_domain functions
- Merge duplicate match arms in TimelineEventViewModel
- Add justified #[allow] attributes for startup code and tests
2026-02-02 17:55:16 +00:00

82 lines
2.6 KiB
TOML

[package]
name = "brewlog"
version = "0.1.0"
edition = "2024"
[features]
default = ["sqlite"]
sqlite = ["sqlx/sqlite"]
postgres = ["sqlx/postgres"]
[dependencies]
anyhow = "1.0"
argon2 = "0.5"
async-trait = "0.1"
axum = { version = "0.7", features = ["macros"] }
askama = "0.12"
base64 = "0.22"
chrono = { version = "0.4", features = ["serde", "clock"] }
clap = { version = "4.5", features = ["derive", "env"] }
reqwest = { version = "0.12", default-features = false, features = ["json", "rustls-tls"] }
rpassword = "7.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
rand = "0.8"
sha2 = "0.10"
sqlx = { version = "0.7", default-features = false, features = [
"runtime-tokio",
"tls-rustls",
"macros",
"chrono",
"any",
"migrate",
] }
thiserror = "1.0"
tokio = { version = "1.38", features = ["rt-multi-thread", "macros", "signal"] }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tower = "0.4"
tower-cookies = "0.10"
slug = "0.1.6"
tracing-bunyan-formatter = "0.3.10"
tracing-log = "0.2.0"
[dev-dependencies]
portpicker = "0.1"
reqwest = { version = "0.12", default-features = false, features = ["blocking", "cookies", "rustls-tls"] }
tempfile = "3.8"
once_cell = "1.19"
[[test]]
name = "cli"
path = "tests/cli/main.rs"
harness = true
[profile.test]
# Run CLI tests serially to share single server instance
opt-level = 0
[[test]]
name = "server"
path = "tests/server/main.rs"
harness = true
[lints.clippy]
# Enable pedantic lints with lower priority so individual allows take precedence
pedantic = { level = "warn", priority = -1 }
# Pedantic lints to disable (too noisy or not applicable)
missing_errors_doc = "allow" # Would require extensive doc changes
missing_panics_doc = "allow" # Would require extensive doc changes
module_name_repetitions = "allow" # Common pattern in domain types (e.g., RoasterId in roasters)
must_use_candidate = "allow" # Too aggressive for this codebase
return_self_not_must_use = "allow" # Builder methods returning Self are common
needless_pass_by_value = "allow" # Generic T: ToString pattern and consumed value types
cast_possible_truncation = "allow" # Pagination values won't exceed u32 in practice
cast_sign_loss = "allow" # Database counts are non-negative
# Cherry-picked restriction lints (production safety)
dbg_macro = "deny" # Prevent debug macros in production
todo = "warn" # Flag TODOs for attention
unwrap_used = "warn" # Flag unwrap() for review; allow where justified
expect_used = "warn" # Flag expect() for review; allow where justified