Skip to content

Commit

Permalink
chore: bump kotlin and ndk versions, default rust for python
Browse files Browse the repository at this point in the history
  • Loading branch information
notmandatory committed Nov 6, 2024
1 parent 9370b9f commit d22f4dc
Show file tree
Hide file tree
Showing 16 changed files with 36 additions and 61 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
jobs:
security_audit:
name: Security audit
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- uses: actions-rs/audit-check@v1
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/cont_integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
jobs:
build-test:
name: Build and test
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
strategy:
matrix:
rust:
Expand Down
14 changes: 2 additions & 12 deletions .github/workflows/publish-android.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,13 @@ name: Publish bdk-android to Maven Central
on: [workflow_dispatch]

# The default Android NDK on the ubuntu-22.04 image is 25.2.9519653
# We replace the default environment variable ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/25.2.9519653
# with an older version of the NDK (21.4.7075529) using the fix proposed here: https://github.com/actions/runner-images/issues/5930
# For information on why this is needed at the moment see issues #242 and #243, and PR #282
env:
ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/21.4.7075529
ANDROID_NDK_HOME: /usr/local/lib/android/sdk/ndk/25.2.9519653

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: "Install Android NDK 21.4.7075529"
run: |
ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
- name: "Check out PR branch"
uses: actions/checkout@v3

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ jobs:
build-full-library:
name: Create full bdk-jvm library
needs: [build-macOS-native-libs, build-windows-native-lib]
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: "Checkout publishing branch"
uses: actions/checkout@v3
Expand Down
14 changes: 2 additions & 12 deletions .github/workflows/test-android.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,13 @@ on:
- "bdk-android/**"

# The default Android NDK on the ubuntu-22.04 image is 25.2.9519653
# We replace the default environment variable ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/25.2.9519653
# with an older version of the NDK (21.4.7075529) using the fix proposed here: https://github.com/actions/runner-images/issues/5930
# For information on why this is needed at the moment see issues #242 and #243, and PR #282
env:
ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/21.4.7075529
ANDROID_NDK_ROOT: /usr/local/lib/android/sdk/ndk/25.2.9519653

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: "Install Android NDK 21.4.7075529"
run: |
ANDROID_ROOT=/usr/local/lib/android
ANDROID_SDK_ROOT=${ANDROID_ROOT}/sdk
SDKMANAGER=${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager
echo "y" | $SDKMANAGER "ndk;21.4.7075529"
- name: "Check out PR branch"
uses: actions/checkout@v3

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-jvm.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ on:

jobs:
build:
runs-on: ubuntu-20.04
runs-on: ubuntu-22.04
steps:
- name: "Check out PR branch"
uses: actions/checkout@v3
Expand Down
12 changes: 6 additions & 6 deletions bdk-android/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,28 +48,28 @@ dependencies {
* [Padawan Wallet](https://github.com/thunderbiscuit/padawan-wallet)

### How to build
_Note that Kotlin version `1.6.10` or later is required to build the library._
_Note that Kotlin version `1.9.23` or later is required to build the library._

1. Clone this repository.
```shell
git clone https://github.com/bitcoindevkit/bdk-ffi
```
2. Follow the "General" bdk-ffi ["Getting Started (Developer)"] instructions.
3. Install Rust (note that we are currently building using Rust 1.67.0):
3. Install Rust (note that we are currently building using Rust stable):
```shell
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default 1.67.0
rustup default stable
```
4. Install required targets
```sh
rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi
```
5. Install Android SDK and Build-Tools for API level 30+
6. Setup `$ANDROID_SDK_ROOT` and `$ANDROID_NDK_ROOT` path variables (which are required by the
build tool), for example (note that currently, NDK version 21.4.7075529 is required):
build tool), for example (note that currently, NDK version 25.2.9519653 is required):
```shell
export ANDROID_SDK_ROOT=~/Android/Sdk
export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/21.4.7075529
export ANDROID_SDK_ROOT=/usr/local/lib/android/sdk
export ANDROID_NDK_ROOT=$ANDROID_SDK_ROOT/ndk/25.2.9519653
```
7. Build kotlin bindings
```sh
Expand Down
2 changes: 1 addition & 1 deletion bdk-android/lib/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ val libraryVersion: String by project

plugins {
id("com.android.library")
id("org.jetbrains.kotlin.android") version "1.6.10"
id("org.jetbrains.kotlin.android") version "1.9.23"
id("maven-publish")
id("signing")

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
environment(
// add build toolchain to PATH
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=21"),
Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=24"),
Pair("AR", "llvm-ar"),
Pair("CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER", "aarch64-linux-android21-clang"),
Pair("CC", "aarch64-linux-android21-clang")
Pair("CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER", "aarch64-linux-android24-clang"),
Pair("CC", "aarch64-linux-android24-clang")
)

doLast {
Expand All @@ -66,10 +66,10 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
environment(
// add build toolchain to PATH
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=21"),
Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=24"),
Pair("AR", "llvm-ar"),
Pair("CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER", "x86_64-linux-android21-clang"),
Pair("CC", "x86_64-linux-android21-clang")
Pair("CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER", "x86_64-linux-android24-clang"),
Pair("CC", "x86_64-linux-android24-clang")
)

doLast {
Expand All @@ -96,10 +96,10 @@ internal class UniFfiAndroidPlugin : Plugin<Project> {
environment(
// add build toolchain to PATH
Pair("PATH", "${System.getenv("PATH")}:${System.getenv("ANDROID_NDK_ROOT")}/toolchains/llvm/prebuilt/$llvmArchPath/bin"),
Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=21"),
Pair("CFLAGS", "-D__ANDROID_MIN_SDK_VERSION__=24"),
Pair("AR", "llvm-ar"),
Pair("CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER", "armv7a-linux-androideabi21-clang"),
Pair("CC", "armv7a-linux-androideabi21-clang")
Pair("CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER", "armv7a-linux-androideabi24-clang"),
Pair("CC", "armv7a-linux-androideabi24-clang")
)

doLast {
Expand Down
14 changes: 4 additions & 10 deletions bdk-ffi/src/wallet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -606,27 +606,21 @@ mod test {
assert_eq!(psbt.inputs.len(), 1);
let input_value = psbt
.inputs
.get(0)
.first()
.cloned()
.unwrap()
.non_witness_utxo
.unwrap()
.output
.get(0)
.first()
.unwrap()
.value;
assert_eq!(input_value, 50_000_u64);

// confirm one output to correct address with all sats - fee
assert_eq!(psbt.outputs.len(), 1);
let output_address = Address::from_script(
&psbt
.unsigned_tx
.output
.get(0)
.cloned()
.unwrap()
.script_pubkey,
&psbt.unsigned_tx.output.first().unwrap().script_pubkey,
Network::Testnet.into(),
)
.unwrap();
Expand All @@ -636,7 +630,7 @@ mod test {
.unwrap()
.assume_checked()
);
let output_value = psbt.unsigned_tx.output.get(0).cloned().unwrap().value;
let output_value = psbt.unsigned_tx.output.first().cloned().unwrap().value;
assert_eq!(output_value, 49_890_u64); // input - fee

assert_eq!(
Expand Down
6 changes: 3 additions & 3 deletions bdk-jvm/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,17 +47,17 @@ dependencies {
* [Tatooine Faucet](https://github.com/thunderbiscuit/tatooine)

## How to build
_Note that Kotlin version `1.6.10` or later is required to build the library._
_Note that Kotlin version `1.9.23` or later is required to build the library._
1. Install JDK 11. It must be version 11 (not 17), otherwise it won't build. For example, with SDKMAN!:
```shell
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install java 11.0.19-tem
```
2. Install Rust (note that we are currently building using Rust 1.67.0):
2. Install Rust (note that we are currently building using Rust stable):
```shell
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup default 1.67.0
rustup default stable
```
3. Clone this repository.
```shell
Expand Down
2 changes: 1 addition & 1 deletion bdk-jvm/lib/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
val libraryVersion: String by project

plugins {
id("org.jetbrains.kotlin.jvm") version "1.6.10"
id("org.jetbrains.kotlin.jvm") version "1.9.23"
id("java-library")
id("maven-publish")
id("signing")
Expand Down
2 changes: 1 addition & 1 deletion bdk-python/scripts/generate-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd ../bdk-ffi/
cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format

echo "Generating native binaries..."
rustup default 1.67.0
rustup default stable
cargo build --profile release-smaller

echo "Copying linux libbdkffi.so..."
Expand Down
2 changes: 1 addition & 1 deletion bdk-python/scripts/generate-macos-arm64.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd ../bdk-ffi/
cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format

echo "Generating native binaries..."
rustup default 1.67.0
rustup default stable
rustup target add aarch64-apple-darwin
cargo build --profile release-smaller --target aarch64-apple-darwin

Expand Down
2 changes: 1 addition & 1 deletion bdk-python/scripts/generate-windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ cd ../bdk-ffi/
cargo run --bin uniffi-bindgen generate src/bdk.udl --language python --out-dir ../bdk-python/src/bdkpython/ --no-format

echo "Generating native binaries..."
rustup default 1.67.0
rustup default stable
rustup target add x86_64-pc-windows-msvc
cargo build --profile release-smaller --target x86_64-pc-windows-msvc

Expand Down
1 change: 1 addition & 0 deletions clippy.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
msrv="1.77.1"

0 comments on commit d22f4dc

Please sign in to comment.