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
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
[]
# `macrame` is taken on crates.io — an unrelated wasm-bindgen macro crate at
# 0.0.1 — so the *package* is published as `macrame-db`. The `[lib]` name below
# keeps the import path `use macrame::…` unchanged, so this is a registry name
# and not a rename of the crate anyone writes against.
= "macrame-db"
= "0.7.0"
= "2021"
# Measured, not declared: `cargo +1.88.0 check --all-features --all-targets`
# passes and 1.85 does not.
#
# **This floor is not ours.** Macrame's own code needs 1.73 (`div_ceil`; 1.70
# for `Option::is_some_and`). The binding constraint is `home@0.5.12` at 1.88,
# reached through `libsql-ffi`'s *build*-dependency on bindgen -> which -> home
# — and a build-dependency binds consumers too, because libsql-ffi compiles the
# amalgamation on every downstream build. Lowering it means pinning that chain
# (`cargo update home --precise …`), not changing anything here.
= "1.88"
= ["opticsWolf"]
= "A Bitemporal Graph Ledger on libSQL · Embedded knowledge database"
# crates.io only *warns* locally when these are missing — `cargo publish
# --dry-run` passes without them — but the registry API rejects an upload with
# no license, so the first real publish would fail after a full verify build.
= "MIT OR Apache-2.0"
= "https://github.com/opticsWolf/Macrame"
= "README.md"
= ["bitemporal", "graph", "libsql", "ledger", "database"]
= ["database", "database-implementations", "data-structures"]
# The Python binding's tree, kept out of the `.crate` tarball (P0, D-098).
#
# The package root is the repo root — deliberately, because `tests/` reaches
# `docs/` and `src/` through `include_str!` and moving the crate down a level
# would put those outside the published tarball. The cost of that choice is
# this list: everything at the root is packaged unless named here.
#
# `bindings/` is **not** listed and does not need to be. Cargo already skips a
# subdirectory that carries its own `Cargo.toml`, since that is another
# package; `cargo package --list` is the check, and it is asserted by
# `tests/packaging_tests.rs` rather than left to memory.
= [
"pyproject.toml",
"python/",
"tests_py/",
"/.venv/",
"*.whl",
]
# The Python bindings (P0, D-098). Additive on purpose: the root stays a
# *package*, and Cargo's default for a workspace root that is itself a package
# is that package alone — so `default-members` is deliberately absent and
# `cargo test`, `cargo clippy --all-targets`, `cargo check --all-features` and
# `cargo publish` here are the same commands they were before, scoped to
# `macrame-db`. pyo3 is compiled only when something names it (`-p macrame-py`,
# or maturin).
#
# That is a claim about Cargo's behaviour, so it is checked rather than
# believed: `tests/packaging_tests.rs` asserts `cargo metadata`'s
# `workspace_default_members` is this package alone.
#
# `bindings/python` is `publish = false`, so `cargo publish` still uploads
# exactly one package.
[]
= ["bindings/python"]
# The import path stays `macrame`, independent of the registry name above.
# Without this a dependent would have to write `use macrame_db::…`, and every
# rustdoc link, doc-test and example in the crate says `macrame`.
[]
= "macrame"
= "src/lib.rs"
[]
= "0.9.30"
= { = "1", = ["full"] }
= { = "1.0", = ["derive"] }
= "1.0"
= "1.3"
= "0.13"
= "1.0"
= "0.1"
= "1.1"
[]
= "3.8"
= "0.4"
= "1"
# §9's harness (D-055). `default-features = false` drops the plotting and HTML
# report stack, which is most of criterion's dependency tree and none of the
# measurement — the numbers come out on stdout and into `target/criterion` either
# way.
= { = "0.5", = false, = [
"async_tokio",
"cargo_bench_support",
] }
[]
= []
# The generated-history test binaries. Off by default, as the second half of
# the R15 mitigation — the first half is `RUST_TEST_THREADS = "1"` in
# .cargo/config.toml, which alone takes the rest of the suite to 0 bad runs in
# 30. These do not follow it there: a property case needs its own database, and
# `doctrine_property_tests` still faults ~3/25 serialised. A suite that fails
# for reasons unrelated to the code under test trains people to ignore red, so
# the residue is quarantined rather than tolerated.
#
# Quarantined, not silenced. These are the tests that found D-035, they run as
# their own step, and `.proptest-regressions` replays every failure ever found
# before a single new case is generated.
#
# cargo test --features property-tests
= []
# Write-actor latency counters (T1.4, D-079). Off by default.
#
# Off is the right default because the crate's contract is a latency bound and
# the instrumentation is not free of *risk* even where it is free of cost — but
# it is close to free of cost: with the feature off `HoldTimer` reads no clock
# and `ActorMetrics` is a ZST whose methods are empty, so the actor loop compiles
# to what it compiled to before. See `src/metrics.rs` for why that is arranged as
# two impls of one type rather than `#[cfg]` inside the loop.
#
# cargo test --features metrics
= []
[[]]
= "actor_metrics_tests"
= ["metrics"]
# T1.1's evidence. Needs `metrics` because the question is what the *actor* held
# for, and wall time on the caller's side includes queueing.
[[]]
= "archive_window_diag"
= ["metrics"]
# T1.3's evidence, for the same reason.
[[]]
= "bulk_atomic_diag"
= ["metrics"]
# T3.4's evidence: the hold must not move while the total does.
[[]]
= "pipeline_diag"
= ["metrics"]
# T1.2's evidence. The question is the longest single *turn*, which only the
# actor's own counters can answer.
[[]]
= "shadow_rebuild_diag"
= ["metrics"]
[[]]
= "integrity_property_tests"
= ["property-tests"]
[[]]
= "doctrine_property_tests"
= ["property-tests"]
[[]]
= "graph_property_tests"
= ["property-tests"]
# §9's budgets, measured (D-055). Not a CI gate — see the note at the top of the
# file for why absolute durations on arbitrary hardware are the wrong shape, and
# what criterion baselines do instead.
[[]]
= "budgets"
= false