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
11 changes: 11 additions & 0 deletions .github/workflows/package-mdk-bindings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,17 @@ jobs:

- name: Cache Rust dependencies
uses: Swatinem/rust-cache@e18b497796c12c097a38f9edb9d0641fb99eee32 # v2
with:
# Skip target/ caching: published xcframework artifacts must reflect
# the current toolchain. Swatinem keys on Darwin-arm64 + Cargo.lock
# hash + Rust version, none of which change when we bump the macOS
# runner image, so a cache hit would silently restore C-dep object
# files (libsqlite3-sys, secp256k1-sys) compiled against the previous
# runner's iOS SDK. That's exactly what happened on the macos-26
# pin in #312: cache hit -> stale sdk=18.5 objects -> byte-identical
# libmdk_uniffi.a republished to mdk-swift. The registry/crate-source
# cache is harmless, so leave that on.
cache-targets: false

- name: Install just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3 # v4.0.0
Expand Down
1 change: 1 addition & 0 deletions crates/mdk-uniffi/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@

### Fixed

- Swift packaging now rebuilds C dependencies on every push by setting `cache-targets: false` on the `Swatinem/rust-cache` step in `package-swift`. Without this, the previous runner pin (#312) silently re-published byte-identical `libmdk_uniffi.a` archives, because the rust-cache key (`Darwin-arm64` + Cargo.lock hash + Rust version) stayed stable across the runner bump and restored the pre-existing macos-15 `target/` directory, including the already-compiled `libsqlite3-sys` / `secp256k1-sys` object files still tagged `sdk=18.5`. Registry / crate-source caching is unaffected. ([marmot-protocol/mdk-swift#1](https://github.com/marmot-protocol/mdk-swift/issues/1))
Comment thread
dannym-arx marked this conversation as resolved.
- Suppressed R8 minify warnings about missing `java.awt.*` classes referenced by JNA's `Native$AWT` helper. Added `-dontwarn java.awt.**` to the Kotlin consumer ProGuard rules so downstream Android apps with minification enabled no longer fail with `Missing class java.awt.Component` errors. ([#313](https://github.com/marmot-protocol/mdk/pull/313))
- Swift bindings now build on `macos-26` (Xcode 26) so the published xcframework's iOS Simulator slice is compiled against the iOS 26 SDK end-to-end. Previously the runner defaulted to `macos-15-arm64` + Xcode 16.4 (iPhoneSimulator 18.5 SDK), and the resulting archive mixed `sdk=18.5` and `sdk=26.x` objects — which Xcode 26's stricter linker rejected with a misleading "iOS Simulator-arm64 but ... iOS-arm64" platform-mismatch error when consumers built for an iOS 26 simulator target. ([`#312`](https://github.com/marmot-protocol/mdk/pull/312))
- Hardened the Kotlin bindings publishing workflow. The version-tag step now runs only on `v*` tag pushes, refuses to overwrite an existing remote tag (no more `git push --force`), and routes secrets through step `env:` blocks instead of inline expression substitution. Downstream JitPack consumers can now trust that a pinned Kotlin version maps to immutable artifact content. ([#292](https://github.com/marmot-protocol/mdk/pull/292))
Expand Down