Page MenuHomePhabricator

[chronik-client] Specify a peer dep that pnpm struggles to resolve in monorepo environments
ClosedPublic

Authored by bytesofman on Fri, Oct 24, 21:27.

Details

Summary

Have been looking at pnpm as a solution for the mess that is js dependencies. One significant plus is that it completely removes all individual package-lock.json files, replacing instead with an easier-to-read top-level yaml file.

The migration is ... challenging, esp with CI considerations. But the benefit is real. No more package-lock.json files in diff review...pretty nice.

Anyway one haunted issue I came across was apps that use chronik-client being built in CI and not being able to find long. Specifying it here "should" help that.

Test Plan

land, should cause no harm as we already have this dep. Then I can test CI builds. I could test by publishing an rc, but bc this change is kind of a no-op, figured ok to just give it a go.

Event Timeline

Tail of the build log:

                can_find_inv_in_poll(
                    quorum,
                    int(txid, 16),
                    response=AvalancheVoteError.ACCEPTED,
                    other_response=AvalancheVoteError.UNKNOWN,
                )
                return node.isfinaltransaction(txid)
''' not true after 60.0 seconds
2025-10-24T21:37:26.782000Z TestFramework (INFO): Stopping nodes
2025-10-24T21:37:26.936000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20251024_213612_44937/setup_scripts/chronik-client_websocket_0
2025-10-24T21:37:26.936000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20251024_213612_44937/setup_scripts/chronik-client_websocket_0/test_framework.log
2025-10-24T21:37:26.936000Z TestFramework (ERROR): 
2025-10-24T21:37:26.936000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20251024_213612_44937/setup_scripts/chronik-client_websocket_0' to consolidate all logs
2025-10-24T21:37:26.936000Z TestFramework (ERROR): 
2025-10-24T21:37:26.936000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-10-24T21:37:26.936000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-10-24T21:37:26.936000Z TestFramework (ERROR): 
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_websocket.py started
setup_scripts/chronik-client_websocket.py failed, Duration: 74 s

stdout:

stderr:


TEST                                      | STATUS    | DURATION

setup_scripts/chronik-client_websocket.py | ✖ Failed  | 74 s

ALL                                       | ✖ Failed  | 74 s (accumulated) 
Runtime: 74 s

Test runner for chronik-client_websocket completed with code 1
----------------------|---------|----------|---------|---------|------------------------------------
File                  | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                  
----------------------|---------|----------|---------|---------|------------------------------------
All files             |   41.52 |    17.92 |   37.62 |   41.62 |                                    
 chronik-client       |     100 |      100 |     100 |     100 |                                    
  index.ts            |     100 |      100 |     100 |     100 |                                    
 chronik-client/proto |   31.53 |    12.97 |   21.95 |    31.8 |                                    
  chronik.ts          |   31.53 |    12.97 |   21.95 |    31.8 | ...3,6779-6782,6788-6830,6866-6875 
 chronik-client/src   |   84.66 |    74.01 |   83.22 |   84.75 |                                    
  ChronikClient.ts    |   84.45 |    75.78 |   86.55 |   85.04 | ...4,1504,1529,1541,1556,1568,1574 
  failoverProxy.ts    |   79.46 |    61.29 |   66.66 |   78.89 | ...282-285,288,301,308,312,316,325 
  hex.ts              |   89.47 |       50 |      75 |   87.87 | 58,66-68                           
  validation.ts       |   95.55 |     87.5 |     100 |      95 | 33,39                              
----------------------|---------|----------|---------|---------|------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='1385']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='3335']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='391']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2181']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='228']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='606']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='1372']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='3296']
##teamcity[blockClosed name='Code Coverage Summary']
Build chronik-client-integration-tests failed with exit code 1

Tail of the build log:

                can_find_inv_in_poll(
                    quorum,
                    int(txid, 16),
                    response=AvalancheVoteError.ACCEPTED,
                    other_response=AvalancheVoteError.UNKNOWN,
                )
                return node.isfinaltransaction(txid)
''' not true after 60.0 seconds
2025-10-24T21:56:05.064000Z TestFramework (INFO): Stopping nodes
2025-10-24T21:56:05.165000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20251024_215449_62973/setup_scripts/chronik-client_websocket_0
2025-10-24T21:56:05.165000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20251024_215449_62973/setup_scripts/chronik-client_websocket_0/test_framework.log
2025-10-24T21:56:05.165000Z TestFramework (ERROR): 
2025-10-24T21:56:05.165000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/chronik-client-integration-tests/test/tmp/test_runner_₿₵_🏃_20251024_215449_62973/setup_scripts/chronik-client_websocket_0' to consolidate all logs
2025-10-24T21:56:05.166000Z TestFramework (ERROR): 
2025-10-24T21:56:05.166000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2025-10-24T21:56:05.166000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2025-10-24T21:56:05.166000Z TestFramework (ERROR): 
Running Unit Tests for Test Framework Modules
setup_scripts/chronik-client_websocket.py started
setup_scripts/chronik-client_websocket.py failed, Duration: 76 s

stdout:

stderr:


TEST                                      | STATUS    | DURATION

setup_scripts/chronik-client_websocket.py | ✖ Failed  | 76 s

ALL                                       | ✖ Failed  | 76 s (accumulated) 
Runtime: 76 s

Test runner for chronik-client_websocket completed with code 1
----------------------|---------|----------|---------|---------|------------------------------------
File                  | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                  
----------------------|---------|----------|---------|---------|------------------------------------
All files             |   41.52 |    17.92 |   37.62 |   41.62 |                                    
 chronik-client       |     100 |      100 |     100 |     100 |                                    
  index.ts            |     100 |      100 |     100 |     100 |                                    
 chronik-client/proto |   31.53 |    12.97 |   21.95 |    31.8 |                                    
  chronik.ts          |   31.53 |    12.97 |   21.95 |    31.8 | ...3,6779-6782,6788-6830,6866-6875 
 chronik-client/src   |   84.66 |    74.01 |   83.22 |   84.75 |                                    
  ChronikClient.ts    |   84.45 |    75.78 |   86.55 |   85.04 | ...4,1504,1529,1541,1556,1568,1574 
  failoverProxy.ts    |   79.46 |    61.29 |   66.66 |   78.89 | ...282-285,288,301,308,312,316,325 
  hex.ts              |   89.47 |       50 |      75 |   87.87 | 58,66-68                           
  validation.ts       |   95.55 |     87.5 |     100 |      95 | 33,39                              
----------------------|---------|----------|---------|---------|------------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='1385']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='3335']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='391']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='2181']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='228']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='606']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='1372']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='3296']
##teamcity[blockClosed name='Code Coverage Summary']
Build chronik-client-integration-tests failed with exit code 1
This revision is now accepted and ready to land.Mon, Oct 27, 13:30