Skip to content

Commit 36b058c

Browse files
authored
fix: check crate workspace instead each crate (#4560)
1 parent 692cc45 commit 36b058c

File tree

4 files changed

+62
-50
lines changed

4 files changed

+62
-50
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ jobs:
188188
run: make run-all-unit-test
189189
- name: Crate version check
190190
if: matrix.check == 'crate-version'
191-
run: cargo run --manifest-path release-tools/check-crate-version/Cargo.toml -- --crates-dir crates --publish-list-path release-tools/check-crate-version/publish-list.toml
191+
run: cargo run --manifest-path release-tools/check-crate-version/Cargo.toml -- --root-cargo-dir . --publish-list-path release-tools/check-crate-version/publish-list.toml
192192
- name: Audit crate licenses + advisories
193193
if: matrix.check == 'crate-audit'
194194
continue-on-error: true

Cargo.lock

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

Cargo.toml

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ members = [
6060
resolver = "2"
6161

6262
[workspace.package]
63-
version = "0.50.0"
63+
version = "0.50.1"
6464
edition = "2024"
6565
license = "Apache-2.0"
6666
repository = "https://github.com/infinyon/fluvio"
@@ -212,21 +212,21 @@ fluvio-sc = { path = "crates/fluvio-sc", default-features = false }
212212
fluvio-spu = { path = "crates/fluvio-spu", default-features = false }
213213
fluvio-connector-derive = { path = "crates/fluvio-connector-derive" }
214214
# Published fluvio dependencies
215-
fluvio = { version = "0.50.0", path = "crates/fluvio" }
216-
fluvio-compression = { version = "0.50.0", path = "crates/fluvio-compression", default-features = false }
217-
fluvio-controlplane-metadata = { version = "0.50.0", default-features = false, path = "crates/fluvio-controlplane-metadata" }
218-
fluvio-package-index = { version = "0.50.0", path = "crates/fluvio-package-index", default-features = false }
219-
fluvio-protocol = { version = "0.50.0", path = "crates/fluvio-protocol" }
220-
fluvio-sc-schema = { version = "0.50.0", path = "crates/fluvio-sc-schema", default-features = false }
221-
fluvio-smartengine = { version = "0.50.0", path = "crates/fluvio-smartengine", default-features = false }
222-
fluvio-smartmodule = { version = "0.50.0", path = "crates/fluvio-smartmodule", default-features = false }
223-
fluvio-smartmodule-derive = { version = "0.50.0", path = "crates/fluvio-smartmodule-derive", default-features = false }
224-
fluvio-socket = { version = "0.50.0", path = "crates/fluvio-socket", default-features = false }
225-
fluvio-spu-schema = { version = "0.50.0", path = "crates/fluvio-spu-schema", default-features = false }
226-
fluvio-stream-dispatcher = { version = "0.50.0", path = "crates/fluvio-stream-dispatcher" }
227-
fluvio-stream-model = { version = "0.50.0", path = "crates/fluvio-stream-model", default-features = false }
228-
fluvio-protocol-derive = { version = "0.50.0", path = "crates/fluvio-protocol-derive", default-features = false }
229-
fluvio-types = { version = "0.50.0", path = "crates/fluvio-types", default-features = false }
215+
fluvio = { version = "0.50.1", path = "crates/fluvio" }
216+
fluvio-compression = { version = "0.50.1", path = "crates/fluvio-compression", default-features = false }
217+
fluvio-controlplane-metadata = { version = "0.50.1", default-features = false, path = "crates/fluvio-controlplane-metadata" }
218+
fluvio-package-index = { version = "0.50.1", path = "crates/fluvio-package-index", default-features = false }
219+
fluvio-protocol = { version = "0.50.1", path = "crates/fluvio-protocol" }
220+
fluvio-sc-schema = { version = "0.50.1", path = "crates/fluvio-sc-schema", default-features = false }
221+
fluvio-smartengine = { version = "0.50.1", path = "crates/fluvio-smartengine", default-features = false }
222+
fluvio-smartmodule = { version = "0.50.1", path = "crates/fluvio-smartmodule", default-features = false }
223+
fluvio-smartmodule-derive = { version = "0.50.1", path = "crates/fluvio-smartmodule-derive", default-features = false }
224+
fluvio-socket = { version = "0.50.1", path = "crates/fluvio-socket", default-features = false }
225+
fluvio-spu-schema = { version = "0.50.1", path = "crates/fluvio-spu-schema", default-features = false }
226+
fluvio-stream-dispatcher = { version = "0.50.1", path = "crates/fluvio-stream-dispatcher" }
227+
fluvio-stream-model = { version = "0.50.1", path = "crates/fluvio-stream-model", default-features = false }
228+
fluvio-protocol-derive = { version = "0.50.1", path = "crates/fluvio-protocol-derive", default-features = false }
229+
fluvio-types = { version = "0.50.1", path = "crates/fluvio-types", default-features = false }
230230

231231
# Used to make eyre faster on debug builds
232232
# See https://github.com/yaahc/color-eyre#improving-perf-on-debug-builds

release-tools/check-crate-version/src/main.rs

Lines changed: 29 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ pub struct Cli {
2222
verbose: bool,
2323
#[arg(long, env, default_value = "./publish-list.toml")]
2424
publish_list_path: String,
25-
#[arg(long, env, default_value = "../../crates")]
26-
crates_dir: String,
25+
#[arg(long, env, default_value = "../../")]
26+
root_cargo_dir: String,
2727
#[arg(long, env, default_value = "./crates_io")]
2828
crates_io_dir: String,
2929
}
@@ -47,7 +47,7 @@ async fn main() {
4747
crate_name.clone(),
4848
tokio::spawn(check_crate_status(
4949
crate_name,
50-
cli.crates_dir.clone(),
50+
cli.root_cargo_dir.clone(),
5151
cli.crates_io_dir.clone(),
5252
)),
5353
));
@@ -58,7 +58,7 @@ async fn main() {
5858
crate_name.clone(),
5959
tokio::spawn(check_crate_status(
6060
crate_name,
61-
cli.crates_dir.clone(),
61+
cli.root_cargo_dir.clone(),
6262
cli.crates_io_dir.clone(),
6363
)),
6464
));
@@ -77,7 +77,12 @@ async fn main() {
7777
match status {
7878
CrateStatus::VersionBumped(manifest_diff) => {
7979
println!("🟢 {crate_name:-padding$} Version number has been updated");
80-
diff_crate_src(&crate_name, &cli.crates_dir, &cli.crates_io_dir, verbose);
80+
diff_crate_src(
81+
&crate_name,
82+
&cli.root_cargo_dir,
83+
&cli.crates_io_dir,
84+
verbose,
85+
);
8186
if verbose {
8287
println!("{manifest_diff}");
8388
}
@@ -87,7 +92,7 @@ async fn main() {
8792
}
8893
CrateStatus::CodeChanged(manifest_diff) => {
8994
println!("⛔ {crate_name:-padding$} Code changed but version number did not:");
90-
diff_crate_src(&crate_name, &cli.crates_dir, &cli.crates_io_dir, true);
95+
diff_crate_src(&crate_name, &cli.root_cargo_dir, &cli.crates_io_dir, true);
9196
if let Some(manifest_diff) = manifest_diff {
9297
println!("{manifest_diff}");
9398
}
@@ -112,19 +117,19 @@ async fn main() {
112117

113118
async fn check_crate_status(
114119
crate_name: String,
115-
crates_dir: String,
120+
root_cargo_dir: String,
116121
crates_io_dir: String,
117122
) -> CrateStatus {
118123
if !check_crate_published(&crate_name).await {
119124
return CrateStatus::NotPublished;
120125
}
121126
download_crate(&crate_name, &crates_io_dir).await;
122127

123-
let manifests = Manifests::read(&crate_name, crates_dir.as_ref(), crates_io_dir.as_ref());
128+
let manifests = Manifests::read(&crate_name, root_cargo_dir.as_ref(), crates_io_dir.as_ref());
124129
let manifest_diff = manifests.diff();
125130

126131
match (
127-
diff_crate_src(&crate_name, &crates_dir, &crates_io_dir, false),
132+
diff_crate_src(&crate_name, &root_cargo_dir, &crates_io_dir, false),
128133
manifest_diff.is_some(),
129134
manifests.diff_versions(),
130135
) {
@@ -160,11 +165,16 @@ async fn check_crate_published(crate_name: &str) -> bool {
160165
}
161166

162167
/// Returns `true` if the local crate source is different from crates.io
163-
fn diff_crate_src(crate_name: &str, crates_dir: &str, crates_io_dir: &str, verbose: bool) -> bool {
168+
fn diff_crate_src(
169+
crate_name: &str,
170+
root_cargo_dir: &str,
171+
crates_io_dir: &str,
172+
verbose: bool,
173+
) -> bool {
164174
let mut cmd = Command::new("diff");
165175
cmd.arg("-brq")
166176
.arg(format!("{crates_io_dir}/{crate_name}/src"))
167-
.arg(format!("{crates_dir}/{crate_name}/src"));
177+
.arg(format!("{root_cargo_dir}/crates/{crate_name}/src"));
168178
if verbose {
169179
!cmd.status().unwrap().success()
170180
} else {
@@ -178,13 +188,11 @@ struct Manifests {
178188
}
179189

180190
impl Manifests {
181-
fn read(crate_name: &str, crates_dir: &str, crates_io_dir: &str) -> Self {
182-
let local_path = PathBuf::from(crates_dir)
183-
.join(crate_name)
184-
.join("Cargo.toml");
191+
fn read(crate_name: &str, root_cargo_dir: &str, crates_io_dir: &str) -> Self {
192+
let local_path = PathBuf::from(root_cargo_dir).join("Cargo.toml");
185193
let crates_io_path = PathBuf::from(crates_io_dir)
186194
.join(crate_name)
187-
.join("Cargo.toml.orig");
195+
.join("Cargo.toml");
188196

189197
let local_text = fs::read_to_string(&local_path)
190198
.unwrap_or_else(|_| panic!("{} not found", local_path.display()));
@@ -197,7 +205,11 @@ impl Manifests {
197205
}
198206

199207
fn diff_versions(&self) -> bool {
200-
self.local["package"]["version"] != self.crates_io["package"]["version"]
208+
println!(
209+
"Comparing versions: local={} crates.io={}",
210+
self.local["workspace"]["package"]["version"], self.crates_io["package"]["version"]
211+
);
212+
self.local["workspace"]["package"]["version"] != self.crates_io["package"]["version"]
201213
}
202214

203215
fn diff(&self) -> Option<String> {

0 commit comments

Comments
 (0)