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
172
173
174
175
176
177
178
179
180
181
182
183
//! Alef's own built-in `lint`/`setup`/`update`/`clean`/`build` pipeline data carriers.
//!
//! None of these five types are part of the `alef.toml` schema: 0.82.0 removed
//! `[lint.<lang>]`, `[setup.<lang>]`, `[update.<lang>]`, `[clean.<lang>]`, and
//! `[build_commands.<lang>]` (at both `[workspace.<key>.<lang>]` and `[crates.<key>.<lang>]`)
//! entirely -- alef now owns those commands end to end. Each struct here is a plain data
//! carrier returned by its matching `core::config::{lint,setup,update,build,clean}_defaults`
//! module and consumed by the matching `cli::pipeline::commands` handler; none derive
//! `Serialize`/`Deserialize`/`JsonSchema` any more, and none carry `deny_unknown_fields`.
//! `TestConfig` is the sole survivor of the old six-table family and stays in `output.rs`
//! itself alongside the other schema types, since `[test.<lang>]` is still deserialized from a
//! real `alef.toml`.
//!
//! Split out of `output.rs` to keep that file under the repo's 1,000-line cap.
use ;
use PathBuf;
/// Alef's own built-in lint pipeline for one language.
///
/// No longer part of the `alef.toml` schema (0.82.0 removed the `[lint.<lang>]` /
/// `[workspace.lint.<lang>]` / `[crates.lint.<lang>]` override tables): alef now owns lint end to
/// end, so this is a plain data carrier returned by [`super::lint_defaults::default_lint_config`]
/// and consumed by `cli::pipeline::commands::lint`, never deserialized from a consumer's config.
/// Alef's own built-in update pipeline for one language.
///
/// No longer part of the `alef.toml` schema (0.82.0 removed the `[update.<lang>]` /
/// `[workspace.update.<lang>]` / `[crates.update.<lang>]` override tables): alef now owns the
/// update command end to end, so this is a plain data carrier returned by
/// [`super::update_defaults::default_update_config`], never deserialized from a consumer's
/// config.
/// Alef's own built-in setup pipeline for one language.
///
/// No longer part of the `alef.toml` schema (0.82.0 removed the `[setup.<lang>]` /
/// `[workspace.setup.<lang>]` / `[crates.setup.<lang>]` override tables): alef now owns setup end
/// to end, so this is a plain data carrier returned by
/// [`super::setup_defaults::default_setup_config`], never deserialized from a consumer's config.
/// Alef's own built-in clean pipeline for one language.
///
/// No longer part of the `alef.toml` schema (0.82.0 removed the `[clean.<lang>]` /
/// `[workspace.clean.<lang>]` / `[crates.clean.<lang>]` override tables): alef now owns clean end
/// to end, so this is a plain data carrier returned by
/// [`super::clean_defaults::default_clean_config`], never deserialized from a consumer's config.
/// Alef's own built-in build pipeline for one language.
///
/// No longer part of the `alef.toml` schema for real `alef.toml` files (0.82.0 removed the
/// `[build_commands.<lang>]` / `[workspace.build_commands.<lang>]` / `[crates.build_commands.<lang>]`
/// override tables): alef now owns the build command end to end, so this is a plain data carrier
/// returned by [`super::build_defaults::default_build_config`]. The one exception is this crate's
/// own `#[cfg(test)]` build-orchestration tests, which still populate
/// [`crate::core::config::ResolvedCrateConfig::build_commands`] directly (in-memory, never via
/// TOML) to keep hermetic control over what a test "build" actually runs -- see that field's doc
/// comment. ~keep