Skip to content

Commit 6c2a30f

Browse files
committed
Auto merge of #677 - Mark-Simulacrum:bump-deps, r=Mark-Simulacrum
Bump dependencies This takes care of most of the outdated dependencies, modulo hyper/warp.
2 parents f39875c + 808a542 commit 6c2a30f

File tree

9 files changed

+992
-747
lines changed

9 files changed

+992
-747
lines changed

Cargo.lock

Lines changed: 900 additions & 629 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ build = "build.rs"
99
opt-level = 0
1010

1111
[dependencies]
12-
base64 = "0.13.0"
12+
base64 = "0.20.0"
1313
bytes = "0.4.9"
1414
bytes_1 = { version = "1", package = "bytes" }
1515
chrono = { version = "0.4", features = ["serde"] }
@@ -25,7 +25,7 @@ http = "0.1.10"
2525
hyper = "0.12.8"
2626
lazy_static = "1.0"
2727
mime = "0.3.1"
28-
minifier = { version = "0.0.20", features = ["html"] }
28+
minifier = { version = "0.2", features = ["html"] }
2929
r2d2 = "0.8.2"
3030
r2d2_sqlite = "0.21.0"
3131
rusqlite = { version = "0.28.0", features = ["chrono", "functions", "bundled"] }
@@ -35,9 +35,8 @@ reqwest = { version = "0.11", features = ["blocking", "json"] }
3535
serde = "1.0"
3636
serde_derive = "1.0"
3737
serde_json = "1.0"
38-
serde_regex = "0.3.0"
39-
structopt = "0.2"
40-
structopt-derive = "0.2"
38+
serde_regex = "1.1.0"
39+
clap = { version = "4", features = ["derive"] }
4140
tar = "0.4.36"
4241
tempfile = "3.0.0"
4342
tera = "0.11.7"
@@ -46,7 +45,7 @@ url = "2"
4645
walkdir = "2"
4746
warp = "0.1.9"
4847
log = "0.4.6"
49-
env_logger = "0.9.0"
48+
env_logger = "0.10.0"
5049
hmac = "0.12"
5150
sha-1 = "0.10"
5251
rust_team_data = { git = "https://github.com/rust-lang/team" }
@@ -56,16 +55,16 @@ percent-encoding = "2.1.0"
5655
remove_dir_all = "0.7"
5756
ctrlc = "3.1.3"
5857
prometheus = "0.7.0"
59-
cargo_metadata = "0.12.1"
58+
cargo_metadata = "0.15"
6059
indexmap = "1.4.0"
6160
tokio = "1.18"
62-
aws-types = { version = "0.46", features = ["hardcoded-credentials"] }
63-
aws-smithy-http = "0.46"
64-
aws-smithy-async = "0.46"
65-
aws-sdk-s3 = "0.16"
61+
aws-types = { version = "0.52", features = ["hardcoded-credentials"] }
62+
aws-smithy-http = "0.52"
63+
aws-smithy-async = "0.52"
64+
aws-sdk-s3 = "0.22"
65+
thiserror = "1.0.38"
6666

6767
[dev-dependencies]
6868
assert_cmd = "2.0.4"
6969
difference = "2.0.0"
70-
num_cpus = "1.8.0"
71-
predicates = "1.0.0"
70+
predicates = "2.0.0"

src/cli.rs

Lines changed: 63 additions & 90 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
//! application state employs ownership techniques to ensure that
1010
//! parallel access is consistent and race-free.
1111
12+
use clap::Parser;
1213
use crater::actions::{self, Action, ActionsCtx};
1314
use crater::agent::{self, Capabilities};
1415
use crater::config::Config;
@@ -27,7 +28,6 @@ use std::net::SocketAddr;
2728
use std::path::PathBuf;
2829
use std::str::FromStr;
2930
use std::time::Duration;
30-
use structopt::clap::AppSettings;
3131

3232
// An experiment name
3333
#[derive(Debug, Clone)]
@@ -75,92 +75,70 @@ fn default_capabilities_for_target() -> Capabilities {
7575
Capabilities::new(caps)
7676
}
7777

78-
#[derive(structopt_derive::StructOpt)]
78+
#[derive(Parser)]
7979
#[allow(clippy::large_enum_variant)]
80-
#[structopt(
81-
name = "crater",
82-
about = "Kaboom!",
83-
raw(
84-
setting = "AppSettings::VersionlessSubcommands",
85-
setting = "AppSettings::DeriveDisplayOrder",
86-
setting = "AppSettings::SubcommandRequiredElseHelp"
87-
)
88-
)]
80+
#[clap(name = "crater", about = "Kaboom!")]
8981
pub enum Crater {
90-
#[structopt(
82+
#[clap(
9183
name = "prepare-local",
9284
about = "acquire toolchains, build containers, build crate lists"
9385
)]
9486
PrepareLocal,
9587

96-
#[structopt(name = "create-lists", about = "create all the lists of crates")]
88+
#[clap(name = "create-lists", about = "create all the lists of crates")]
9789
CreateLists {
98-
#[structopt(name = "lists")]
90+
#[clap(name = "lists")]
9991
lists: Vec<String>,
10092
},
10193

102-
#[structopt(name = "define-ex", about = "define an experiment")]
94+
#[clap(name = "define-ex", about = "define an experiment")]
10395
DefineEx {
104-
#[structopt(name = "experiment", long = "ex", default_value = "default")]
96+
#[clap(name = "experiment", long = "ex", default_value = "default")]
10597
ex: Ex,
106-
#[structopt(name = "tc-1")]
98+
#[clap(name = "tc-1")]
10799
tc1: Toolchain,
108-
#[structopt(name = "tc-2")]
100+
#[clap(name = "tc-2")]
109101
tc2: Toolchain,
110-
#[structopt(
111-
name = "mode",
112-
long = "mode",
113-
raw(
114-
default_value = "Mode::BuildAndTest.to_str()",
115-
possible_values = "Mode::possible_values()"
116-
)
117-
)]
102+
#[clap(name = "mode", long = "mode", default_value_t = Mode::BuildAndTest)]
118103
mode: Mode,
119-
#[structopt(
104+
#[clap(
120105
name = "crate-select",
121106
long = "crate-select",
122107
help = "The set of crates on which the experiment will run.",
123108
long_help = "The set of crates on which the experiment will run.\n\n\
124109
This can be one of (full, demo, random-{d}, top-{d}, local) \
125110
where {d} is a positive integer, or \"list:\" followed \
126111
by a comma-separated list of crates.",
127-
raw(default_value = "\"demo\"",)
112+
default_value = "demo"
128113
)]
129114
crates: DeferredCrateSelect,
130-
#[structopt(
115+
#[clap(
131116
name = "level",
132117
long = "cap-lints",
133-
raw(
134-
default_value = "CapLints::Forbid.to_str()",
135-
possible_values = "CapLints::possible_values()"
136-
)
118+
default_value_t = CapLints::Forbid
137119
)]
138120
cap_lints: CapLints,
139-
#[structopt(name = "priority", long = "priority", short = "p", default_value = "0")]
121+
#[clap(name = "priority", long = "priority", short = 'p', default_value = "0")]
140122
priority: i32,
141-
#[structopt(name = "ignore-blacklist", long = "ignore-blacklist")]
123+
#[clap(name = "ignore-blacklist", long = "ignore-blacklist")]
142124
ignore_blacklist: bool,
143-
#[structopt(name = "assign", long = "assign")]
125+
#[clap(name = "assign", long = "assign")]
144126
assign: Option<Assignee>,
145-
#[structopt(name = "requirement", long = "requirement")]
127+
#[clap(name = "requirement", long = "requirement")]
146128
requirement: Option<String>,
147129
},
148130

149-
#[structopt(name = "edit", about = "edit an experiment configuration")]
131+
#[clap(name = "edit", about = "edit an experiment configuration")]
150132
Edit {
151-
#[structopt(name = "name")]
133+
#[clap(name = "name")]
152134
name: String,
153-
#[structopt(name = "toolchain-start", long = "start")]
135+
#[clap(name = "toolchain-start", long = "start")]
154136
tc1: Option<Toolchain>,
155-
#[structopt(name = "toolchain-end", long = "end")]
137+
#[clap(name = "toolchain-end", long = "end")]
156138
tc2: Option<Toolchain>,
157-
#[structopt(
158-
name = "mode",
159-
long = "mode",
160-
raw(possible_values = "Mode::possible_values()")
161-
)]
139+
#[clap(name = "mode", long = "mode")]
162140
mode: Option<Mode>,
163-
#[structopt(
141+
#[clap(
164142
name = "crates",
165143
long = "crates",
166144
help = "The set of crates on which the experiment will run.",
@@ -170,131 +148,126 @@ pub enum Crater {
170148
by a comma-separated list of crates."
171149
)]
172150
crates: Option<DeferredCrateSelect>,
173-
#[structopt(
174-
name = "cap-lints",
175-
long = "cap-lints",
176-
raw(possible_values = "CapLints::possible_values()")
177-
)]
151+
#[clap(name = "cap-lints", long = "cap-lints")]
178152
cap_lints: Option<CapLints>,
179-
#[structopt(name = "priority", long = "priority", short = "p")]
153+
#[clap(name = "priority", long = "priority", short = 'p')]
180154
priority: Option<i32>,
181-
#[structopt(
155+
#[clap(
182156
name = "ignore-blacklist",
183157
long = "ignore-blacklist",
184158
conflicts_with = "no-ignore-blacklist"
185159
)]
186160
ignore_blacklist: bool,
187-
#[structopt(
161+
#[clap(
188162
name = "no-ignore-blacklist",
189163
long = "no-ignore-blacklist",
190164
conflicts_with = "ignore-blacklist"
191165
)]
192166
no_ignore_blacklist: bool,
193-
#[structopt(name = "assign", long = "assign")]
167+
#[clap(name = "assign", long = "assign")]
194168
assign: Option<Assignee>,
195-
#[structopt(name = "requirement", long = "requirement")]
169+
#[clap(name = "requirement", long = "requirement")]
196170
requirement: Option<String>,
197171
},
198172

199-
#[structopt(name = "delete-ex", about = "delete shared data for experiment")]
173+
#[clap(name = "delete-ex", about = "delete shared data for experiment")]
200174
DeleteEx {
201-
#[structopt(long = "ex", default_value = "default")]
175+
#[clap(long = "ex", default_value = "default")]
202176
ex: Ex,
203177
},
204178

205-
#[structopt(
179+
#[clap(
206180
name = "delete-all-results",
207181
about = "delete all results for an experiment"
208182
)]
209183
DeleteAllResults {
210-
#[structopt(name = "experiment", long = "ex", default_value = "default")]
184+
#[clap(name = "experiment", long = "ex", default_value = "default")]
211185
ex: Ex,
212186
},
213187

214-
#[structopt(
188+
#[clap(
215189
name = "delete-result",
216190
about = "delete results for a crate from an experiment"
217191
)]
218192
DeleteResult {
219-
#[structopt(name = "experiment", long = "ex", default_value = "default")]
193+
#[clap(name = "experiment", long = "ex", default_value = "default")]
220194
ex: Ex,
221-
#[structopt(name = "toolchain", long = "toolchain", short = "t")]
195+
#[clap(name = "toolchain", long = "toolchain", short = 't')]
222196
tc: Option<Toolchain>,
223-
#[structopt(name = "crate")]
197+
#[clap(name = "crate")]
224198
krate: Crate,
225199
},
226200

227-
#[structopt(name = "run-graph", about = "run a parallelized experiment")]
201+
#[clap(name = "run-graph", about = "run a parallelized experiment")]
228202
RunGraph {
229-
#[structopt(name = "experiment", long = "ex", default_value = "default")]
203+
#[clap(name = "experiment", long = "ex", default_value = "default")]
230204
ex: Ex,
231-
#[structopt(name = "threads", short = "t", long = "threads", default_value = "1")]
205+
#[clap(name = "threads", short = 't', long = "threads", default_value = "1")]
232206
threads: usize,
233-
#[structopt(name = "docker-env", long = "docker-env")]
207+
#[clap(name = "docker-env", long = "docker-env")]
234208
docker_env: Option<String>,
235-
#[structopt(name = "fast-workspace-init", long = "fast-workspace-init")]
209+
#[clap(name = "fast-workspace-init", long = "fast-workspace-init")]
236210
fast_workspace_init: bool,
237211
},
238212

239-
#[structopt(name = "gen-report", about = "generate the experiment report")]
213+
#[clap(name = "gen-report", about = "generate the experiment report")]
240214
GenReport {
241-
#[structopt(name = "experiment", long = "ex", default_value = "default")]
215+
#[clap(name = "experiment", long = "ex", default_value = "default")]
242216
ex: Ex,
243-
#[structopt(name = "destination")]
217+
#[clap(name = "destination")]
244218
dest: Dest,
245-
#[structopt(name = "force", long = "force")]
219+
#[clap(name = "force", long = "force")]
246220
force: bool,
247-
#[structopt(name = "output-templates", long = "output-templates")]
221+
#[clap(name = "output-templates", long = "output-templates")]
248222
output_templates: bool,
249223
},
250224

251-
#[structopt(name = "server")]
225+
#[clap(name = "server")]
252226
Server {
253-
#[structopt(
227+
#[clap(
254228
name = "bind",
255229
long = "bind",
256-
short = "b",
230+
short = 'b',
257231
help = "The address and port to bind to."
258232
)]
259233
bind: Option<SocketAddr>,
260234
},
261235

262-
#[structopt(name = "agent")]
236+
#[clap(name = "agent")]
263237
Agent {
264-
#[structopt(name = "url")]
238+
#[clap(name = "url")]
265239
url: String,
266-
#[structopt(name = "token")]
240+
#[clap(name = "token")]
267241
token: String,
268-
#[structopt(name = "threads", short = "t", long = "threads", default_value = "1")]
242+
#[clap(name = "threads", short = 't', long = "threads", default_value = "1")]
269243
threads: usize,
270-
#[structopt(name = "docker-env", long = "docker-env")]
244+
#[clap(name = "docker-env", long = "docker-env")]
271245
docker_env: Option<String>,
272-
#[structopt(name = "fast-workspace-init", long = "fast-workspace-init")]
246+
#[clap(name = "fast-workspace-init", long = "fast-workspace-init")]
273247
fast_workspace_init: bool,
274-
#[structopt(
248+
#[clap(
275249
name = "capabilities",
276250
help = "Registers additional capabilities for this agent.",
277251
long_help = "Registers additional capabilities for this agent.\n\n \
278252
These will be appended to the defaults for this platform, unless those \
279253
have been disabled via `--no-default-capabilities`.",
280-
long,
281-
raw(use_delimiter = "true")
254+
long
282255
)]
283256
capabilities: Vec<String>,
284-
#[structopt(
257+
#[clap(
285258
name = "no-default-capabilities",
286259
long,
287260
help = "Disables the default capabilities for this platform."
288261
)]
289262
no_default_capabilities: bool,
290263
},
291264

292-
#[structopt(
265+
#[clap(
293266
name = "check-config",
294267
about = "check if the config.toml file is valid"
295268
)]
296269
CheckConfig {
297-
#[structopt(name = "file")]
270+
#[clap(name = "file")]
298271
filename: Option<String>,
299272
},
300273
}

src/experiments.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,14 +185,14 @@ impl fmt::Display for Assignee {
185185
}
186186
}
187187

188-
#[derive(Debug, Fail)]
188+
#[derive(Debug, thiserror::Error)]
189189
#[cfg_attr(test, derive(PartialEq, Eq))]
190190
pub enum AssigneeParseError {
191-
#[fail(display = "the assignee is empty")]
191+
#[error("the assignee is empty")]
192192
Empty,
193-
#[fail(display = "unexpected assignee payload")]
193+
#[error("unexpected assignee payload")]
194194
UnexpectedPayload,
195-
#[fail(display = "invalid assignee kind: {}", _0)]
195+
#[error("invalid assignee kind: {0}")]
196196
InvalidKind(String),
197197
}
198198

0 commit comments

Comments
 (0)