Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .github/workflows/release-go.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ jobs:
target: aarch64-unknown-linux-gnu
lib_dir: linux_arm64
cross: true
- runner: { group: databricks-protected-runner-group, labels: linux-ubuntu-latest }
target: x86_64-apple-darwin
lib_dir: darwin_amd64
cross: false
zigbuild: true
- runner: { group: databricks-protected-runner-group, labels: linux-ubuntu-latest }
target: aarch64-apple-darwin
lib_dir: darwin_arm64
cross: false
zigbuild: true
- runner: { group: databricks-protected-runner-group, labels: windows-server-latest }
target: x86_64-pc-windows-gnu
lib_dir: windows_amd64
Expand Down Expand Up @@ -63,9 +73,24 @@ jobs:
with:
targets: ${{ matrix.target }}

- name: Install Zig (macOS cross-builds)
if: matrix.zigbuild
uses: mlugg/setup-zig@d1434d08867e3ee9daa34448df10607b98908d29 # v2.2.1
with:
version: 0.13.0

- name: Install cargo-zigbuild (macOS cross-builds)
if: matrix.zigbuild
run: cargo install cargo-zigbuild --locked --version 0.19.8

- name: Build FFI library
if: '!matrix.zigbuild'
run: cargo build --release -p zerobus-ffi --target ${{ matrix.target }}

- name: Build FFI static library (macOS cross-builds)
if: matrix.zigbuild
run: cargo-zigbuild rustc --release -p zerobus-ffi --target ${{ matrix.target }} --crate-type staticlib

- name: Prepare artifact
shell: bash
run: |
Expand Down
1 change: 1 addition & 0 deletions go/NEXT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

### Internal Changes

- Added Darwin AMD64 and ARM64 static-library artifacts to the Go release build by cross-compiling the FFI with Zig, so release PRs can include the full supported platform matrix without a macOS runner.
- Added the new ack-callback fields (`ack_on_ack`, `ack_on_error`, `ack_user_data`) to the cgo `CStreamConfigurationOptions` mirror to keep it byte-identical with the C FFI struct. The Go SDK has no ack-callback API yet and leaves these null, so behavior is unchanged.
- The integration-test protobuf bindings (`go/tests/pb`) and the pure-Go SDK bindings (`purego/internal/zerobuspb`) are now generated from the single canonical `rust/sdk/zerobus_service.proto`, instead of local per-module copies. Regenerate with `go/tests/generate_proto.sh` or `go generate ./...` in the purego package. No behavior change — the committed generated code is unchanged.

Expand Down
Loading