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
[]
= "dynamic-config-git"
= "Read dynamic-config configuration from a git repository — GitHub, GitLab, Azure DevOps or any git host."
= "README.md"
= true
= true
# `gix` declares 1.85 and means it (edition 2024). The workspace floor stays at
# 1.71: the core crate owes nobody a git client, and a companion pays for what
# it pulls in. Measured with `cargo +1.85 check -p dynamic-config-git`.
= "1.85"
= true
= true
= true
= "https://docs.rs/dynamic-config-git"
= true
= true
= true
= true
[]
= { = true }
= { = true }
# Pure Rust, no libgit2, no C toolchain, no OpenSSL question — this workspace
# has no C dependency and adding one to read a YAML file would be a poor trade.
# `default-features = false` on purpose: the defaults carry a worktree, a
# status implementation, blame and a diff engine, none of which a store that
# reads one blob at one commit has any use for.
#
# Note what is *not* here: `max-performance-safe`. It turns on
# `gix-pack/pack-cache-lru-static`, whose LRU is `uluru`, which is MPL-2.0 —
# and this workspace's `deny.toml` allows permissive licences only, on the
# stated grounds that a copyleft dependency would leak into every user of a
# crate meant to be uncontroversial to add. `pack-cache-lru-dynamic` is the
# same idea over `clru` (MIT), and `parallel` is the rest of what
# `max-performance-safe` was wanted for.
= { = "0.86.0", = false, = [
"blocking-network-client",
"blocking-http-transport-reqwest-rust-tls",
"parallel",
"pack-cache-lru-dynamic",
"sha1",
] }
# Already in the graph — it *is* `blocking-http-transport-reqwest-rust-tls`'s
# client — and named here because `src/tls.rs` builds one directly. `gix`'s own
# transport builds its client from a `ClientBuilder` with no root store, no
# identity and no hook to reach either, and ignores the `ssl_ca_info` and
# `ssl_verify` fields its options type carries (only the `curl` backend reads
# them, measured against gix-transport 0.58.1). So a private CA and a client
# certificate need a client this crate built, which is the only reason this is
# a direct dependency.
#
# The same features `gix-transport` asks for, so nothing new is compiled and
# nothing new is licensed: `rustls` is `reqwest`'s pure-Rust stack, and its
# MSRV is 1.85 — this crate's floor exactly.
= { = "0.13.4", = false, = [
"blocking",
"rustls",
] }
[]
= { = true, = ["json", "yaml", "toml"] }
= { = true }
= { = "1.0.221", = ["derive"] }
# The scripted git host in `tests/over_https.rs`, which is the same host as the
# one in `over_http.rs` behind a TLS listener. A private CA and a server
# certificate are generated by the test that needs them and never checked in: a
# repository with a private key in it has a private key in it. Both crates are
# already in this workspace's graph — `dynamic-config-server` generates
# certificates the same way — so neither adds a licence or an advisory.
#
# `ring` for `rcgen`, matching the server crate; `aws-lc-rs` for `rustls`,
# matching what `reqwest` selects, so the one `rustls` build in this graph has
# exactly one provider to be the default.
= { = "0.14", = false, = [
"crypto",
"pem",
"ring",
] }
# `0.23.31`, shared across the workspace, and not a preference. Three
# requirements meet here: `aws-lc-rs` as a feature name does not exist before
# 0.23.2, `aws-smithy-http-client` requires `^0.23.31`, and
# `dynamic-config-python-remote` puts every store and the server in one graph.
# `-Z direct-minimal-versions` pins each direct declaration to its *own*
# floor, so any floor below the union's maximum is a contradiction rather
# than a lower bound.
= { = "0.23.31", = false, = [
"aws-lc-rs",
"std",
"tls12",
] }
# The scripted git host in `tests/over_http.rs` is a loopback socket, and a
# loopback socket is `http://`. `gix` refuses to put a credential on a plain
# HTTP connection unless this is on — which is exactly the behaviour the
# published crate should have, so it is enabled *here* and nowhere else: it
# reaches the test build and never a user's.
= { = "0.58.1", = false, = [
"http-client-insecure-credentials",
] }
[]
= true
= ["--cfg", "docsrs"]