From abea806b25523a66b84b3f43c07c2e1804b880ef Mon Sep 17 00:00:00 2001 From: konomae Date: Sun, 1 Jun 2025 19:58:31 +0900 Subject: [PATCH 1/5] wip --- src/proto.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/proto.rs b/src/proto.rs index 06fac25..04bcf4f 100644 --- a/src/proto.rs +++ b/src/proto.rs @@ -45,16 +45,16 @@ pub fn download_prebuilt( _ => unreachable!(), }; - let os = env.os; - - let prefix = match os { - HostOS::Linux => format!("zig-linux-{arch}-{version}"), - HostOS::MacOS => format!("zig-macos-{arch}-{version}"), - HostOS::Windows => format!("zig-windows-{arch}-{version}"), + let os = match env.os { + HostOS::Linux => "linux", + HostOS::MacOS => "macos", + HostOS::Windows => "windows", _ => unreachable!(), }; - let filename = if os.is_windows() { + let prefix = format!("zig-{os}-{arch}-{version}"); + + let filename = if env.os.is_windows() { format!("{prefix}.zip") } else { format!("{prefix}.tar.xz") From 64fa3cc2a35144f064f0f2003f5e1462bfcef4ef Mon Sep 17 00:00:00 2001 From: konomae Date: Sun, 1 Jun 2025 20:20:25 +0900 Subject: [PATCH 2/5] fix test --- tests/versions_test.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/versions_test.rs b/tests/versions_test.rs index adfd00f..f68166c 100644 --- a/tests/versions_test.rs +++ b/tests/versions_test.rs @@ -3,7 +3,7 @@ use proto_pdk_test_utils::*; generate_resolve_versions_tests!("zig-test", { "0.10" => "0.10.1", "0.11.0" => "0.11.0", - "0" => "0.14.0", + "0" => "0.14.1", }); #[tokio::test(flavor = "multi_thread")] From cda30d025e5a867e9138a03dfca8a46a01fe22b6 Mon Sep 17 00:00:00 2001 From: konomae Date: Sun, 1 Jun 2025 20:20:31 +0900 Subject: [PATCH 3/5] fix prefix --- src/proto.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/proto.rs b/src/proto.rs index 04bcf4f..9c6b5d6 100644 --- a/src/proto.rs +++ b/src/proto.rs @@ -52,7 +52,11 @@ pub fn download_prebuilt( _ => unreachable!(), }; - let prefix = format!("zig-{os}-{arch}-{version}"); + let prefix = if version >= VersionSpec::parse("0.14.1")? { + format!("zig-{arch}-{os}-{version}") + } else { + format!("zig-{os}-{arch}-{version}") + }; let filename = if env.os.is_windows() { format!("{prefix}.zip") From ab5271efdafbbc0f0225aad121813ffde5ffdd75 Mon Sep 17 00:00:00 2001 From: konomae Date: Sun, 1 Jun 2025 20:36:28 +0900 Subject: [PATCH 4/5] fix tests --- tests/download_test.rs | 86 +++++++++++++++++++++--------------------- tests/versions_test.rs | 4 +- 2 files changed, 45 insertions(+), 45 deletions(-) diff --git a/tests/download_test.rs b/tests/download_test.rs index ba80dcf..b489c9b 100644 --- a/tests/download_test.rs +++ b/tests/download_test.rs @@ -1,6 +1,6 @@ use proto_pdk_test_utils::*; -generate_download_install_tests!("zig-test", "0.11.0"); +generate_download_install_tests!("zig-test", "0.14.1"); mod canary { use super::*; @@ -21,23 +21,23 @@ async fn supports_linux_arm64() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-linux-aarch64-0.11.0".into()), + archive_prefix: Some("zig-aarch64-linux-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-linux-aarch64-0.11.0.tar.xz.minisig" + "https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz.minisig" .into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-linux-aarch64-0.11.0.tar.xz".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-linux-aarch64-0.11.0.tar.xz" + download_name: Some("zig-aarch64-linux-0.14.1.tar.xz".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-linux-0.14.1.tar.xz" .into(), ..Default::default() } @@ -57,22 +57,22 @@ async fn supports_linux_x64() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-linux-x86_64-0.11.0".into()), + archive_prefix: Some("zig-x86_64-linux-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz.minisig".into() + "https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz.minisig".into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-linux-x86_64-0.11.0.tar.xz".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz" + download_name: Some("zig-x86_64-linux-0.14.1.tar.xz".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-linux-0.14.1.tar.xz" .into(), ..Default::default() } @@ -92,22 +92,22 @@ async fn supports_linux_x86() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-linux-x86-0.11.0".into()), + archive_prefix: Some("zig-x86-linux-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-linux-x86-0.11.0.tar.xz.minisig".into() + "https://ziglang.org/download/0.14.1/zig-x86-linux-0.14.1.tar.xz.minisig".into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-linux-x86-0.11.0.tar.xz".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-linux-x86-0.11.0.tar.xz".into(), + download_name: Some("zig-x86-linux-0.14.1.tar.xz".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-x86-linux-0.14.1.tar.xz".into(), ..Default::default() } ); @@ -126,23 +126,23 @@ async fn supports_macos_arm64() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-macos-aarch64-0.11.0".into()), + archive_prefix: Some("zig-aarch64-macos-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz.minisig" + "https://ziglang.org/download/0.14.1/zig-aarch64-macos-0.14.1.tar.xz.minisig" .into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-macos-aarch64-0.11.0.tar.xz".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-macos-aarch64-0.11.0.tar.xz" + download_name: Some("zig-aarch64-macos-0.14.1.tar.xz".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-macos-0.14.1.tar.xz" .into(), ..Default::default() } @@ -162,22 +162,22 @@ async fn supports_macos_x64() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-macos-x86_64-0.11.0".into()), + archive_prefix: Some("zig-x86_64-macos-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz.minisig".into() + "https://ziglang.org/download/0.14.1/zig-x86_64-macos-0.14.1.tar.xz.minisig".into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-macos-x86_64-0.11.0.tar.xz".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-macos-x86_64-0.11.0.tar.xz" + download_name: Some("zig-x86_64-macos-0.14.1.tar.xz".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-macos-0.14.1.tar.xz" .into(), ..Default::default() } @@ -197,22 +197,22 @@ async fn supports_windows_arm64() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-windows-aarch64-0.11.0".into()), + archive_prefix: Some("zig-aarch64-windows-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-windows-aarch64-0.11.0.zip.minisig".into() + "https://ziglang.org/download/0.14.1/zig-aarch64-windows-0.14.1.zip.minisig".into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-windows-aarch64-0.11.0.zip".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-windows-aarch64-0.11.0.zip" + download_name: Some("zig-aarch64-windows-0.14.1.zip".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-aarch64-windows-0.14.1.zip" .into(), ..Default::default() } @@ -232,22 +232,22 @@ async fn supports_windows_x64() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-windows-x86_64-0.11.0".into()), + archive_prefix: Some("zig-x86_64-windows-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-windows-x86_64-0.11.0.zip.minisig".into() + "https://ziglang.org/download/0.14.1/zig-x86_64-windows-0.14.1.zip.minisig".into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-windows-x86_64-0.11.0.zip".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-windows-x86_64-0.11.0.zip" + download_name: Some("zig-x86_64-windows-0.14.1.zip".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-x86_64-windows-0.14.1.zip" .into(), ..Default::default() } @@ -267,22 +267,22 @@ async fn supports_windows_x86() { plugin .download_prebuilt(DownloadPrebuiltInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() }) .await, DownloadPrebuiltOutput { - archive_prefix: Some("zig-windows-x86-0.11.0".into()), + archive_prefix: Some("zig-x86-windows-0.14.1".into()), checksum_url: Some( - "https://ziglang.org/download/0.11.0/zig-windows-x86-0.11.0.zip.minisig".into() + "https://ziglang.org/download/0.14.1/zig-x86-windows-0.14.1.zip.minisig".into() ), checksum_public_key: Some( "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() ), - download_name: Some("zig-windows-x86-0.11.0.zip".into()), - download_url: "https://ziglang.org/download/0.11.0/zig-windows-x86-0.11.0.zip".into(), + download_name: Some("zig-x86-windows-0.14.1.zip".into()), + download_url: "https://ziglang.org/download/0.14.1/zig-x86-windows-0.14.1.zip".into(), ..Default::default() } ); @@ -301,7 +301,7 @@ async fn locates_unix_bin() { plugin .locate_executables(LocateExecutablesInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() @@ -328,7 +328,7 @@ async fn locates_windows_bin() { plugin .locate_executables(LocateExecutablesInput { context: ToolContext { - version: VersionSpec::parse("0.11.0").unwrap(), + version: VersionSpec::parse("0.14.1").unwrap(), ..Default::default() }, ..Default::default() diff --git a/tests/versions_test.rs b/tests/versions_test.rs index f68166c..03d1266 100644 --- a/tests/versions_test.rs +++ b/tests/versions_test.rs @@ -1,8 +1,8 @@ use proto_pdk_test_utils::*; generate_resolve_versions_tests!("zig-test", { - "0.10" => "0.10.1", - "0.11.0" => "0.11.0", + "0.14" => "0.14.1", + "0.14.0" => "0.14.0", "0" => "0.14.1", }); From 7fcb32034592c334c54aab6b5f8052c364321c4f Mon Sep 17 00:00:00 2001 From: konomae Date: Sun, 1 Jun 2025 20:47:16 +0900 Subject: [PATCH 5/5] add test --- tests/download_test.rs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/download_test.rs b/tests/download_test.rs index b489c9b..fa640e5 100644 --- a/tests/download_test.rs +++ b/tests/download_test.rs @@ -288,6 +288,42 @@ async fn supports_windows_x86() { ); } +#[tokio::test(flavor = "multi_thread")] +async fn supports_v0_14_0_and_below() { + let sandbox = create_empty_proto_sandbox(); + let plugin = sandbox + .create_plugin_with_config("zig-test", |config| { + config.host(HostOS::Linux, HostArch::Arm64); + }) + .await; + + assert_eq!( + plugin + .download_prebuilt(DownloadPrebuiltInput { + context: ToolContext { + version: VersionSpec::parse("0.14.0").unwrap(), + ..Default::default() + }, + ..Default::default() + }) + .await, + DownloadPrebuiltOutput { + archive_prefix: Some("zig-linux-aarch64-0.14.0".into()), + checksum_url: Some( + "https://ziglang.org/download/0.14.0/zig-linux-aarch64-0.14.0.tar.xz.minisig" + .into() + ), + checksum_public_key: Some( + "RWSGOq2NVecA2UPNdBUZykf1CCb147pkmdtYxgb3Ti+JO/wCYvhbAb/U".into() + ), + download_name: Some("zig-linux-aarch64-0.14.0.tar.xz".into()), + download_url: "https://ziglang.org/download/0.14.0/zig-linux-aarch64-0.14.0.tar.xz" + .into(), + ..Default::default() + } + ); +} + #[tokio::test(flavor = "multi_thread")] async fn locates_unix_bin() { let sandbox = create_empty_proto_sandbox();