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
[]
= "djogi-cli"
= true
= true
= true
= true
= true
= true
= true
= "CLI for the Djogi framework — migrations, shell, db reset, status"
= "https://docs.rs/djogi-cli"
= "README.md"
= ["djogi", "cli", "migrate", "orm"]
= ["command-line-utilities", "database"]
[[]]
= "djogi"
= "src/main.rs"
[]
= "src/lib.rs"
[]
= true
= true
= true
# Used by the `migrations compose` glue to take the compose-time
# clock that lands in the version slug. The djogi crate already
# carries `time` via the workspace dep; the CLI binary picks it up
# directly so the compose path stays a thin wrapper.
= true
# Used by the `live` subcommand to surface typed CLI errors
# (`LiveCmdError`) without per-call boilerplate.
= true
# Used by `verify` to compare the audit-DB error's SQLSTATE against
# `SqlState::UNDEFINED_TABLE` (`42P01`) — the constant lives in
# `tokio_postgres::error`. djogi already depends on tokio-postgres
# transitively; declaring it directly here keeps the import path
# stable (no `djogi::__private::*` reach-through from CLI code).
= true
# Used by `db reset` (issue #118) to plumb the audit-DB
# pool from `djogi::migrate::build_audit_pool` into
# `ResetRequest::audit_pool`. The runner exposes the raw deadpool
# handle on `RunnerCtx::audit_pool` deliberately (see the doc on
# that field for the rationale); declaring deadpool-postgres directly
# here mirrors the same "stable import path" reasoning as the
# tokio-postgres dep above.
= true
# Used by `db reset` (issue #118) to emit best-effort
# degradation warnings when audit-pool URL resolution or pool
# construction fails. djogi already depends on tracing transitively;
# declaring it directly here keeps the macro path stable.
= true
# Used by `analyze` to derive `Serialize` on `TableHealth` and
# `Recommendation` so T10.2 can emit deterministic JSON output via
# `serde_json`. The pure recommend() layer (T10.1) only needs the
# derive; the JSON encoder lands with the live-DB wiring.
= true
# Used by `analyze --format json` to emit a deterministic, sorted
# array of `{table_name, recommendation, ...}` rows. We pick
# `to_writer_pretty` so CI dashboards can diff yesterday's output
# against today's without reformatting first; serde's struct field
# order is preserved by `serde_json` so projection through a named
# `Row` struct gives byte-stable output.
= true
# Used by `djogi schema` (T12.2) to walk
# `inventory::iter::<&'static ModelDescriptor>` and emit a
# deterministic JSON dump of every registered model. The descriptor
# crate (`djogi`) registers models via the same `inventory` crate;
# the CLI binary must link the same version so the iter resolves.
= true
# Re-exported from djogi-macros so adopters can use
# `djogi_cli::djogi_main!(…)` and `djogi_cli::link_anchor!(Model)` at
# the binary entry point to prevent LTO from dropping inventory data.
= true
# djogi#119 — the CLI integration tests below import shared helpers
# from `djogi::testing::cli`, which is gated behind djogi's `testing`
# feature. Listing djogi here as a dev-dep with the feature enabled
# unions the feature only for test/example/bench builds; ordinary
# `cargo build -p djogi-cli` continues to use the regular
# [dependencies] entry above. Test-built artifacts may see the unified
# feature, which is acceptable because `testing` only exposes test
# helpers.
[]
= { = true, = ["testing"] }
# T10.3 spawns the compiled `djogi` binary as a subprocess, seeds a
# per-test database via `#[djogi_test]`, and asserts CLI output.
# Cargo only auto-discovers tests directly under `tests/*.rs`; the
# explicit `[[test]]` entries below register the subdirectory layout.
[[]]
= "djogi_verify_cli"
= "tests/internal/djogi_verify_cli.rs"
= true
[[]]
= "djogi_analyze_recommendations"
= "tests/internal/djogi_analyze_recommendations.rs"
= true
[[]]
= "adopter_linked_cli"
= "tests/internal/adopter_linked_cli.rs"
= true
[[]]
= "descriptor_provider"
= "tests/internal/descriptor_provider.rs"
= true