Releases: vacp2p/nim-libp2p
Releases · vacp2p/nim-libp2p
v1.14.3
What's Changed
- feat(mix): reuse streams by @richard-ramos in #1753
- fix: length prefix handling in exit layer for lenght-prefixed protocols by @chaitanyaprem in #1804
Full Changelog: v1.14.2...v1.14.3
v1.14.2
What's Changed
- test(quic): Add tests 1 by @rlve in #1772
- chore: add more identify logs when pushing to other peer by @Ivansete-status in #1777
- fix: init method for MixPubInfo by @chaitanyaprem in #1775
Full Changelog: v1.14.1...v1.14.2
v1.14.1
What's Changed
- chore(kad): getVal loop improvements by @gmelodie in #1765
- chore(test): utilize checkUntilTimeout by @vladopajic in #1769
- chore: rm nimcrypto upper limit by @arnetheduck in #1771
- chore: remove upper chronicles bound by @arnetheduck in #1770
Full Changelog: v1.14.0...v1.14.1
v1.14.0
Highlights
- Mix protocol available to interact with protocols anonymously by sending requests thru a network of mix nodes
- Application level extensions of multiformats
- Replaces OpenSSL + PicoTLS for BoringSSL as the TLS backend for Quic
- Configurable options for AutoTLS
What's Changed
- fix: autonatV2 request addresses by @gmelodie in #1698
- chore: nimble config tidy by @vladopajic in #1696
- feat(mix): sphinx by @richard-ramos in #1691
- chore(autonat-v2): add interop tests by @gmelodie in #1695
- chore: remove go daemon by @gmelodie in #1705
- feat(mix): SURBs and fragmentation by @richard-ramos in #1700
- fix: add missing import for linux/amd64 daily job by @richard-ramos in #1706
- feat(mix): mixnode by @richard-ramos in #1702
- chore(readme): Update chat code example link by @rlve in #1709
- feat(mix): mix_protocol and entry connection by @richard-ramos in #1703
- fix: add missing import by @richard-ramos in #1707
- test(rendezvous): error cases by @rlve in #1683
- test(rendezvous): refactor and extend discovery manager tests by @rlve in #1715
- test(rendezvous): Misc by @rlve in #1716
- feat(mix): reply connection by @richard-ramos in #1704
- chore: enable hole punching interop (ignore rust-libp2p) by @gmelodie in #1712
- fix: performance tests when data is empty by @gmelodie in #1720
- feat(mix): benchmark logs by @richard-ramos in #1717
- feat(mix): experimental - exit is destination by @richard-ramos in #1722
- fix: invalid parameter passed in builder being used as channel count size by @richard-ramos in #1724
- test(performance): Add QUIC scenario by @rlve in #1631
- refactor(mix): return errors if sending message fails by @richard-ramos in #1723
- fix(test): code indentation for test case by @vladopajic in #1721
- chore: disable hole punching interop tests by @gmelodie in #1727
- chore: remove commented experimental hole punching tests by @gmelodie in #1730
- feat: add onRunning asyncEvent to Transport base type by @gmelodie in #1731
- fix: testhelper incorrectly setting program result by @gmelodie in #1728
- chore(switch builder): options instead of nils by @gmelodie in #1732
- fix(autonatv2): close dialback connection by @richard-ramos in #1736
- refactor(kad-dht): find node and put val by @richard-ramos in #1733
- chore: remove some catchable errors by @gmelodie in #1739
- fix: update nim-stew version by @gmelodie in #1740
- feat(autotls): add configurable options to AutotlsConfig by @gmelodie in #1741
- test(performance): chart generation refactor by @rlve in #1718
- test(performance): Refactor runner by @rlve in #1735
- feat(multiformats): allow application-level extension of multiformats by @emizzle in #1734
- feat(kad): add ping by @gmelodie in #1744
- chore(interop): update autonatv2 go-peer deps by @gmelodie in #1745
- chore(quic): better error handling by @vladopajic in #1747
- chore(kad): routing table eviction policy by @gmelodie in #1746
- chore(kad): tidy up putVal by @gmelodie in #1749
- test(performance): reliability workflow by @rlve in #1729
- feat: complementary coding style guidelines by @gmelodie in #1752
- feat(kad): add getValue by @gmelodie in #1750
- chore(kad): configuration options by @gmelodie in #1760
- feat: modify rendezvous so that it can be extended by @chaitanyaprem in #1719
- chore(kad): add alpha handling by @gmelodie in #1764
- feat: use BoringSSL for certificate ops by @richard-ramos in #1761
- fix(quic): GossipSub outbound peers by @rlve in #1768
- feat(multiformats): Expose digest size from MHash by @emizzle in #1754
- feat(multiformats): add Cid extensions by @emizzle in #1755
- feat: v1.14.0 by @richard-ramos in #1751
New Contributors
- @chaitanyaprem made their first contribution in #1719
Full Changelog: v1.13.0...v1.14.0
v1.13.0
Highlights
- Autonat v2. Enable its client feature with
withAutonatV2to determine your node's advertised addresses reachability, and the server side withwithAutonatV2Serverto provide this service to other peers. - New publishing options added for gossipsub:
skipIDontWantandskipPreambleso these control messages are optionally not sent on publish
What's Changed
- fix(quic): test improvement by @vladopajic in #1595
- chore(quic): exception msg fix by @vladopajic in #1607
- chore(quic): readOnce better exception handling by @vladopajic in #1610
- fix(quic): setting shortAgent by @vladopajic in #1609
- chore(pubsub): simplify prune backoff test by @vladopajic in #1596
- test(gossipsub): Performance tests - collect docker stats by @rlve in #1593
- test(gossipsub): Performance tests - plot docker stats by @rlve in #1597
- test(gossipsub): Performance tests - plot latency history by @rlve in #1608
- fix(quic): race errors when stopping transport by @vladopajic in #1614
- chore(quic): fix flaky test when eof is expected by @vladopajic in #1611
- feat(kad): Initial unstable putval api by @Ben-PH in #1582
- fix: don't check for errors as
close()will only contain futures that raise[]by @richard-ramos in #1615 - fix: compilation warning on yamux due to using
CatchableErrby @richard-ramos in #1616 - test(performance): fetch before push and improve latency history by @rlve in #1617
- feat(perf): implement proper half-close semantics by @MorganaFuture in #1600
- refactor: Removal of "Hashed" key variant by @Ben-PH in #1623
- fix: pubsub signature verification by @gmelodie in #1618
- refactor:
rm dhttypes.nimby @Ben-PH in #1612 - chore(quic): add length prefixed test by @vladopajic in #1599
- fix(tests): prevent race condition in testgossipsubcontrolmessages by @MorganaFuture in #1626
- test(yamux): Add header unit tests by @rlve in #1625
- feat(kad-dht): findPeer by @richard-ramos in #1624
- fix(test): Race condition on Windows-specific daemon close by @MorganaFuture in #1628
- test(performance): do not run publish steps on forks and fix cleanup by @rlve in #1630
- test(yamux): Add unit tests - frame handling and stream initiation by @rlve in #1634
- refactor: Refine, and reduce, exception scope by @Ben-PH in #1627
- chore(autonat-v2): add message types by @gmelodie in #1637
- chore(perf): follow up for PR#1600 by @vladopajic in #1620
- test(rendezvous): Refactor Rendezvous tests by @rlve in #1644
- chore: temporarily disable performance plots from being published by @richard-ramos in #1647
- fix: dont send GoAway for unknown streams and mark streams as closed on conn close by @richard-ramos in #1645
- fix(rendezvous): pagination offset by @rlve in #1646
- test(performance): upload plots as artifacts by @rlve in #1648
- chore: add localAddr to Connection by @gmelodie in #1651
- chore: pass localAddr in noise, mplex and yamux by @gmelodie in #1654
- test(rendezvous): Registration TTL tests by @rlve in #1655
- chore(ci): remove macos-13 from the matrix by @narimiran in #1650
- fix(rendezvous): peer registration limit by @rlve in #1656
- chore(autonat-v2): add utils by @gmelodie in #1657
- feat(autonat-v2): add server by @gmelodie in #1658
- chore:
splitRPCMsgimprovements by @vladopajic in #1665 - chore(autonat-v2): add server config by @gmelodie in #1669
- chore(quic): add tests from common interop by @vladopajic in #1662
- chore(tests): utilize quic transport in pubsub tests by @vladopajic in #1667
- refactor(rendezvous): Split Rendezvous Protobuf and add tests by @rlve in #1671
- fix(builders): transport param not assigned in newStandardSwitch by @vladopajic in #1676
- test(rendezvous): Simplify test setup by @rlve in #1677
- feat(autonat-v2): add client and tests by @gmelodie in #1659
- fix(pubsub): use custom conn when message is sent as lower-priority by @vladopajic in #1679
- chore: rename withAutonatV2 to withAutonatV2Server by @gmelodie in #1680
- feat: add
skipIDontWantandskipPreambleby @richard-ramos in #1681 - feat: add autonat v2 service by @gmelodie in #1684
- chore: add autonatv2 service to builder by @gmelodie in #1686
- chore: add missing import by @richard-ramos in #1692
- feat(mix): crypto by @richard-ramos in #1687
- feat(mix): sequence number generator and tag manager by @richard-ramos in #1688
- chore(quic): better error handling in stream.write() by @vladopajic in #1693
- fix(autonat-v2): service setting up correctly by @gmelodie in #1694
- feat(mix): serialization by @richard-ramos in #1689
- feat(mix): message by @richard-ramos in #1690
Full Changelog: v1.12.0...v1.13.0
v1.12.0
Highlights
- Gossipsub 1.4 (use
-d:libp2p_gossipsub_1_4compile flag) - AutoTLS can be used to automatically obtain a Let's Encrypt certificate for WSS transport
- Improvements in memory/cpu usage
What's Changed
- chore: update more dependencies by @narimiran in #1374
- chore: bump quic by @richard-ramos in #1387
- test(gossipsub): move and refactor control messages tests by @rlve in #1380
- chore: move -d:libp2p_quic_support flag to .nimble by @richard-ramos in #1392
- fix(quic): reset and mm for interop tests by @richard-ramos in #1397
- chore: unused imports are now errors by @narimiran in #1399
- test(gossipsub): heartbeat tests by @rlve in #1391
- fix: limit chronicles version to < 0.11.0 by @richard-ramos in #1423
- ci(dependencies): fix access to tokens by @vladopajic in #1421
- test(gossipsub): include missing test files and handle flaky tests by @rlve in #1416
- fix(gossipsub): save iDontWants messages in the first element of history by @rlve in #1393
- chore: bump quic by @richard-ramos in #1428
- chore(interop): move interop code to separate folder by @vladopajic in #1413
- fix(ci-daily): delete cache action will continue on error by @vladopajic in #1435
- test: checkUntilTimeout refactor by @rlve in #1437
- test(gossipsub): message cache by @rlve in #1431
- feat(autotls): add acme client by @gmelodie in #1436
- fix(GossipSub): save sent iHave in first element by @rlve in #1405
- test(gossipsub): parameters by @rlve in #1442
- chore(gossipsub): add consts by @vladopajic in #1447
- chore(quic): add
libp2p_network_bytesmetric by @richard-ramos in #1439 - test(gossipsub): flaky tests by @rlve in #1451
- feat(gossipsub): Add support for custom connection handling (Mix protocol integration) by @AkshayaMani in #1420
- feat(peeridauth): add peeridauth by @gmelodie in #1445
- feat:
withWsTransportby @richard-ramos in #1398 - feat(kad-dht): protobuffers by @richard-ramos in #1453
- test: increase timeout by @rlve in #1460
- chore(acme): add MockACMEApi for testing by @gmelodie in #1457
- test(gossipsub): refactor and unify scoring tests by @rlve in #1461
- fix(daily): fix typo in testintegration by @gmelodie in #1463
- chore: Add some more context when an exception is caught by @Ivansete-status in #1432
- chore(peeridauth): add mocked client by @gmelodie in #1458
- feat(perf): add stats by @vladopajic in #1452
- test(gossipsub): GossipThreshold and PublishThreshold tests by @rlve in #1464
- test(gossipsub): split unit and integration tests by @rlve in #1465
- chore(version): update libp2p.nimble to 1.11.0 by @richard-ramos in #1433
- fix: force close of streams instead of reset when closing connection by @richard-ramos in #1466
- fix: make quic test optional by @richard-ramos in #1475
- feat(kad-dht): routing table by @richard-ramos in #1454
- feat(kad-dht): handler by @richard-ramos in #1455
- fix(peeridauth): fix peeridauth_integration import by @gmelodie in #1478
- chore(acme): add ACMEClient to hold information about an ACME account by @gmelodie in #1470
- fix: mark channel as reset to not read after closed by @richard-ramos in #1479
- test(gossipsub): rpcHandler - rateLimit and punishInvalidMessage tests by @rlve in #1467
- test(gossipsub): organise Behavior tests by @rlve in #1468
- test(gossipsub): behaviourPenalty tests by @rlve in #1469
- test(gossipsub): updateScores tests by @rlve in #1471
- feat(autotls): add AutoTLSManager by @gmelodie in #1472
- chore(perf): add quic test by @vladopajic in #1483
- fix(autotls): private checkedGetPrimaryIPAddr by @gmelodie in #1489
- chore(yamux): improve performance with zero allocation queue by @vladopajic in #1488
- feat(gossipsub): Add support for skipping message insertion into the message cache (Mix protocol integration) by @AkshayaMani in #1485
- chore: remove unused import by @vladopajic in #1490
- chore(ci): disable hole punching tests by @vladopajic in #1493
- refactor(secure): utilize ZeroQueue by @vladopajic in #1492
- refactor(bufferstream): utilize ZeroQueue by @vladopajic in #1491
- test(gossipsub): refactor compatibility related tests by @rlve in #1495
- test(gossipsub): scoring integration tests by @rlve in #1487
- chore(autotls): make autotls manager into service by @gmelodie in #1486
- test(gossipsub): Signature flags tests by @rlve in #1496
- fix(ci): move testintegration to new step by @gmelodie in #1499
- chore(deps): remove bio by @gmelodie in #1506
- refactor(noise): reduce memory usage by @vladopajic in #1497
- chore: add info to error by @vladopajic in #1505
- test(gossipsub): behavior unit tests 1 by @rlve in #1501
- test(gossipsub): behavior unit tests 2 by @rlve in #1503
- test(gossipsub): gossipsub unit tests 1 by @rlve in #1508
- chore(test): reduce sleepAsync by @narimiran in #1481
- test(gossipsub): gossipsub unit tests 2 by @rlve in #1511
- chore: utilizing newSeqUninitialized by @vladopajic in #1510
- chore(autotls): prevent nil access on stop by @gmelodie in #1514
- chore: fix broken README links by @gmelodie in #1517
- chore: removing unused type StreamSeq by @vladopajic in #1507
- chore: add template newSeqUninit by @vladopajic in #1518
- chore(peerinfo): enable calling update multiple times by @gmelodie in #1525
- feat(gossipsub1_4): preamble store by @richard-ramos in #1513
- feat(gossipsub1.4): adding new attributes and protobuffers by @richard-ramos in #1515
- chore: hide autotls under compile flag by @richard-ramos in #1533
- fix: also hide autotls/utils methods by @richard-ramos in #1538
- fix(perf): add QUIC transport compatibility by @MorganaFuture in #1524
- chore(readme): add link to community channel by @vladopajic in #1542
- chore(dialer): expand dns4 and dns6 by @gmelodie in #1543
- fix(quic): add getWrapped method for QuicStream by @vladopajic in #1546
- fix: autotls related imports by @richard-ramos in #1550
- fix: build failures caused by missing import by @MorganaFuture in #1541
- fix: properly handle CancelledError in switch accept loop by @MorganaFuture in #1537
- feat(wstransport): add autotls support by @gmelodie in #1535
- feat: GossipSub v1.4 by @ufarooqstatus in #1448
- fix: typo on startAt by @gmelodie in #1562
- chore(ci): initial flake.nix file with dev shell by @Ben-PH in https://github.com/vacp2p/nim-libp...
v1.11.0
Highlights
- Added
withWsTransportoption to the builder to easily add websocket transport support - Fix: save IDONTWANT and IHAVE messages in the first element of history. Previously they were being saved as last element of the history so they were kept only for one heartbeat.
- Update the library dependencies versions
What's Changed
- chore: update more dependencies by @narimiran in #1374
- chore: bump quic by @richard-ramos in #1387
- test(gossipsub): move and refactor control messages tests by @rlve in #1380
- chore: move -d:libp2p_quic_support flag to .nimble by @richard-ramos in #1392
- fix(ci-daily): remove unused flag by @vladopajic in #1400
- fix(quic): reset and mm for interop tests by @richard-ramos in #1397
- chore: unused imports are now errors by @narimiran in #1399
- test(gossipsub): heartbeat tests by @rlve in #1391
- ci(daily): improvements by @vladopajic in #1404
- fix: limit chronicles version to < 0.11.0 by @richard-ramos in #1423
- ci(dependencies): fix access to tokens by @vladopajic in #1421
- test(gossipsub): include missing test files and handle flaky tests by @rlve in #1416
- fix(gossipsub): save iDontWants messages in the first element of history by @rlve in #1393
- chore: bump quic by @richard-ramos in #1428
- ci(daily): add pinned dependencies variant by @vladopajic in #1418
- chore(interop): move interop code to separate folder by @vladopajic in #1413
- chore(readme): improve README's development section by @gmelodie in #1427
- fix(ci-daily): delete cache action will continue on error by @vladopajic in #1435
- test: checkUntilTimeout refactor by @rlve in #1437
- test(gossipsub): message cache by @rlve in #1431
- feat(autotls): add acme client by @gmelodie in #1436
- fix(GossipSub): save sent iHave in first element by @rlve in #1405
- test(gossipsub): parameters by @rlve in #1442
- chore(gossipsub): add consts by @vladopajic in #1447
- chore(quic): add
libp2p_network_bytesmetric by @richard-ramos in #1439 - test(gossipsub): flaky tests by @rlve in #1451
- feat(gossipsub): Add support for custom connection handling (Mix protocol integration) by @AkshayaMani in #1420
- feat(peeridauth): add peeridauth by @gmelodie in #1445
- feat:
withWsTransportby @richard-ramos in #1398 - feat(kad-dht): protobuffers by @richard-ramos in #1453
- test: increase timeout by @rlve in #1460
- chore(acme): add MockACMEApi for testing by @gmelodie in #1457
- test(gossipsub): refactor and unify scoring tests by @rlve in #1461
- fix(daily): fix typo in testintegration by @gmelodie in #1463
- chore: Add some more context when an exception is caught by @Ivansete-status in #1432
- chore(peeridauth): add mocked client by @gmelodie in #1458
- feat(perf): add stats by @vladopajic in #1452
- test(gossipsub): GossipThreshold and PublishThreshold tests by @rlve in #1464
- test(gossipsub): split unit and integration tests by @rlve in #1465
New Contributors
- @AkshayaMani made their first contribution in #1420
Full Changelog: v1.10.1...v1.10.2
v1.10.1
Highlights
- Quic transport is optional (due to including runtime dependencies). To enable it use the
-d:libp2p_quic_supportcompile time symbol
What's Changed
- chore: add gcsafe pragma to removeValidator by @Ivansete-status in #1356
- feat(cert): add certificate signing request (CSR) generation by @gmelodie in #1355
- chore: change nim-stew dep tagging by @gmelodie in #1362
- chore: update dependencies by @narimiran in #1368
- chore(interop): use the same redis dependency by @vladopajic in #1364
- chore: fix import warnings by @narimiran in #1370
- chore: bump quic by @richard-ramos in #1371
- chore: improve README.md text by @gmelodie in #1373
- chore(dialer): capture possible exception by @Ivansete-status in #1381
- chore(hp): add timeout on dial by @vladopajic in #1378
- chore: make quic optional by @richard-ramos in #1389
Full Changelog: v1.10.0...v1.10.1
v1.10.0
Highlights
- QUIC transport: lower latency, encrypted, stream-multiplexed connections over UDP — now in a usable state
- New in-memory transport: a lightweight, drop-in alternative when full networking isn't needed
What's Changed
- chore: remove python dependency by @richard-ramos in #1287
- chore: specify exceptions in try statement by @vladopajic in #1284
- chore: use token per repo in autobump task by @richard-ramos in #1288
- feat: X.509 certificate validation by @vladopajic in #1292
- chore(certificate): cosmetics by @vladopajic in #1293
- feat(certificate): set distinguishable issuer name with peer id by @vladopajic in #1296
- refactor: use openssl instead of mbedtls by @richard-ramos in #1298
- feat(certificate): add date verification by @vladopajic in #1299
- feat: quic by @richard-ramos in #1265
- chore(quic): add tests with invalid certs by @vladopajic in #1297
- chore: update quic and expect exception in test by @richard-ramos in #1300
- feat:
withQuicTransportby @richard-ramos in #1301 - fix: set peerId on incoming Quic connection by @richard-ramos in #1302
- chore(certificate): update test vectors by @vladopajic in #1294
- fix: unsafe string usage by @richard-ramos in #1308
- chore(protocols): remove deprecated utilities by @vladopajic in #1305
- feat(transport): add memory transport by @vladopajic in #1304
- chore(readme): add quic and memory transports by @vladopajic in #1311
- chore: remove range checks from rendezvous by @richard-ramos in #1306
- chore: bump nim-quic by @richard-ramos in #1314
- fix(quic): continue accept when client certificate is incorrect by @vladopajic in #1312
- refactor: utilize single bridgedConnections by @vladopajic in #1309
- chore(git): ignore auto generated test binaries by @vladopajic in #1320
- fix: do not use while loop for quic transport errors by @richard-ramos in #1317
- chore: rendezvous improvements by @gmelodie in #1319
- test(gossipsub): message propagation by @strinnityk in #1184
- chore(test): remove unused flags and simplify testpubsub by @rlve in #1328
- chore(ci): decouple examples from unit tests by @rlve in #1334
- test: combine tests by @rlve in #1335
- test: include missing tests in testall by @rlve in #1338
- chore: fix broken old status-im links by @gmelodie in #1332
- chore: fix warnings by @narimiran in #1341
- test(gossipsub): optimise heartbeat interval and sleepAsync by @rlve in #1342
- fix: git ignore for tests by @vladopajic in #1349
- test(gossipsub): reorganize tests by feature category by @rlve in #1350
- chore: add libp2p CID codec by @gmelodie in #1348
New Contributors
Full Changelog: v1.9.0...v1.10.0
v1.9.0
Highlights
- Async exception tracking - Procedures marked
{.async.}are annotated with the list of exceptions they might raise - Self-signed TLS certificates can be generated. These will be used with Quic and WebTransport
Breaking change
- Python3 and pip are introduced as a dependency due to mbedtls requiring them to generate some of its source code. In a subsequent release, we will attempt to remove this dependency on Python.
- The
LPProtoHandlertype has changed and now specifies raised exceptions in theasyncpragma, namelyasync: (raises: [CancelledError]). Consequently, all protocol handlers must also specifyasync: (raises: [CancelledError]).
Example, code constructs like:
proc handler(conn: Connection, proto: string) {.async.} =
try:
...
except CancelledError:
trace "Unexpected cancellation in handler"should be changed to:
proc handler(conn: Connection, proto: string) {.async: (raises: [CancelledError]).} =
try:
...
except CancelledError as exc:
trace "Unexpected cancellation in handler"
raise excNote:
asyncpragma addsraises: [CancelledError]CancelledErroris propagate up the chain
What's Changed
- chore: add isClosedRemotely public bool attribute in lpstream by @Ivansete-status in #1242
- refactor(pubsub): do not raise exceptions on publish by @richard-ramos in #1244
- style: fix code style with nph by @vladopajic in #1246
- chore: list raised exceptions in
utilsmodule by @vladopajic in #1252 - chore: specify raising exceptions in
daemonmodule by @vladopajic in #1249 - chore: add description of public pragma by @vladopajic in #1262
- chore: refactors to remove
.closure.,.gcsafefor.async.procs, and added callback compatibility todaemonapiby @richard-ramos in #1240 - chore(connmanager): specify raised exceptions by @vladopajic in #1263
- chore: add trace log to analyse remote stream reset by @Ivansete-status in #1253
- chore: list raised exceptions in
switchservices by @vladopajic in #1251 - chore(transports): list raised exceptions by @vladopajic in #1255
- chore(dialer): list raised exceptions by @vladopajic in #1264
- chore(protocol): list raised exceptions by @vladopajic in #1260
- chore(transports): specify raised exceptions by @vladopajic in #1266
- chore(protocols): specify raised exceptions (part 2) by @vladopajic in #1268
- chore: specify raised exceptions in miscellaneous places by @vladopajic in #1269
- chore(relay): specify raised exceptions by @vladopajic in #1274
- feat(tls-certificate): generate and parse libp2p tls certificate by @diegomrsantos in #1209
- chore(protocol): handler to propagate CancelledError by @vladopajic in #1275
- chore(connmanager): propagate CancelledError by @vladopajic in #1276
New Contributors
- @vladopajic made their first contribution in #1246
Full Changelog: v1.8.0...v1.9.0