git-ents.gitmain
⌘K
foforge
Cargo.toml187 lines · 5.7 KB · tomlhistorycomment on this file
1[workspace]
2resolver = "3"
3members = [
4 "crates/kernel/ents-anchor",
5 "crates/kernel/ents-attrs",
6 "crates/kernel/ents-effect",
7 "crates/kernel/ents-gate",
8 "crates/kernel/ents-gate-rules",
9 "crates/kernel/ents-model",
10 "crates/kernel/ents-query",
11 "crates/kernel/ents-receive",
12 "crates/kernel/ents-sync",
13 "crates/kernel/ents-testutil",
14 "crates/cli/ents-lens",
15 "crates/cli/ents-web",
16 "crates/cli/git-ents",
17 "crates/forge/ents-forge",
18 "crates/kiln/ents-kiln",
19 "crates/substrate/gix-ref-store",
20 "crates/verify/ents-verify",
21]
22
23[workspace.package]
24edition = "2024"
25publish = false
26license = "MIT OR Apache-2.0"
27
28[workspace.lints.rust]
29unsafe_code = "forbid"
30missing_docs = "warn"
31
32[workspace.dependencies]
33ents-anchor = { path = "crates/kernel/ents-anchor" }
34ents-attrs = { path = "crates/kernel/ents-attrs" }
35ents-effect = { path = "crates/kernel/ents-effect" }
36ents-forge = { path = "crates/forge/ents-forge" }
37ents-gate = { path = "crates/kernel/ents-gate" }
38ents-gate-rules = { path = "crates/kernel/ents-gate-rules" }
39ents-kiln = { path = "crates/kiln/ents-kiln" }
40ents-lens = { path = "crates/cli/ents-lens" }
41ents-model = { path = "crates/kernel/ents-model" }
42ents-query = { path = "crates/kernel/ents-query" }
43ents-receive = { path = "crates/kernel/ents-receive" }
44ents-sync = { path = "crates/kernel/ents-sync" }
45ents-testutil = { path = "crates/kernel/ents-testutil" }
46ents-verify = { path = "crates/verify/ents-verify" }
47ents-web = { path = "crates/cli/ents-web" }
48gix-ref-store = { path = "crates/substrate/gix-ref-store" }
49arborium = { version = "2.18", default-features = false, features = [
50 "lang-rust",
51 "lang-toml",
52 "lang-yaml",
53 "lang-json",
54 "lang-markdown",
55 "lang-asciidoc",
56 "lang-bash",
57 "lang-javascript",
58 "lang-typescript",
59 "lang-python",
60 "lang-c",
61 "lang-cpp",
62 "lang-go",
63 "lang-html",
64 "lang-css",
65] }
66acdc-parser = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde" }
67acdc-converters-core = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde" }
68acdc-converters-html = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde", features = [
69 "terminal",
70] }
71acdc-converters-terminal = { git = "https://github.com/nlopes/acdc", rev = "6ae19bc2e6f0fa4254a3e9ebd1c3d2f6c7caafde" }
72ascent = "0.8"
73askama = "0.16"
74axum = "0.8"
75cargo_metadata = "0.23"
76figue = "5.0.0-rc.5"
77facet = { version = "0.50.0-rc.0", features = ["reflect"] }
78getrandom = "0.4"
79facet-git-tree = { git = "https://github.com/git-ents/facet-git-tree" }
80form_urlencoded = "1"
81gix = "0.84"
82gix-actor = "0.41"
83gix-date = "0.15"
84gix-features = { version = "0.48", features = ["zlib"] }
85gix-hash = { version = "0.25", features = ["sha1"] }
86gix-lock = "23.0"
87gix-object = "0.61"
88gix-odb = "0.81"
89gix-pack = "0.71"
90iddqd = "0.4"
91lsp-server = "0.9"
92lsp-types = "0.94"
93object_store = { version = "0.14", default-features = false, features = [
94 "aws",
95] }
96maud = { version = "0.27", features = ["axum"] }
97proptest = "1"
98pulldown-cmark = { version = "0.13", default-features = false, features = ["html"] }
99rayon = "1"
100rstest = "0.26"
101semver = "1"
102serde_json = "1"
103spdx = "0.13"
104ssh-key = { version = "0.6", features = ["ed25519"] }
105stateright = "0.31"
106target-lexicon = "0.13"
107tempfile = "3"
108thiserror = "2"
109# The CLI's one HTTP client (`git ents login`): synchronous, so no tokio
110# runtime for two requests, and rustls with the ring provider, so the
111# musl static release cross-build (`cargo zigbuild`) stays pure Rust.
112ureq = { version = "3", default-features = false, features = ["rustls"] }
113tokio = { version = "1", features = [
114 "rt-multi-thread",
115 "macros",
116 "net",
117 "process",
118 "io-util",
119 "sync",
120] }
121tokio-postgres = { version = "0.7", default-features = false, features = [
122 "runtime",
123] }
124
125# These lint configurations were originally pulled from [Evan Schwartz][1].
126# [1]: https://emschwartz.me/your-clippy-config-should-be-stricter/
127[workspace.lints.clippy]
128
129# Don't Panic - prevent panics from unwraps and unsafe slicing or indexing
130string_slice = "warn"
131indexing_slicing = "warn"
132unwrap_used = "warn"
133panic = "warn"
134todo = "warn"
135unimplemented = "warn"
136unreachable = "warn"
137get_unwrap = "warn"
138unwrap_in_result = "warn"
139unchecked_time_subtraction = "warn"
140panic_in_result_fn = "warn"
141
142# Optional - see post for caveats
143expect_used = "warn"
144arithmetic_side_effects = "warn"
145
146# Don't Fail Silently - prevent dropped futures and swallowed errors
147let_underscore_future = "warn"
148let_underscore_must_use = "warn"
149unused_result_ok = "warn"
150map_err_ignore = "warn"
151assertions_on_result_states = "warn"
152
153# Don't Do Bad Async Stuff - prevent deadlocks and concurrency bugs
154await_holding_lock = "warn"
155await_holding_refcell_ref = "warn"
156if_let_mutex = "warn" # only relevant on editions before 2024
157large_futures = "warn"
158
159# Don't Do Unsafe Things with Memory
160mem_forget = "warn"
161undocumented_unsafe_blocks = "warn"
162multiple_unsafe_ops_per_block = "warn"
163unnecessary_safety_doc = "warn"
164unnecessary_safety_comment = "warn"
165
166# Don't Do Potentially Incorrect Things with Numbers
167float_cmp = "warn"
168float_cmp_const = "warn"
169lossy_float_literal = "warn"
170cast_sign_loss = "warn"
171invalid_upcast_comparisons = "warn"
172cast_possible_wrap = "warn"
173cast_precision_loss = "warn"
174cast_possible_truncation = "warn"
175
176# Don't Do Bad Things That are Easy to Avoid
177rc_mutex = "warn"
178debug_assert_with_mut_call = "warn"
179iter_not_returning_iterator = "warn"
180expl_impl_clone_on_copy = "warn"
181infallible_try_from = "warn"
182dbg_macro = "warn"
183
184# Don't `allow` Your Way Around These Lints - every suppression must be
185# a deliberate #[expect(..., reason = "…")] rather than a silent #[allow]
186allow_attributes = "warn"
187allow_attributes_without_reason = "warn"