gitbutler/Cargo.toml

105 lines
3.2 KiB
TOML

[workspace]
members = [
"gitbutler-app",
"gitbutler-core",
"gitbutler-diff",
"gitbutler-git",
]
resolver = "2"
[workspace.dependencies]
gitbutler-core = { path = "gitbutler-core" }
gitbutler-git = { path = "gitbutler-git" }
git2 = { version = "0.18.2", features = ["vendored-openssl", "vendored-libgit2"] }
uuid = "1.7.0"
serde = { version = "1.0", features = ["derive"] }
thiserror = "1.0.56"
rusqlite = { version = "0.29.0", features = [ "bundled", "blob" ] }
tokio = { version = "1.36.0" }
[profile.release]
codegen-units = 1 # Compile crates one after another so the compiler can optimize better
lto = true # Enables link to optimizations
opt-level = "s" # Optimize for binary size
debug = true # Enable debug symbols, for sentry
[workspace.lints.rust]
unsafe_code = "forbid"
[workspace.lints.clippy]
all = "deny"
perf = "deny"
correctness = "deny"
complexity = "deny"
style = "deny"
pedantic = "deny"
# selection from clippy::restriction (see https://rust-lang.github.io/rust-clippy/master/index.html#/?groups=restriction)
as_underscore = "deny"
assertions_on_result_states = "deny"
clone_on_ref_ptr = "deny"
create_dir = "deny"
dbg_macro = "deny"
decimal_literal_representation = "deny"
default_numeric_fallback = "deny"
empty_drop = "deny"
empty_structs_with_brackets = "deny"
exit = "deny"
filetype_is_file = "deny"
float_cmp_const = "deny"
fn_to_numeric_cast_any = "deny"
format_push_string = "deny"
get_unwrap = "deny"
integer_division = "deny"
lossy_float_literal = "deny"
mem_forget = "deny"
mixed_read_write_in_expression = "deny"
mutex_atomic = "deny"
needless_raw_strings = "deny"
non_ascii_literal = "deny"
panic = "deny"
print_stderr = "deny"
pub_without_shorthand = "deny"
rc_buffer = "deny"
rc_mutex = "deny"
redundant_type_annotations = "deny"
ref_patterns = "deny"
rest_pat_in_fully_bound_structs = "deny"
same_name_method = "deny"
string_add = "deny"
string_lit_chars_any = "deny"
string_slice = "deny"
string_to_string = "deny"
suspicious_xor_used_as_pow = "deny"
todo = "deny"
try_err = "deny"
unimplemented = "deny"
unnecessary_self_imports = "deny"
unneeded_field_pattern = "deny"
unseparated_literal_suffix = "deny"
if_then_some_else_none = "deny"
use_debug = "deny"
mod_module_files = "deny"
self_named_module_files = "allow"
# TODO
# partial_pub_fields = "deny"
# print_stdout = "deny"
# unwrap_used = "deny"
# unwrap_in_result = "deny"
# noise and or false-positives
missing_errors_doc = { level = "allow", priority = 1 }
used_underscore_binding = { level = "allow", priority = 1 }
must_use_candidate = { level = "allow", priority = 1 }
module_name_repetitions = { level = "allow", priority = 1 }
missing_panics_doc = { level = "allow", priority = 1 }
too_many_lines = { level = "allow", priority = 1 }
implicit_hasher = { level = "allow", priority = 1 }
if_not_else = { level = "allow", priority = 1 }
return_self_not_must_use = { level = "allow", priority = 1 }
inconsistent_struct_constructor = { level = "allow", priority = 1 }
match_wildcard_for_single_variants = { level = "allow", priority = 1 }
unnested_or_patterns = { level = "allow", priority = 1 }
similar_names = { level = "allow", priority = 1 }
struct_field_names = { level = "allow", priority = 1 }