Repository navigation
Conversation
pwltr
force-pushed
the
chore/0.8.0-rc12
branch
from
November 6, 2026 14:29
787a3c6 to
7b64caa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Dependency: #192
Publication is on hold until #192 merges. The rc12 candidate must then include its
trezor-connect-rs10.0.1 upgrade, with regenerated SDK artifacts, a new iOS archive checksum, and fresh verification. The current archive and results below apply only to the current pre-#192 revision. The physical Safe 7 Bluetooth QA requested by #192 must also be carried forward; it has not been verified by this release preparation.Description
Prepare
0.8.0-rc12from master with the merged BIP21 validation fix (#151). Duplicate singleton parameters and concatenated payment URIs are rejected while legitimate metadata is preserved. This unblocks adoption in synonymdev/bitkit-ios#909 and synonymdev/bitkit-android#1454 after SDK publication.This continues the mainline RC series; the newer Arkade and swaps prereleases are separate feature branches. Other changes since rc11 are the wake gateway client and grants (#160), RBF fee-rate preservation (#166), and synced-wallet transaction composition (#188).
The release follows rc11/#181: synchronize Cargo, SwiftPM and Android versions, regenerate all three bindings, preserve the exact iOS archive, then publish an RC prerelease and let
gradle-publish.ymlpublish Android and its native debug symbols. The release diff changes the same four metadata files as #181; the regenerated Swift interface remains unchanged from master.The preserved iOS archive is 87,945,213 bytes with SHA-256
739e68a842734e175995721fd6acf7b62a39f613f5a4c16f17dcba3d6ab48ce7, matchingPackage.swift.Publication requires the author's explicit approval. Both preparation commits are attributed to
pwltrand have valid GitHub signatures, created through GitHub's commit API. rc11 used an SSH-signed annotated release tag; this machine still has no local tag-signing key and cannot access its SSH agent, so matching that separate step requires maintainer signing or an explicit publication decision. No release or remote Android package has been published.Design
N/A — no UI changes.
Preview
N/A — SDK release metadata and artifacts.
QA Notes
Setup
Local verification was performed on
787a3c6f9ae8df5f988ea240a04e5092f1082852. Its signed replacement is7b64caaf05dd84d1e428a8638da8b1c28b5b4043, with an identical Git tree; existing results remain recorded at their original revision, and CI is rerunning on the replacement. Source baseline:4affda1dfdb7b0192a905632f2b1d4f2a1ea94c8. Local checks use Rust 1.90.0, Xcode 27.2 / Swift 6.4.2, Temurin JDK 17.0.21, Android SDK 34 and build tools 34.0.0, NDK r28c (28.2.13676358, matching the publication workflow), and protoc 36.2. Install the prerequisites, put Cargo/protoc/Java on PATH, and setJAVA_HOME,ANDROID_HOME,ANDROID_NDK_HOMEandANDROID_NDK_ROOTto those installations before running the repository build scripts.On macOS 27, the host Rust dylib needs
CARGO_PROFILE_RELEASE_STRIP=falsefor native smoke execution because of rust-lang/rust#157750. The iOS release archive contains static libraries and is preserved unchanged; its simulator library links against the iOS simulator SDK without diagnostics.No device testing is required for this metadata-only release preparation. Hardware and live gateway/fork tests require their separately documented environments; ignored tests are not passes.
Automated Checks
cargo test --locked: 736 passed, 11 failed, 30 ignored. All failures are Blocktank staging request failures.cargo test --locked --lib modules::blocktankon an archived unchanged master reproduced the exact same 11 failing test names (37 passed). Direct staging connectivity timed out after 15 seconds. The full suite is not green.cargo test --locked --binsandcargo test --locked --doc: passed, with zero tests in these targets.cargo fmt --check: passed.cargo clippy --locked --lib --tests: passed with 121 warnings, all identical to unchanged master; no new warnings../build_ios.sh, SwiftPM manifest validation, exact archive checksum verification, native Swift Trezor smoke, and native Swift BIP21 smoke: passed. The BIP21 smoke accepts two valid metadata cases and rejects nine ambiguous requests. The archived simulator static library links successfully../build_android.sh: passed for all four ABIs, including stripped/native-symbol, 16 KB alignment, AAR and Maven Local checks../gradlew :lib:check :lib:compileDebugUnitTestKotlin --no-daemon: passed; Android lint reports zero errors and three existing dependency-update warnings. The AAR contains all four JNI libraries and consumer keep rules, and its Maven coordinates arecom.synonym:bitkit-core-android:0.8.0-rc12.CARGO_PROFILE_RELEASE_STRIP=false ./build_python.sh: generation passed.PYTHONPATH=bindings/python python3 tests/bindings/trezor_records.py: failed because the generated USDT constructor has requiredbackupafter optionalbridge_url, producingSyntaxError: non-default argument follows default argument. Regenerating and running on unchanged master reproduces the same failure, and both generated Python files are byte-identical. This is an existing master regression relative to rc11's successful Python smoke, not a passing Python result. Python is not distributed by the iOS/Android release workflow; publication needs an explicit decision on this gap.git diff --check: passed.Journeys
The shared BIP21 application journey remains in synonymdev/bitkit-ios#909 and synonymdev/bitkit-android#1454. It requires the published SDK; it was not run as part of core release preparation.
Out of Scope
Models used
gpt-6.1-sol(reasoning:high)gpt-6.1-sol(reasoning:high)