Skip to content

Conversation

@nothingmuch
Copy link
Collaborator

this results in much faster builds and therefore checks, improving developer experience.

if we additionally want to build the packages in release mode, or run certain tests in release mode, we can build the workspace dependencies using both release and dev profiles as appropriate, but unless we intend to ship e.g. docker containers based on our built packages we don't need the release profile for the foreseeable future.

Pull Request Checklist

Please confirm the following before requesting review:

this results in much faster builds and therefore checks, improving
developer experience.

if we additionally want to build the packages in release mode, or run
certain tests in release mode, we can build the workspace dependencies
using both release and dev profiles as appropriate, but unless we intend
to ship e.g. docker containers based on our built packages we don't need
the release profile for the foreseeable future.
@nothingmuch nothingmuch marked this pull request as ready for review December 13, 2025 18:27
@coveralls
Copy link
Collaborator

coveralls commented Dec 13, 2025

Pull Request Test Coverage Report for Build 20240963871

Warning: This coverage report may be inaccurate.

This pull request's base commit is no longer the HEAD commit of its target branch. This means it includes changes from outside the original pull request, including, potentially, unrelated coverage changes.

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 55 unchanged lines in 4 files lost coverage.
  • Overall coverage remained the same at 83.307%

Files with Coverage Reduction New Missed Lines %
payjoin-cli/src/db/mod.rs 5 92.65%
payjoin/src/core/send/v1.rs 9 92.97%
payjoin/src/core/receive/v2/mod.rs 10 90.95%
payjoin/src/core/persist.rs 31 95.6%
Totals Coverage Status
Change from base Build 20175757958: 0.0%
Covered Lines: 9657
Relevant Lines: 11592

💛 - Coveralls

Copy link
Collaborator

@benalleng benalleng left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack much faster, nice

@benalleng benalleng self-requested a review December 15, 2025 15:24
@benalleng
Copy link
Collaborator

I am actually getting a failure on the check locally...

$ nix flake check
warning: Git tree '/home/user/Documents/Coding/Projects/rust-payjoin' is dirty
error: builder for '/nix/store/7hklacqaf4xxflykarg4hw8rz45nscv7-payjoin-workspace-nextest-nightly.d
rv' failed with exit code 100;
       last 25 log lines:
       >
       >     failures:
       >
       >     failures:
       >         integration::batching::receiver_consolidates_utxos
       >
       >     test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 15 filtered out; finis
hed in 103.20s
       >     
       >   stderr ---
       >     Error: JsonRpc(Transport(Minreq(IoError(Custom { kind: TimedOut, error: "the timeout o
f the request was reached" }))))
       >
       >   Cancelling due to test failure:
       > ------------
       >      Summary [ 103.384s] 203 tests run: 202 passed, 1 failed, 1 skipped
       >         FAIL [ 103.228s] payjoin::integration integration::batching::receiver_consolidates
_utxos
       >   Cancelling [ 00:01:43] ========== 203/203: 1 running, 0 passed, 0 skipped
       >         SLOW [ 00:01:43] payjoin::integration ching::receiver_consolidates_utxos
       >
       >
       >
       >
       >
       >
       >
       > error: test run failed                                       
       For full logs, run:
         nix log /nix/store/7hklacqaf4xxflykarg4hw8rz45nscv7-payjoin-workspace-nextest-nightly.drv
error: build of '/nix/store/06hf1p0v0q60ycg24aqbwksx5pqvgy95-payjoin-workspace-nextest-msrv.drv', '
/nix/store/7hklacqaf4xxflykarg4hw8rz45nscv7-payjoin-workspace-nextest-nightly.drv', '/nix/store/cps
zxn1qrchpwhyb94xk4n9czhb1cjdj-msrv.drv', '/nix/store/h3ws0shmyg507nf8kj6sbb5hcd581h53-payjoin-works
pace-nextest-stable.drv', '/nix/store/ig7vsghkjk6zbh16f50zyfg29jlvv4rq-slow.drv', '/nix/store/ldkmw
gi1p25wg618d71bxp7ck1hdnki9-nightly.drv', '/nix/store/rz5fsigb0j2mgan0zhyv5k2s808m6liy-stable.drv' 
failed

@Mshehu5
Copy link
Contributor

Mshehu5 commented Dec 15, 2025

I am actually getting a failure on the check locally...

$ nix flake check
warning: Git tree '/home/user/Documents/Coding/Projects/rust-payjoin' is dirty
error: builder for '/nix/store/7hklacqaf4xxflykarg4hw8rz45nscv7-payjoin-workspace-nextest-nightly.d
rv' failed with exit code 100;
       last 25 log lines:
       >
       >     failures:
       >
       >     failures:
       >         integration::batching::receiver_consolidates_utxos
       >
       >     test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 15 filtered out; finis
hed in 103.20s
       >     
       >   stderr ---
       >     Error: JsonRpc(Transport(Minreq(IoError(Custom { kind: TimedOut, error: "the timeout o
f the request was reached" }))))
       >
       >   Cancelling due to test failure:
       > ------------
       >      Summary [ 103.384s] 203 tests run: 202 passed, 1 failed, 1 skipped
       >         FAIL [ 103.228s] payjoin::integration integration::batching::receiver_consolidates
_utxos
       >   Cancelling [ 00:01:43] ========== 203/203: 1 running, 0 passed, 0 skipped
       >         SLOW [ 00:01:43] payjoin::integration ching::receiver_consolidates_utxos
       >
       >
       >
       >
       >
       >
       >
       > error: test run failed                                       
       For full logs, run:
         nix log /nix/store/7hklacqaf4xxflykarg4hw8rz45nscv7-payjoin-workspace-nextest-nightly.drv
error: build of '/nix/store/06hf1p0v0q60ycg24aqbwksx5pqvgy95-payjoin-workspace-nextest-msrv.drv', '
/nix/store/7hklacqaf4xxflykarg4hw8rz45nscv7-payjoin-workspace-nextest-nightly.drv', '/nix/store/cps
zxn1qrchpwhyb94xk4n9czhb1cjdj-msrv.drv', '/nix/store/h3ws0shmyg507nf8kj6sbb5hcd581h53-payjoin-works
pace-nextest-stable.drv', '/nix/store/ig7vsghkjk6zbh16f50zyfg29jlvv4rq-slow.drv', '/nix/store/ldkmw
gi1p25wg618d71bxp7ck1hdnki9-nightly.drv', '/nix/store/rz5fsigb0j2mgan0zhyv5k2s808m6liy-stable.drv' 
failed

I also experieced this made mention of it in
#1224 (comment)

@nothingmuch nothingmuch marked this pull request as draft December 15, 2025 16:32
@nothingmuch
Copy link
Collaborator Author

do you guys see failures if you only run one of the test jobs at a time instead of all 3? easiest way to do this is to specify -j 1 to nix build or nix flake check

re #1224 (comment) maybe it's better to set debug = false, either by customizing the test profile or by creating a new ci one perhaps?

https://doc.rust-lang.org/cargo/reference/profiles.html

@spacebear21
Copy link
Collaborator

FWIW I also get timeout errors on the integration tests before this change (latest master):

payjoin-workspace-nextest-nightly> error: test run failed
error: Cannot build '/nix/store/4g72w6idlibwsf11ja0k2p4mxd32pla5-payjoin-workspace-nextest-nightly.drv'.
       Reason: builder failed with exit code 100.
       Output paths:
         /nix/store/4vwy9kgm7flgv4n183g2hgjj6f9kyfgq-payjoin-workspace-nextest-nightly
       Last 25 log lines:
       > ------------
       >      Summary [  74.433s] 192/203 tests run: 180 passed (4 slow), 12 failed, 1 skipped
       >         FAIL [  64.766s] payjoin::integration integration::batching::receiver_consolidates_utxos
       >         FAIL [  64.806s] payjoin::integration integration::v1::v1_to_v1_taproot
       >         FAIL [  64.813s] payjoin::integration integration::v1::v1_to_v1_p2wpkh
       >         FAIL [  64.897s] payjoin::integration integration::v1::allow_mixed_input_scripts
       >         FAIL [  64.962s] payjoin::integration integration::v2::v1_to_v2
       >         FAIL [  64.974s] payjoin::integration integration::v2::test_session_expiration
       >         FAIL [  65.005s] payjoin::integration integration::batching::receiver_forwards_payment
       >         FAIL [  65.049s] payjoin::integration integration::v2::v2_to_v1
       >         FAIL [  65.064s] payjoin::integration integration::v1::v1_to_v1_nested_p2wpkh
       >         FAIL [  65.074s] payjoin::integration integration::v1::v1_to_v1_p2pkh
       >         FAIL [  65.123s] payjoin::integration integration::v2::test_err_response
       >         FAIL [  65.143s] payjoin::integration integration::v2::v2_to_v2_fallback_tx_broadcast
       > warning: 11/203 tests were not run due to test failure (run with --no-fail-fast to run all tests, or run with --max-fail)
       >   Cancelling [ 00:01:14] =========> 192/203: 1 running, 0 passed, 0 skipped
       >         SLOW [ 00:01:12] payjoin::integration integration::v2::v2_to_v2_taproot
       >
       >
       >
       >
       >
       >
       >
       > error: test run failed
       For full logs, run:
         nix-store -l /nix/store/4g72w6idlibwsf11ja0k2p4mxd32pla5-payjoin-workspace-nextest-nightly.drv
error: build of '/nix/store/3q0m3zi91pydc5473p1q1vahwszj4fcr-workspace-deps-stable.drv', '/nix/store/4g72w6idlibwsf11ja0k2p4mxd32pla5-payjoin-workspace-nextest-nightly.drv', '/nix/store/5lwicdfg523p7nyzyj8kaxm1ibryiiyn-payjoin-workspace-nextest-stable.drv', '/nix/store/fia3sacfh4s01l66ddd5808zyz2iksck-msrv.drv', '/nix/store/ir2wi1z92bdjh7dal4fqcbw7m8wq2c8l-nightly.drv', '/nix/store/kay6cn5jb0bsr0vb96fh5ar1nm9r765k-workspace-fmt-no-version.drv', '/nix/store/rbbgcwlmdn9s6xzcq0pj45m9qaky154b-workspace-clippy-no-version.drv', '/nix/store/rm68k68d4nz8b0m35bjcav41w9djjj46-stable.drv', '/nix/store/w8xy9dlaqjx6npyb014bi77fiahffdwi-slow.drv', '/nix/store/wpm6aj606hhmmb8l8c7arw58lx2kx9ih-workspace-doc-no-version.drv' failed

@benalleng
Copy link
Collaborator

specifying the job numbers did work for me

@nothingmuch
Copy link
Collaborator Author

based on the test, this looks like it's timing out calling the bitcoin RPC interface? i suspect generate_to_address(199, &receiver_address) is CPU bound, my laptop can do a bit more than 100 blocks per second when maxing out 1 CPU core, so if it's also competing with two concurrent rustc jobs, perhaps the default timeout is too low

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants