-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathCargo.toml
More file actions
151 lines (131 loc) · 3.7 KB
/
Cargo.toml
File metadata and controls
151 lines (131 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# SPDX-FileCopyrightText: 2025 Adam Poulemanos <89049923+bashandbone@users.noreply.github.com>
#
# SPDX-License-Identifier: LicenseRef-PlainMIT OR MIT
#:tombi schema.strict = false
[package]
name = "submod"
version = "0.2.1"
edition = "2024"
rust-version = "1.87"
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]
# Gitoxide ops
gix = { version = "0.80.0", default-features = false, features = [
"blocking-network-client",
"parallel",
"status",
"worktree-mutation"
] }
gitoxide-core = { version = "0.54.0", default-features = false, features = ["blocking-client"]}
gix-submodule = "0.27.0"
# CLI
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"] }
# TOML config
figment = { version = "0.10.19", default-features = false, features = ["toml"] }
# errors
anyhow = "1.0.102"
thiserror = "2.0.18"
# bitflags for status flags
bitflags = "2.11.0"
# As of submod v0.2.0, git2 no longer optional
# gix_submodule just isn't mature enough to realistically provide our functionality without falling back to git2
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]
# Deny unsafe code unless explicitly allowed
unsafe_code = "forbid"
# Warn about unused items
unused = { level = "warn", priority = -1 }
# Warn about missing documentation
missing_docs = "warn"
# Warn about unreachable code
unreachable_code = "warn"
# Allow cfg(coverage) and cfg(coverage_nightly) set by cargo-llvm-cov
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(coverage)', 'cfg(coverage_nightly)'] }
[lints.clippy]
# Cargo-specific lints
cargo = { level = "warn", priority = -1 }
# Complexity lints
complexity = { level = "warn", priority = -1 }
# Correctness lints (deny these as they indicate bugs)
correctness = { level = "deny", priority = -1 }
# Nursery lints for cutting-edge suggestions
nursery = { level = "warn", priority = -1 }
# Pedantic lints for high code quality
pedantic = { level = "warn", priority = -1 }
# Performance lints
perf = { level = "warn", priority = -1 }
# Style lints
style = { level = "warn", priority = -1 }
# Suspicious constructs
suspicious = { level = "warn", priority = -1 }
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
# Allow some pedantic lints that can be overly strict for CLI tools
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"