[package]
name = "submod"
version = "0.4.0"
edition = "2024"
rust-version = "1.89"
description = "A headache-free submodule management tool, built on top of gitoxide. Manage sparse checkouts, submodule updates, and adding/removing submodules with ease."
license = "LicenseRef-PlainMIT OR MIT"
repository = "https://github.com/bashandbone/submod"
homepage = "https://github.com/bashandbone/submod"
documentation = "https://docs.rs/submod"
readme = "README.md"
keywords = [
"git",
"submodule",
"gitoxide",
"cli",
"sparse-checkout",
]
categories = ["command-line-utilities", "development-tools"]
resolver = "3"
include = [
"src/**/*",
"README.md",
"Cargo.toml",
"sample_config/submod.toml",
"REUSE.toml",
"LICENSES/*",
"LICENSE.md",
"submod-sbom.spdx"
]
[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]
[dependencies]
gix = { version = "^0.86.0", default-features = false, features = [
"blocking-http-transport-curl-openssl",
"max-performance-safe",
"status",
"worktree-mutation",
"sha1"
] }
gitoxide-core = { version = "^0.60.0", default-features = false, features = ["blocking-client"] }
gix-submodule = { version = "^0.33.0", features = ["sha1"]}
clap = { version = "4.6.4", features = [
"derive",
"cargo",
"unicode",
"wrap_help",
] }
clap_complete = "4.6.7"
clap_complete_nushell = "4.6.1"
prodash = { version = "31.0.0", features = ["render-line-crossterm", "render-line-autoconfigure", "render-line"] }
serde = { version = "1.0.229", features = ["derive"] }
figment = { version = "0.10.19", default-features = false, features = ["toml"] }
anyhow = "1.0.104"
thiserror = "2.0.19"
bitflags = "2.13.1"
git2 = { version = "0.21.0" }
toml = "1.1.3"
[lib]
name = "submod"
path = "src/lib.rs"
[[bin]]
name = "submod"
path = "src/main.rs"
[dev-dependencies]
figment = { version = "0.10.19", default-features = false, features = [
"test",
"toml",
] }
tempfile = "3.27.0"
criterion = "0.8.2"
toml = "1.1.3"
[lints.rust]
unsafe_code = "deny"
unused = { level = "warn", priority = -1 }
missing_docs = "warn"
unreachable_code = "warn"
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage)', 'cfg(coverage_nightly)', 'cfg(coverage_attribute)'] }
[lints.clippy]
cargo = { level = "warn", priority = -1 }
complexity = { level = "warn", priority = -1 }
correctness = { level = "deny", priority = -1 }
nursery = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
perf = { level = "warn", priority = -1 }
style = { level = "warn", priority = -1 }
suspicious = { level = "warn", priority = -1 }
multiple_crate_versions = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
too_many_lines = "allow"
[[bench]]
name = "benchmark"
harness = false
[profile.release]
codegen-units = 1
lto = true
opt-level = 3
incremental = false
[profile.dev]
incremental = true
lto = false
opt-level = 1
[profile.bench]
inherits = "release"
[profile.test]
inherits = "dev"