Conversation
Trezor switched to uv for dependency management
Recent versions of Speculos no longer support the Nano S. Additionally, we build the legacy app for the Nano S separately now.
lwip is a submodule of many device firmware repos, but the default URLs often fail to be cloned. Rewrite those URLs with git config to use the Github mirror to avoid that issue.
Instead of listing out the dependencies required to install manually, just install from speculos itself.
1bea008 to
1f98eab
Compare
|
I'm not sure if pinning Ledger to 2.4.1 instead of 2.4.4 was actually necessary. I reverted the Ledger changes in 0fe1dbb because these tests are still failing for me. It looks like they did pass on PR 812, though it's a mystery to me how. |
|
Ledger is green now, that's good. ColdCard is still very grey (timeout) and a couple of bitbox02 and jade tests timeout too. |
|
Attemping an upgrade for ColdCard and a downgrade for Jade. |
38e4daf to
ff11530
Compare
|
ColdCard is green now, though mainly because I disabled the send test again. The Jade tests for Wheel and SDist are timing out on the first test (test_backup). I'm adding a timeout to simulator launch so it fails faster. I'm also trying an older version. The bitbox02 library tests timeout on Python 3.10 and 3.12 (but not 3.9 and 3.11). For now I just added a 5 minute timeout so it fails faster. |
|
Although I couldn't reproduce the exact same error, based on local testing I suspect that fixing #817 will fix the Jade Sdist and Wheel builds. Our |
|
The error message mentioned in the commit description of a0acccb is a red herring. It was a classic case of CI only printing stderr if a test fails ( |
These don't seem to work anymore.
The getkeypool command can return an error dict instead of a list when the underlying operation fails. Add assertions to catch this early with a clear error message, rather than having the test fail with a confusing JSONRPCException about wrong type passed to importdescriptors.
This pins all device firmware versions to ensure reproducible CI builds.
Pin app-bitcoin-new to v2.4.4 (tag stax_1.9.0_2.4.4_sdk_...) since newer versions may be incompatible with Speculos v0.25.10 which is the last version supporting Python 3.9. Use shallow clone (--depth 1) for both Ledger apps to speed up builds.
v5.4.3 causes test_backup to hang because it lacks the 'multiprocess simulator' fix merged in June 2025.
If the Jade emulator doesn't respond within 5 minutes, fail fast with an error message instead of hanging until the job timeout.
Wrap the Bitbox02Client initialization and restore_device() call in a thread with a 5 minute timeout. This prevents CI from hanging for 45 minutes when the simulator startup blocks indefinitely.
In the Sdist and Wheel test environments, the Jade tests all timed out. The other tests used a fixed version 5.6 of cbor2 which is why they were not affected. Fixes bitcoin-core#817
|
Hooray, that actually worked! Pushing the branch again, this time dropping 0fe1dbb test: Re-enable disabled tests from #812 dropped (along with its revert). We can try to revive tests some other time. I do still notice some occasional bitbox02 and ColdCard timeouts, but they don't seem to be systematic. Ready for review. |
|
Mmm, again two timed out bitbox02 jobs. Not sure what to do about those. |
|
@benma any idea why these BitBox02 jobs time out? It seems to be a random selection of about two per push. Example log: https://github.com/bitcoin-core/HWI/actions/runs/21216007510/job/61038515090?pr=818 Note the 44 minute gap after "ok" before CI pulls the plug. |
|
It looks like the timeout is on stopping the simulator, so we could put a timeout on the |
|
BitBox02 tests are now all green. |
|
#820 should reduce the occurance of spurious ColdCard failures. |
|
ACK cafc8b0 |
Time to stop the whack-a-mole game.
Pin firmware and simulator versions to the latest releases known to work. We or the device makers can bump them as needed.
This approach seems more suitable for the lower pace of development on this repo.
Superseedes #812 (takes most of its commits)