1
0
mirror of https://github.com/j178/prek.git synced 2026-03-13 09:04:03 +02:00
Files
prek/Cargo.toml

217 lines
6.0 KiB
TOML

[workspace]
members = ["crates/*"]
resolver = "3"
[workspace.package]
version = "0.3.5"
edition = "2024"
rust-version = "1.91"
repository = "https://github.com/j178/prek"
homepage = "https://prek.j178.dev/"
license = "MIT"
[workspace.dependencies]
prek-consts = { path = "crates/prek-consts", version = "0.3.5" }
prek-identify = { path = "crates/prek-identify", version = "0.3.5" }
prek-pty = { path = "crates/prek-pty", version = "0.3.5" }
anstream = { version = "0.6.15" }
anstyle-query = { version = "1.1.5" }
anyhow = { version = "1.0.86" }
async-compression = { version = "0.4.18", features = ["gzip", "xz", "tokio"] }
async_zip = { version = "0.0.17", package = "astral_async_zip", features = [
"deflate",
"tokio",
] }
axoupdater = { version = "0.10.0", default-features = false, features = [
"github_releases",
] }
bstr = { version = "1.11.0" }
cargo_metadata = { version = "0.23.1" }
clap = { version = "4.5.16", features = [
"derive",
"env",
"string",
"wrap_help",
] }
clap_complete = { version = "4.5.37", features = ["unstable-dynamic"] }
ctrlc = { version = "3.4.5" }
dunce = { version = "1.0.5" }
etcetera = { version = "0.11.0" }
fancy-regex = { version = "0.17.0" }
fs-err = { version = "3.1.0", features = ["tokio"] }
futures = { version = "0.3.31" }
hex = { version = "0.4.3" }
http = { version = "1.1.0" }
ignore = { version = "0.4.23" }
indicatif = { version = "0.18.0" }
indoc = { version = "2.0.5" }
itertools = { version = "0.14.0" }
json5 = { version = "1.3.0" }
lazy-regex = { version = "3.4.2" }
levenshtein = { version = "1.0.5" }
libc = { version = "0.2.182" }
# Enable static linking for liblzma
# This is required for the `xz` feature in `async-compression`
liblzma = { version = "0.4.5", features = ["static"] }
mea = { version = "0.6.3" }
memchr = { version = "2.7.5" }
owo-colors = { version = "4.1.0" }
path-clean = { version = "1.0.1" }
phf = { version = "0.13.1", default-features = false, features = ["macros"] }
pprof = { version = "0.15.0" }
quick-xml = { version = "0.39" }
rand = { version = "0.10.0" }
rayon = { version = "1.10.0" }
reqwest = { version = "0.13.2", default-features = false, features = [
"http2",
"stream",
"json",
"rustls",
"system-proxy",
"socks",
] }
rustc-hash = { version = "2.1.1" }
rustix = { version = "1.0.8", features = ["pty", "process", "fs", "termios"] }
same-file = { version = "1.0.6" }
semver = { version = "1.0.24", features = ["serde"] }
serde = { version = "1.0.210", features = ["derive"] }
serde_json = { version = "1.0.132", features = [
"preserve_order",
"unbounded_depth",
] }
serde_stacker = { version = "0.1.12" }
serde-saphyr = { version = "0.0.20", default-features = false }
shlex = { version = "1.3.0" }
globset = { version = "0.4.18" }
strum = { version = "0.28.0", features = ["derive"] }
target-lexicon = { version = "0.13.0" }
tempfile = { version = "3.25.0" }
thiserror = { version = "2.0.11" }
tokio = { version = "1.47.1", features = [
"fs",
"io-std",
"process",
"rt",
"sync",
"macros",
"net",
] }
tokio-tar = { version = "0.5.6", package = "astral-tokio-tar" }
tokio-util = { version = "0.7.13" }
toml = { version = "1.0.1", default-features = false, features = [
"fast_hash",
"parse",
"preserve_order",
"serde",
] }
toml_edit = { version = "0.25.1" }
tracing = { version = "0.1.40" }
tracing-subscriber = { version = "0.3.20", features = ["env-filter"] }
unicode-width = { version = "0.2.0", default-features = false }
walkdir = { version = "2.5.0" }
webpki-root-certs = { version = "1.0.6" }
which = { version = "8.0.0" }
# dev-dependencies
assert_cmd = { version = "2.0.16", features = ["color"] }
assert_fs = { version = "1.1.2" }
insta = { version = "1.40.0", features = ["filters"] }
insta-cmd = { version = "0.6.0" }
markdown = { version = "1.0.0" }
predicates = { version = "3.1.2" }
pretty_assertions = { version = "1.4.1" }
regex = { version = "1.11.0" }
schemars = { version = "1.1.0" }
textwrap = { version = "0.16.0" }
[workspace.lints.rust]
dead_code = "allow"
[workspace.lints.clippy]
pedantic = { level = "warn", priority = -2 }
# Allowed pedantic lints
collapsible_else_if = "allow"
collapsible_if = "allow"
if_not_else = "allow"
implicit_hasher = "allow"
map_unwrap_or = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
similar_names = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
used_underscore_binding = "allow"
items_after_statements = "allow"
iter-without-into-iter = "allow"
# Disallowed restriction lints
print_stdout = "warn"
print_stderr = "warn"
dbg_macro = "warn"
empty_drop = "warn"
empty_structs_with_brackets = "warn"
exit = "warn"
get_unwrap = "warn"
rc_buffer = "warn"
rc_mutex = "warn"
rest_pat_in_fully_bound_structs = "warn"
[workspace.metadata.typos.default]
extend-ignore-re = [
'(?s)-----BEGIN CERTIFICATE-----.*?-----END CERTIFICATE-----',
]
[workspace.metadata.typos.default.extend-words]
edn = "edn"
styl = "styl"
jod = "jod"
[workspace.metadata.typos.files]
extend-exclude = ["scripts/macports"]
[workspace.metadata.cargo-shear]
ignored = ["liblzma"]
[profile.dev.package]
# Insta suggests compiling these packages in opt mode for faster testing.
# See https://docs.rs/insta/latest/insta/#optional-faster-runs.
insta.opt-level = 3
similar.opt-level = 3
# Profile for fast test execution: Skip debug info generation, and
# apply basic optimization, which speed up build and running tests.
[profile.fast-build]
inherits = "dev"
debug = 0
strip = "debuginfo"
# Profile for faster builds: Skip debug info generation, for faster
# builds of smaller binaries.
[profile.no-debug]
inherits = "dev"
debug = 0
strip = "debuginfo"
[profile.profiling]
inherits = "release"
strip = false
debug = "full"
lto = false
codegen-units = 16
[profile.minimal-size]
inherits = "release"
# Enable Full LTO for the best optimizations
lto = "fat"
# Reduce codegen units to 1 for better optimizations
codegen-units = 1
strip = true
panic = "abort"
# The profile that 'cargo dist' will build with
[profile.dist]
inherits = "minimal-size"