patchcov 0.2.0

Patch coverage for git diffs: attribute lcov, llvm-cov, Cobertura, Go and JaCoCo reports to a diff and gate on it.
Documentation
[package]
name = "patchcov"
version = "0.2.0"
edition = "2021"
authors = ["John Ky <newhoggy@gmail.com>"]
license = "BSD-3-Clause"
description = "Patch coverage for git diffs: attribute lcov, llvm-cov, Cobertura, Go and JaCoCo reports to a diff and gate on it."
repository = "https://github.com/rust-works/patchcov"
homepage = "https://github.com/rust-works/patchcov"
documentation = "https://docs.rs/patchcov"
readme = "README.md"
keywords = ["coverage", "git", "diff", "lcov", "ci"]
categories = ["development-tools", "command-line-utilities"]
rust-version = "1.88.0"

[dependencies]
anyhow = "1.0"
clap = { version = "4.6", features = ["derive", "color"] }
git2 = "0.21"
globset = "0.4"
quick-xml = "0.41"
regex = "1.12.3"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
serde_yaml = "0.9"
yaml-rust-davvid = "0.6"

[dev-dependencies]
tempfile = "3.27"

[lib]
name = "patchcov"
path = "src/lib.rs"

[[bin]]
name = "patchcov"
path = "src/main.rs"

[lints.rust]
unsafe_code = "deny"

[lints.clippy]
# Lint groups (priority -1 so individual overrides win)
all      = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
nursery  = { level = "warn", priority = -1 }

# Pedantic: too noisy / low signal
must_use_candidate      = "allow"
module_name_repetitions = "allow"

# Pedantic: documentation (defer to follow-up)
missing_errors_doc      = "allow"
missing_panics_doc      = "allow"
doc_markdown            = "allow"

# Pedantic: public API stability
unused_self             = "allow"  # removing &self is an API change
unnecessary_wraps       = "allow"  # removing Result is an API change
needless_pass_by_value  = "allow"  # changing to &T is an API change
ref_option              = "allow"  # changing &Option<T> to Option<&T> is an API change

# Pedantic: stylistic
if_not_else             = "allow"
similar_names           = "allow"
too_many_lines          = "allow"
format_push_string      = "allow"  # write! alternative requires unwrap
items_after_statements  = "allow"  # sometimes clearer to declare near use
struct_field_names      = "allow"  # naming convention matches domain
struct_excessive_bools  = "allow"  # config structs use bool flags
# New in newer Clippy; older toolchains warn "unknown lint" (a warning, never an error).
assert_is_empty         = "allow"

# Pedantic: numeric casts
cast_precision_loss      = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap       = "allow"
cast_sign_loss           = "allow"

# Pedantic: file system
case_sensitive_file_extension_comparisons = "allow"  # risky auto-fix

# Restriction: panicking operations
unwrap_used  = "warn"
expect_used  = "warn"

# Nursery
option_if_let_else           = "allow"  # often less readable than if-let
redundant_pub_crate          = "allow"
missing_const_for_fn         = "allow"
or_fun_call                  = "allow"  # false positives
significant_drop_tightening  = "allow"  # often produces wrong suggestions
large_stack_frames           = "allow"  # fires on test fns with large fixture literals
large_stack_arrays           = "allow"