Skip to content

Commit f11022e

Browse files
authored
update update-cratenames to get ALL dependency crates
1 parent 5559cf4 commit f11022e

File tree

2 files changed

+45
-23
lines changed

2 files changed

+45
-23
lines changed

eng/dict/crates.txt

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,36 +4,30 @@ async-trait
44
azure_canary
55
azure_canary_core
66
azure_core
7-
azure_core
8-
azure_core_amqp
97
azure_core_amqp
108
azure_core_macros
11-
azure_core_macros
129
azure_core_opentelemetry
13-
azure_core_opentelemetry
14-
azure_core_test
1510
azure_core_test
1611
azure_core_test_macros
17-
azure_core_test_macros
1812
azure_data_cosmos
1913
azure_identity
20-
azure_identity
21-
azure_messaging_eventhubs
2214
azure_messaging_eventhubs
2315
azure_messaging_eventhubs_checkpointstore_blob
2416
azure_messaging_servicebus
2517
azure_security_keyvault_certificates
2618
azure_security_keyvault_keys
2719
azure_security_keyvault_secrets
20+
azure_security_keyvault_test
2821
azure_storage_blob
29-
azure_storage_blob
22+
azure_storage_blob_test
3023
azure_storage_common
3124
azure_storage_queue
3225
base64
3326
bytes
3427
cargo_metadata
3528
clap
3629
criterion
30+
dotenvy
3731
dyn-clone
3832
fe2o3-amqp
3933
fe2o3-amqp-cbs
@@ -45,11 +39,14 @@ futures
4539
getrandom
4640
gloo-timers
4741
hmac
42+
http
4843
litemap
4944
moka
5045
openssl
5146
opentelemetry
47+
opentelemetry-appender-tracing
5248
opentelemetry-http
49+
opentelemetry-stdout
5350
opentelemetry_sdk
5451
pin-project
5552
proc-macro2
@@ -75,11 +72,9 @@ tokio
7572
tracing
7673
tracing-subscriber
7774
typespec
78-
typespec
79-
typespec_client_core
8075
typespec_client_core
8176
typespec_macros
82-
typespec_macros
77+
ureq
8378
url
8479
uuid
8580
wasm-bindgen-futures

eng/scripts/update-cratenames.rs

Lines changed: 38 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ toml = "0.8.10"
99
---
1010

1111
use cargo_util_schemas::manifest::TomlManifest;
12-
use std::{ffi::OsStr, fs, io::Write as _, path::PathBuf};
12+
use std::{collections::HashSet, ffi::OsStr, fs, io::Write as _, path::PathBuf};
1313

1414
fn main() {
1515
let workspace_root = get_workspace_root();
@@ -29,25 +29,52 @@ fn main() {
2929
.dependencies
3030
.as_ref()
3131
.expect("expected workspace dependencies");
32-
let mut crate_names: Vec<String> = dependencies.iter().map(|(name, _)| name.to_string()).collect();
32+
let mut crate_names: HashSet<String> = dependencies
33+
.iter()
34+
.map(|(name, _)| name.to_string())
35+
.collect();
3336

3437
// Extract workspace members.
35-
for relative_path in workspace_manifest
38+
let members = workspace_manifest
3639
.workspace
3740
.as_ref()
3841
.expect("expected workspace")
3942
.members
4043
.as_ref()
41-
.expect("expected workspace members")
42-
.into_iter() {
43-
let crate_name = PathBuf::from(relative_path)
44-
.file_stem()
45-
.and_then(OsStr::to_str)
46-
.expect("expected crate name")
47-
.to_string();
48-
crate_names.push(crate_name);
44+
.expect("expected workspace members");
45+
46+
for relative_path in members.into_iter() {
47+
let member_dir_name = PathBuf::from(relative_path)
48+
.file_stem()
49+
.map(|s| s.to_string_lossy().into_owned())
50+
.expect("member directory name");
51+
let member_manifest_path = workspace_root.join(relative_path).join("Cargo.toml");
52+
eprintln!("Reading member manifest {member_manifest_path:?}");
53+
let member_manifest = fs::read_to_string(&member_manifest_path)
54+
.unwrap_or_else(|_| panic!("member manifest content: {member_manifest_path:?}"));
55+
let member_manifest: TomlManifest = toml::from_str(&member_manifest)
56+
.unwrap_or_else(|_| panic!("deserialize member manifest: {member_manifest_path:?}"));
57+
58+
let sections = [
59+
member_manifest.dependencies,
60+
member_manifest.dev_dependencies,
61+
member_manifest.build_dependencies,
62+
];
63+
for section in sections.iter().flatten() {
64+
for (name, _) in section.iter() {
65+
crate_names.insert(name.to_string());
66+
}
4967
}
5068

69+
// Add the crate name for this member.
70+
if let Some(name) = member_manifest.package.as_ref().map(|p| p.name.as_ref()) {
71+
crate_names.insert(name.to_string());
72+
} else {
73+
crate_names.insert(member_dir_name.to_string());
74+
}
75+
}
76+
77+
let mut crate_names: Vec<String> = crate_names.into_iter().collect();
5178
crate_names.sort();
5279
let crate_names_path = workspace_root
5380
.join("eng/dict/crates.txt")

0 commit comments

Comments
 (0)