[package]
name = "submod"
version = "0.2.4"
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-file = "LICENSE.md"
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.81.0", default-features = false, features = [
"blocking-network-client",
"blocking-http-transport-curl",
"parallel",
"max-performance",
"status",
"worktree-mutation",
"sha1"
] }
gitoxide-core = { version = "0.55.0", default-features = false, features = ["blocking-client"]}
gix-submodule = { version = "0.28.0", features = ["sha1"]}
clap = { version = "4.6.0", features = [
"derive",
"cargo",
"unicode",
"wrap_help",
] }
clap_complete = "4.6.0"
clap_complete_nushell = "4.6.0"
prodash = { version = "31.0.0", features = ["render-line-crossterm", "render-line-autoconfigure", "render-line"] }
serde = { version = "1.0.228", features = ["derive"] }
figment = { version = "0.10.19", default-features = false, features = ["toml"] }
anyhow = "1.0.102"
thiserror = "2.0.18"
bitflags = "2.11.0"
git2 = { version = "0.20.4" }
[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 = "0.8"
[lints.rust]
unsafe_code = "forbid"
unused = { level = "warn", priority = -1 }
missing_docs = "warn"
unreachable_code = "warn"
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage)', 'cfg(coverage_nightly)'] }
[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 }
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"