This is an automated email from the ASF dual-hosted git repository.
maciej pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git
The following commit(s) were added to refs/heads/master by this push:
new 34280ab7b fix(sdk): fix broken Windows build for SDK and CLI (#2971)
34280ab7b is described below
commit 34280ab7bfe6df04693ab8fa094a96b0c201a900
Author: Hubert Gruszecki <[email protected]>
AuthorDate: Thu Mar 19 10:19:58 2026 +0100
fix(sdk): fix broken Windows build for SDK and CLI (#2971)
The Rust SDK and CLI are cross-platform but were never
compiled on Windows, allowing regressions to go
undetected. iggy-server does not support Windows (it
requires Linux io_uring), so only -p iggy -p iggy-cli
are built.
The posix_fadvise cfg guard was #[cfg(not(target_os =
"macos"))], which is true on Windows. Since the nix
crate is absent on Windows (unix-only dep), this caused
an unresolved crate error. Changed to #[cfg(unix)].
The new build-windows-sdk task follows the same pattern
as build-aarch64-gnu and build-macos-aarch64: listed in
components.yml, routed to windows-latest in _test.yml,
and handled in the pre-merge action. The disk cleanup
step is guarded to Linux-only since it uses sudo and
Linux-specific paths.
Bumps iggy, iggy_common, iggy_binary_protocol to
0.9.3-edge.1 and iggy-cli to 0.11.3-edge.1.
Refer to issue #2968.
---
.github/actions/rust/pre-merge/action.yml | 7 +++++++
.github/config/components.yml | 1 +
.github/workflows/_test.yml | 1 +
Cargo.lock | 8 ++++----
Cargo.toml | 8 ++++----
DEPENDENCIES.md | 8 ++++----
core/binary_protocol/Cargo.toml | 2 +-
core/cli/Cargo.toml | 2 +-
core/common/Cargo.toml | 2 +-
core/common/src/types/segment_storage/messages_reader.rs | 4 ++--
core/sdk/Cargo.toml | 2 +-
foreign/python/Cargo.toml | 2 +-
12 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/.github/actions/rust/pre-merge/action.yml
b/.github/actions/rust/pre-merge/action.yml
index 1f544183e..071ce5804 100644
--- a/.github/actions/rust/pre-merge/action.yml
+++ b/.github/actions/rust/pre-merge/action.yml
@@ -31,6 +31,7 @@ runs:
using: "composite"
steps:
- name: Cleanup disk space
+ if: runner.os == 'Linux'
run: |
echo "Disk space before cleanup:"
df -h
@@ -201,3 +202,9 @@ runs:
if: inputs.task == 'build-macos-aarch64'
run: cargo build --locked
shell: bash
+
+ # Windows builds (SDK and CLI only - iggy-server does not support Windows)
+ - name: Build Windows SDK and CLI
+ if: inputs.task == 'build-windows-sdk'
+ run: cargo build --locked -p iggy -p iggy-cli
+ shell: bash
diff --git a/.github/config/components.yml b/.github/config/components.yml
index e77ca3b7d..96422ed77 100644
--- a/.github/config/components.yml
+++ b/.github/config/components.yml
@@ -114,6 +114,7 @@ components:
- "build-aarch64-gnu"
- "build-aarch64-musl"
- "build-macos-aarch64"
+ - "build-windows-sdk"
# CLI component
rust-cli:
diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml
index 4a713d3ca..88e311f8a 100644
--- a/.github/workflows/_test.yml
+++ b/.github/workflows/_test.yml
@@ -42,6 +42,7 @@ jobs:
runs-on: ${{
(inputs.task == 'build-aarch64-gnu' || inputs.task ==
'build-aarch64-musl') && 'ubuntu-24.04-arm' ||
inputs.task == 'build-macos-aarch64' && 'macos-14' ||
+ inputs.task == 'build-windows-sdk' && 'windows-latest' ||
'ubuntu-latest'
}}
timeout-minutes: 60
diff --git a/Cargo.lock b/Cargo.lock
index dffee4844..5421abad9 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -5124,7 +5124,7 @@ checksum =
"cd62e6b5e86ea8eeeb8db1de02880a6abc01a397b2ebb64b5d74ac255318f5cb"
[[package]]
name = "iggy"
-version = "0.9.2-edge.1"
+version = "0.9.3-edge.1"
dependencies = [
"async-broadcast",
"async-dropper",
@@ -5212,7 +5212,7 @@ dependencies = [
[[package]]
name = "iggy-cli"
-version = "0.11.2-edge.1"
+version = "0.11.3-edge.1"
dependencies = [
"ahash 0.8.12",
"anyhow",
@@ -5325,7 +5325,7 @@ dependencies = [
[[package]]
name = "iggy_binary_protocol"
-version = "0.9.2-edge.1"
+version = "0.9.3-edge.1"
dependencies = [
"bytemuck",
"bytes",
@@ -5335,7 +5335,7 @@ dependencies = [
[[package]]
name = "iggy_common"
-version = "0.9.2-edge.1"
+version = "0.9.3-edge.1"
dependencies = [
"aes-gcm",
"ahash 0.8.12",
diff --git a/Cargo.toml b/Cargo.toml
index 539251436..bd6fb22a4 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -158,10 +158,10 @@ humantime = "2.3.0"
hwlocality = "1.0.0-alpha.11"
iceberg = "0.8.0"
iceberg-catalog-rest = "0.8.0"
-iggy = { path = "core/sdk", version = "0.9.2-edge.1" }
-iggy-cli = { path = "core/cli", version = "0.11.2-edge.1" }
-iggy_binary_protocol = { path = "core/binary_protocol", version =
"0.9.2-edge.1" }
-iggy_common = { path = "core/common", version = "0.9.2-edge.1" }
+iggy = { path = "core/sdk", version = "0.9.3-edge.1" }
+iggy-cli = { path = "core/cli", version = "0.11.3-edge.1" }
+iggy_binary_protocol = { path = "core/binary_protocol", version =
"0.9.3-edge.1" }
+iggy_common = { path = "core/common", version = "0.9.3-edge.1" }
iggy_connector_sdk = { path = "core/connectors/sdk", version = "0.2.1-edge.1" }
integration = { path = "core/integration" }
journal = { path = "core/journal" }
diff --git a/DEPENDENCIES.md b/DEPENDENCIES.md
index a4069999c..ca963183c 100644
--- a/DEPENDENCIES.md
+++ b/DEPENDENCIES.md
@@ -446,14 +446,14 @@ ident_case: 1.0.1, "Apache-2.0 OR MIT",
idna: 1.1.0, "Apache-2.0 OR MIT",
idna_adapter: 1.2.1, "Apache-2.0 OR MIT",
if_chain: 1.0.3, "Apache-2.0 OR MIT",
-iggy: 0.9.2-edge.1, "Apache-2.0",
+iggy: 0.9.3-edge.1, "Apache-2.0",
iggy-bench: 0.4.1-edge.1, "Apache-2.0",
iggy-bench-dashboard-server: 0.6.3-edge.1, "Apache-2.0",
-iggy-cli: 0.11.2-edge.1, "Apache-2.0",
+iggy-cli: 0.11.3-edge.1, "Apache-2.0",
iggy-connectors: 0.3.2-edge.1, "Apache-2.0",
iggy-mcp: 0.3.2-edge.1, "Apache-2.0",
-iggy_binary_protocol: 0.9.2-edge.1, "Apache-2.0",
-iggy_common: 0.9.2-edge.1, "Apache-2.0",
+iggy_binary_protocol: 0.9.3-edge.1, "Apache-2.0",
+iggy_common: 0.9.3-edge.1, "Apache-2.0",
iggy_connector_elasticsearch_sink: 0.3.2-edge.1, "Apache-2.0",
iggy_connector_elasticsearch_source: 0.3.2-edge.1, "Apache-2.0",
iggy_connector_iceberg_sink: 0.3.2-edge.1, "Apache-2.0",
diff --git a/core/binary_protocol/Cargo.toml b/core/binary_protocol/Cargo.toml
index 12ed184fd..e3ec5ecdd 100644
--- a/core/binary_protocol/Cargo.toml
+++ b/core/binary_protocol/Cargo.toml
@@ -17,7 +17,7 @@
[package]
name = "iggy_binary_protocol"
-version = "0.9.2-edge.1"
+version = "0.9.3-edge.1"
description = "Wire protocol types and codec for the Iggy binary protocol.
Shared between server and SDK."
edition = "2024"
license = "Apache-2.0"
diff --git a/core/cli/Cargo.toml b/core/cli/Cargo.toml
index cbd35a625..2a631cb24 100644
--- a/core/cli/Cargo.toml
+++ b/core/cli/Cargo.toml
@@ -17,7 +17,7 @@
[package]
name = "iggy-cli"
-version = "0.11.2-edge.1"
+version = "0.11.3-edge.1"
edition = "2024"
authors = ["[email protected]"]
repository = "https://github.com/apache/iggy"
diff --git a/core/common/Cargo.toml b/core/common/Cargo.toml
index 74d9dab1e..d3d3794ba 100644
--- a/core/common/Cargo.toml
+++ b/core/common/Cargo.toml
@@ -16,7 +16,7 @@
# under the License.
[package]
name = "iggy_common"
-version = "0.9.2-edge.1"
+version = "0.9.3-edge.1"
description = "Iggy is the persistent message streaming platform written in
Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing
millions of messages per second."
edition = "2024"
license = "Apache-2.0"
diff --git a/core/common/src/types/segment_storage/messages_reader.rs
b/core/common/src/types/segment_storage/messages_reader.rs
index e17092670..7cd4c11b2 100644
--- a/core/common/src/types/segment_storage/messages_reader.rs
+++ b/core/common/src/types/segment_storage/messages_reader.rs
@@ -52,8 +52,8 @@ impl MessagesReader {
.error(|e: &std::io::Error| format!("Failed to open messages file:
{file_path}. {e}"))
.map_err(|_| IggyError::CannotReadFile)?;
- // posix_fadvise() doesn't exist on MacOS
- #[cfg(not(target_os = "macos"))]
+ // posix_fadvise() is Linux-only in the nix crate
+ #[cfg(target_os = "linux")]
{
let _ = nix::fcntl::posix_fadvise(
&file,
diff --git a/core/sdk/Cargo.toml b/core/sdk/Cargo.toml
index 6bee2175f..ab8953b24 100644
--- a/core/sdk/Cargo.toml
+++ b/core/sdk/Cargo.toml
@@ -17,7 +17,7 @@
[package]
name = "iggy"
-version = "0.9.2-edge.1"
+version = "0.9.3-edge.1"
description = "Iggy is the persistent message streaming platform written in
Rust, supporting QUIC, TCP and HTTP transport protocols, capable of processing
millions of messages per second."
edition = "2024"
license = "Apache-2.0"
diff --git a/foreign/python/Cargo.toml b/foreign/python/Cargo.toml
index 5b6ee40ed..d4ac12165 100644
--- a/foreign/python/Cargo.toml
+++ b/foreign/python/Cargo.toml
@@ -31,7 +31,7 @@ repository = "https://github.com/apache/iggy"
[dependencies]
bytes = "1.11.1"
futures = "0.3.32"
-iggy = { path = "../../core/sdk", version = "0.9.2-edge.1" }
+iggy = { path = "../../core/sdk", version = "0.9.3-edge.1" }
pyo3 = "0.28.2"
pyo3-async-runtimes = { version = "0.28.0", features = [
"attributes",