Compare commits

...

7 Commits

Author SHA1 Message Date
thunderbiscuit
790d08c4c9
Fix library naming and bump Python version to 0.28.3 2023-04-25 10:22:09 -04:00
thunderbiscuit
ffd5a96ee0
Add library build task to Android test CI workflow 2023-04-24 16:09:45 -04:00
thunderbiscuit
fd02fc2a02
Remove support for Python 3.6 and 3.7 2023-04-24 16:09:15 -04:00
thunderbiscuit
5c560c6013
Use ubuntu-20.04 image for all Linux CI runs 2023-04-24 16:08:54 -04:00
thunderbiscuit
9d1b2de29b
Add workflow dispatch to all test workflows 2023-04-24 16:08:32 -04:00
thunderbiscuit
3e3c0bf22f
Pin Rust version in CI workflows to 1.67 2023-04-24 16:08:16 -04:00
thunderbiscuit
9b919e5ceb
Update libraries to official release versions 2023-04-18 12:31:15 -04:00
10 changed files with 75 additions and 43 deletions

View File

@ -10,7 +10,7 @@ env:
jobs: jobs:
build: build:
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
steps: steps:
- name: "Install Android NDK 21.4.7075529" - name: "Install Android NDK 21.4.7075529"
run: | run: |
@ -37,6 +37,9 @@ jobs:
distribution: temurin distribution: temurin
java-version: 11 java-version: 11
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: "Install Rust Android targets" - name: "Install Rust Android targets"
run: rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi run: rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi

View File

@ -24,6 +24,9 @@ jobs:
distribution: temurin distribution: temurin
java-version: 11 java-version: 11
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: Install aarch64 Rust target - name: Install aarch64 Rust target
run: rustup target add aarch64-apple-darwin run: rustup target add aarch64-apple-darwin
@ -43,7 +46,7 @@ jobs:
build-jvm-full-library: build-jvm-full-library:
name: Create full bdk-jvm library name: Create full bdk-jvm library
needs: [build-jvm-macOS-M1-native-lib] needs: [build-jvm-macOS-M1-native-lib]
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
steps: steps:
- name: Checkout publishing branch - name: Checkout publishing branch
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -68,6 +71,9 @@ jobs:
distribution: temurin distribution: temurin
java-version: 11 java-version: 11
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: Build bdk-jvm library - name: Build bdk-jvm library
run: | run: |
cd bdk-jvm cd bdk-jvm

View File

@ -9,7 +9,7 @@ on: [workflow_dispatch]
jobs: jobs:
build-manylinux2014-x86_64-wheel: build-manylinux2014-x86_64-wheel:
name: "Build Manylinux 2014 x86_64 wheel" name: "Build Manylinux 2014 x86_64 wheel"
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
defaults: defaults:
run: run:
working-directory: bdk-python working-directory: bdk-python
@ -21,13 +21,9 @@ jobs:
strategy: strategy:
matrix: matrix:
python: # Update this list whenever the docker image is updated (check /opt/python/) python: # Update this list whenever the docker image is updated (check /opt/python/)
- cp36-cp36m
- cp37-cp37m
- cp38-cp38 - cp38-cp38
- cp39-cp39 - cp39-cp39
- cp310-cp310 - cp310-cp310
- pp37-pypy37_pp73
- pp38-pypy38_pp73
steps: steps:
- name: "Checkout" - name: "Checkout"
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -37,6 +33,9 @@ jobs:
with: with:
toolchain: stable toolchain: stable
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: "Install requirements" - name: "Install requirements"
run: ${PYBIN}/pip install -r requirements.txt run: ${PYBIN}/pip install -r requirements.txt
@ -44,7 +43,9 @@ jobs:
run: bash generate.sh run: bash generate.sh
- name: "Build wheel" - name: "Build wheel"
run: ${PYBIN}/python setup.py bdist_wheel --verbose # Specifying the plat-name argument is necessary to build a wheel with the correct name,
# see issue #350 for more information
run: ${PYBIN}/python setup.py bdist_wheel --plat-name manylinux_2_17_x86_64 --verbose
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
@ -60,10 +61,9 @@ jobs:
strategy: strategy:
matrix: matrix:
python: python:
- '3.7' - "3.8"
- '3.8' - "3.9"
- '3.9' - "3.10"
- '3.10'
steps: steps:
- name: "Checkout" - name: "Checkout"
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -83,7 +83,9 @@ jobs:
- name: "Build wheel" - name: "Build wheel"
env: env:
ARCHFLAGS: "-arch x86_64 -arch arm64" ARCHFLAGS: "-arch x86_64 -arch arm64"
run: python3 setup.py bdist_wheel --verbose # Specifying the plat-name argument is necessary to build a wheel with the correct name,
# see issue #350 for more information
run: python3 setup.py bdist_wheel --plat-name macosx_12_0_universal2 --verbose
- uses: actions/upload-artifact@v2 - uses: actions/upload-artifact@v2
with: with:
@ -91,7 +93,7 @@ jobs:
path: /Users/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl path: /Users/runner/work/bdk-ffi/bdk-ffi/bdk-python/dist/*.whl
build-windows-wheel: build-windows-wheel:
name: "Build windows wheel" name: "Build Windows wheel"
runs-on: windows-2022 runs-on: windows-2022
defaults: defaults:
run: run:
@ -99,10 +101,9 @@ jobs:
strategy: strategy:
matrix: matrix:
python: python:
- '3.7' - "3.8"
- '3.8' - "3.9"
- '3.9' - "3.10"
- '3.10'
steps: steps:
- name: "Checkout" - name: "Checkout"
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -128,7 +129,7 @@ jobs:
publish-pypi: publish-pypi:
name: "Publish on PyPI" name: "Publish on PyPI"
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
defaults: defaults:
run: run:
working-directory: bdk-python working-directory: bdk-python

View File

@ -1,5 +1,6 @@
name: Test Android name: Test Android
on: on:
workflow_dispatch:
push: push:
paths: paths:
- "bdk-ffi/**" - "bdk-ffi/**"
@ -18,7 +19,7 @@ env:
jobs: jobs:
build: build:
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
steps: steps:
- name: "Install Android NDK 21.4.7075529" - name: "Install Android NDK 21.4.7075529"
run: | run: |
@ -45,9 +46,17 @@ jobs:
distribution: temurin distribution: temurin
java-version: 11 java-version: 11
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: "Install Rust Android targets" - name: "Install Rust Android targets"
run: rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi run: rustup target add x86_64-linux-android aarch64-linux-android armv7-linux-androideabi
- name: "Build Android library"
run: |
cd bdk-android
./gradlew buildAndroidLib
# There are currently no unit tests for bdk-android and the integration tests require the macOS image # There are currently no unit tests for bdk-android and the integration tests require the macOS image
# which is not working with the older NDK version we are using, so for now we just make sure that the library builds. # which is not working with the older NDK version we are using, so for now we just make sure that the library builds.
# - name: "Run Android unit tests" # - name: "Run Android unit tests"

View File

@ -1,5 +1,6 @@
name: Test Kotlin/JVM name: Test Kotlin/JVM
on: on:
workflow_dispatch:
push: push:
paths: paths:
- "bdk-ffi/**" - "bdk-ffi/**"
@ -31,6 +32,9 @@ jobs:
distribution: temurin distribution: temurin
java-version: 11 java-version: 11
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: Run JVM tests - name: Run JVM tests
run: | run: |
cd bdk-jvm cd bdk-jvm

View File

@ -1,5 +1,6 @@
name: Test Python name: Test Python
on: on:
workflow_dispatch:
push: push:
paths: paths:
- "bdk-ffi/**" - "bdk-ffi/**"
@ -17,7 +18,7 @@ on:
jobs: jobs:
build-manylinux2014-x86_64-wheel: build-manylinux2014-x86_64-wheel:
name: "Build and test Manylinux 2014 x86_64 wheels" name: "Build and test Manylinux 2014 x86_64 wheels"
runs-on: ubuntu-22.04 runs-on: ubuntu-20.04
defaults: defaults:
run: run:
working-directory: bdk-python working-directory: bdk-python
@ -29,10 +30,8 @@ jobs:
strategy: strategy:
matrix: matrix:
python: python:
# - cp36-cp36m - cp38-cp38
# - cp37-cp37m - cp39-cp39
# - cp38-cp38
# - cp39-cp39
- cp310-cp310 - cp310-cp310
steps: steps:
- name: "Checkout" - name: "Checkout"
@ -43,6 +42,9 @@ jobs:
with: with:
toolchain: stable toolchain: stable
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: "Install requirements" - name: "Install requirements"
run: ${PYBIN}/pip install -r requirements.txt run: ${PYBIN}/pip install -r requirements.txt
@ -56,7 +58,9 @@ jobs:
run: ${PYBIN}/pip install ./dist/*.whl run: ${PYBIN}/pip install ./dist/*.whl
- name: "Run tests" - name: "Run tests"
run: ${PYBIN}/python -m unittest tests/test_bdk.py --verbose # Specifying the plat-name argument is necessary to build a wheel with the correct name,
# see issue #350 for more information
run: ${PYBIN}/python -m unittest tests/test_bdk.py --plat-name manylinux_2_17_x86_64 --verbose
- name: "Upload artifact test" - name: "Upload artifact test"
uses: actions/upload-artifact@v2 uses: actions/upload-artifact@v2
@ -73,10 +77,9 @@ jobs:
strategy: strategy:
matrix: matrix:
python: python:
# - '3.7' - "3.8"
# - '3.8' - "3.9"
# - '3.9' - "3.10"
- '3.10'
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -113,10 +116,9 @@ jobs:
strategy: strategy:
matrix: matrix:
python: python:
# - '3.7' - "3.8"
# - '3.8' - "3.9"
# - '3.9' - "3.10"
- '3.10'
steps: steps:
- name: "Checkout" - name: "Checkout"
uses: actions/checkout@v2 uses: actions/checkout@v2
@ -135,12 +137,11 @@ jobs:
- name: "Build wheel" - name: "Build wheel"
run: python setup.py bdist_wheel --verbose run: python setup.py bdist_wheel --verbose
# TODO: On Windows the pip install ./dist/*.whl step fails with the following error: # TODO: On Windows the pip install ./dist/*.whl step fails with the following error:
# Run pip install ./dist/*.whl # Run pip install ./dist/*.whl
# WARNING: Requirement './dist/*.whl' looks like a filename, but the file does not exist # WARNING: Requirement './dist/*.whl' looks like a filename, but the file does not exist
# ERROR: *.whl is not a valid wheel filename.*.whl is not a valid wheel name # ERROR: *.whl is not a valid wheel filename.*.whl is not a valid wheel name
# So we skip the installing and the tests and simply test that the wheel builds # So we skip the installing and the tests and simply test that the wheel builds
# - name: Install wheel # - name: Install wheel
# run: pip install ./dist/*.whl # run: pip install ./dist/*.whl
# - name: Run tests # - name: Run tests

View File

@ -1,5 +1,6 @@
name: Test Swift name: Test Swift
on: on:
workflow_dispatch:
push: push:
paths: paths:
- "bdk-ffi/**" - "bdk-ffi/**"
@ -16,6 +17,9 @@ jobs:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v2
- name: "Set default Rust version to 1.67.0"
run: rustup default 1.67.0
- name: Install Rust targets - name: Install Rust targets
run: | run: |
rustup install nightly-x86_64-apple-darwin rustup install nightly-x86_64-apple-darwin

View File

@ -2,4 +2,4 @@ org.gradle.jvmargs=-Xmx1536m
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
kotlin.code.style=official kotlin.code.style=official
libraryVersion=0.28.0-SNAPSHOT libraryVersion=0.28.0

View File

@ -1,4 +1,4 @@
org.gradle.jvmargs=-Xmx1536m org.gradle.jvmargs=-Xmx1536m
android.enableJetifier=true android.enableJetifier=true
kotlin.code.style=official kotlin.code.style=official
libraryVersion=0.28.0-SNAPSHOT libraryVersion=0.28.0

View File

@ -51,7 +51,7 @@ print(f"Wallet balance is: {balance.total}")
setup( setup(
name="bdkpython", name="bdkpython",
version="0.28.0.dev0", version="0.28.3",
description="The Python language bindings for the Bitcoin Development Kit", description="The Python language bindings for the Bitcoin Development Kit",
long_description=LONG_DESCRIPTION, long_description=LONG_DESCRIPTION,
long_description_content_type="text/markdown", long_description_content_type="text/markdown",
@ -62,4 +62,8 @@ setup(
url="https://github.com/bitcoindevkit/bdk-ffi", url="https://github.com/bitcoindevkit/bdk-ffi",
author="Alekos Filini <alekos.filini@gmail.com>, Steve Myers <steve@notmandatory.org>", author="Alekos Filini <alekos.filini@gmail.com>, Steve Myers <steve@notmandatory.org>",
license="MIT or Apache 2.0", license="MIT or Apache 2.0",
# This is required to ensure the library name includes the python version, abi, and platform tags
# See issue #350 for more information
has_ext_modules=lambda: True,
) )