Skip to content

Update dependencies#1

Closed
lucassaldanha wants to merge 106 commits intodevelopfrom
deps-update
Closed

Update dependencies#1
lucassaldanha wants to merge 106 commits intodevelopfrom
deps-update

Conversation

@lucassaldanha
Copy link
Copy Markdown
Owner

Summary

  • Applies all changes from upstream PR libp2p/jvm-libp2p#424 plus additional low-risk updates
  • Fixes pre-existing ./gradlew detekt crash on JVM 21

Changes

Plugins

  • com.diffplug.spotless 6.25.0 → 7.2.1
  • io.spring.dependency-management 1.1.6 → 1.1.7
  • me.champeau.jmh 0.7.2 → 0.7.3
  • com.google.protobuf (Gradle) 0.9.4 → 0.9.5
  • Gradle wrapper 8.10.2 → 8.14.3
  • ktlint version pinned to 1.1.1

Libraries

  • log4j 2.24.1 → 2.25.4
  • junit-jupiter 5.11.3 → 5.13.4
  • junit-platform 1.13.4 (new explicit dependency)
  • assertj-core 3.26.3 → 3.27.4
  • protobuf-java 3.25.5 → 4.32.1
  • netty 4.2.5.Final → 4.2.12.Final
  • netty-tcnative-boringssl-static 2.0.73.Final → 2.0.76.Final
  • bouncycastle 1.78.1 → 1.80
  • guava 33.3.1-jre → 33.4.8-jre
  • slf4j-api 2.0.9 → 2.0.17

Other

  • Remove JMH from explicit dependencies (managed by me.champeau.jmh plugin)
  • Use ParameterizedInvocationConstants.INDEX_PLACEHOLDER (JUnit 5.13+)
  • Remove dead commented-out debug code in GossipScoreBenchmark
  • Fix detekt crashing on JVM 21 by explicitly setting jvmTarget = "11" on Detekt tasks

Deferred (blocked on Kotlin 2.x upgrade)

  • mockk 1.14.x — requires kotlin-stdlib:2.1.20
  • com.github.ben-manes.versions 0.54.0 — requires Kotlin 2.x
  • detekt 1.23.x — requires Kotlin 1.9 compiler API
  • kotlinx-coroutines-core 1.10.x — requires Kotlin 1.8+

Tracked in: libp2p#458

Test plan

  • ./gradlew :libp2p:build — passes
  • ./gradlew :libp2p:test — 863 tests pass, 4 pre-existing failures (Kubo QUIC integration test + flaky mDNS discovery tests requiring multicast)
  • ./gradlew detekt — passes (was broken before this PR)
  • ./gradlew spotlessCheck — passes

StefanBratanov and others added 30 commits February 15, 2023 11:44
* Update versions of most libraries and gradle plugins
* Upgrade the gradle wrapper to 7.6
* Update kotlin version from 1.6.10 to 1.6.21
* Replace jmh initialization with a me.champeau.jmh gradle plugin
* Linting changes to files based on the lintKotlin task
* Change the jvmTarget, sourceCompatibility and targetCompatibility to Java 11 (align with the README.md saying Java 11 is needed.)
* Small build.gradle nits suggested by IntelliJ
* Change the two dependency badges in the README.md with one provided by cloudsmith
* Extract 'libp2p' module
* Sort out common and libp2p gradle dependencies
* Add example as modules (except Android)
* Publish artifacts only for modules declaring 'mavenArtifactId' property
* Extract versions to a dedicated file
* Move gradle JMH stuff to the libp2p module unless anyone wants to add JMH to other modules

Co-authored-by: Salvatore Testa <sal.testa@gmail.com>
* [Libp2p for Sim]: open some members for overriding
* [Libp2p for Sim]: Make a property public
* [Libp2p for Sim]: open some members to replace AbstractRouter.serialize hack
* Add overridable GossipRouter.heartbeatInitialDelay property
* Extract libp2p.testFixtures schedulers package to a dedicated :tools:schedulers module
* Add :tools:simulator module
* Simulation main classes are located in the package io.libp2p.simulate.main
* Any simulation could be run from the gradle command line (gradle application plugin applied in the module)
* Simulations are configured programmatically only
* Add simulator README and the reference from the main README
* Upgrade Gradle version to 8.0
* Refactor Android example
* Add 2 Android gradle plugins (without applying) to the root build (haven't managed to isolate them in Android example module)
* Add android.useAndroidX property to the root gradle.properties (for some reason defining this property in the Android submodule doesn't work)
* Add libp2p.gradle.custom per project property which indicates whether common gradle code for submodules should be skipped (set it up for Adnroid example)
* Move Maven repositories definitions to settings.gradle
* In the settings.gradle detect if Android SDK is installed and conditionally include :examples:android-chatter module
* Add Setup Android SDK GitHub action
* Get rid of Apache commons-codec dependency
* Replace log4j-api entries and dependencies with corresponding slf4j analogs
* Add log4j-slf4j2-impl runtime dependencies for examples, tests and simulator module
* add multiaddr dependency from jitpack
* Support webtransport multiaddrs
* Implement dns multiaddr
* Support quic-v1 and wss multiaddr
---------
Co-authored-by: ian <ianopolous@protonmail.com>
* Initial yamux implementation
* Implement per stream write buffers and per connection max write buffer size limit.
* Make MuxHandler abstract. Move Mplex specific members to MplexHandler. Derive YamuxHandler from it
* Refactor MuxHandler tests
* Refactor MplexFrame, remove obsolete MuxFrame
* Flush buffered writes in yamux on local disconnect
---------
Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Refactor: move test utility classes to testFixtures module
* Fix regression: MplexFrame should implement ReferenceCounted to release the underlying ByteBuf after encoding with MplexFrameCodec
* Add unit test reproducing the issue
* Refactor MuxHandlerAbstractTest: add ability to handle outbound messages
* Control and check ByteBuf allocations and releases
* Add more testcases and assertions
* [Generic] (buffer leak) release message buffer if inbound frame have non-existing streamId: 71c68c4
* [Yamux] Process RST (Reset) flag: 42e40f6
* [Generic] Writing to a stream which was prior closed should be prohibited: d3c4580
* [Generic] Receiving a data on a steam which was remotely closed should result in exception (recoverable, i.e. connection should not be terminated): 8974317
* [Yamux] switch the logic of onLocalDisconnect() and onLocalClose() methods. onLocalDisconnect() should leave the stream open for inbound data: 820c252
* [Yamux] need to clean up stream entries on any kind of stream closure (local Reset, remote Reset, local + remote Close): 66ef36b
* Convert RemoteWriteClosed to singleton
…bp2p#283)

* Add early muxer negotiation support 
* Implement TLS security protocol
* Remove the insecure Secio from builders so it can't be accidentally included
* Add TLS tests
* Bouncycastle ECDSA certs in TLS were broken
* Change unit test to cover this

Co-authored-by: Anton Nashatyrev <Nashatyrev@users.noreply.github.com>
* yamux: Don't error on window update for closed stream
* stream closes are often window updates with size 0
* Make sure window is initialised before calling onRemoteOpen
* Add the unit test reproducing issues with Yamux
---------

Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Fix yamux handling of writes bigger than the window size
* Fix inefficient window size handling
* Release delayed yamux send buffer once sent. 
* Add Unit test
---------
Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Add Yamux specific unit tests
* Minor Yamux refactorings
* Remove PubsubMessage references from SeenCache implementations 
* Add FastIdSeenCache.FastIdPubsubMessage class to make use of cached messageId
* Adjust tests to SeenCache changes
* Add component status table
* Remove outdated roadmap and the old list of components
* Add 'Notable Users' section
* Add 'Android support' module
* Add Host.getProtocols()
* Fix Host.addProtocolHandler (There was in internal CopyOnWriteArrayList for protocols in the muxer, so it didn't see newly added protocols)
* Make a thread-safe shared MutableList for Host and Muxers
---------

Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
Integrate V1.0.0 changes into develop
…p#312)

* Use single windowSizes map for inbound and outbound frames
* Fix check of buffered messages length against the window size
* Don't use retain() when adding a buffered message
* Use readRetainedSlice() method when writing a partial frame to ensure reference count is kept when reading the next partial message
* Calculate totalBufferedBytes on the fly depending on the values in the sendBuffers map
* Only send partial frame if windowSize is bigger than 0
tbenr and others added 29 commits October 21, 2024 15:33
…reshold

[GOSSIP][BREAKING] Replace `floodPublish` param with `floodPublishMaxMessageSizeThreshold`
* When publishing take extra nodes out of mesh when mesh is not large enough
* Add tests for publish extra nodes
* When publishing prioritize back up non-mesh peers with acceptable score
Quic secure transport implementation

---------

Co-authored-by: Anton Nashatyrev <anton.nashatyrev@gmail.com>
* Relay local/remote multiaddress retrieval to Transport implementations to get rid of subclass checks
* chore: add or force update .github/workflows/stale.yml

* chore: add or force update .github/workflows/generated-pr.yml
---------

Co-authored-by: Anton Nashatyrev <Nashatyrev@users.noreply.github.com>
fixed the problem of openjdk images being gone
* Updated rpc protobuf definition for partial messages

* fix spaces

* fix typo
Plugins:
- com.diffplug.spotless 6.25.0 -> 7.2.1
- io.spring.dependency-management 1.1.6 -> 1.1.7
- me.champeau.jmh 0.7.2 -> 0.7.3
- com.google.protobuf (gradle) 0.9.4 -> 0.9.5
- Gradle wrapper 8.10.2 -> 8.14.3

Libraries:
- log4j 2.24.1 -> 2.25.4
- junit-jupiter 5.11.3 -> 5.13.4
- junit-platform 1.13.4 (new explicit dependency)
- assertj-core 3.26.3 -> 3.27.4
- protobuf-java 3.25.5 -> 4.32.1
- netty 4.2.5.Final -> 4.2.12.Final
- netty-tcnative-boringssl-static 2.0.73.Final -> 2.0.76.Final
- bouncycastle 1.78.1 -> 1.80
- guava 33.3.1-jre -> 33.4.8-jre
- slf4j-api 2.0.9 -> 2.0.17
- ktlint version pinned to 1.1.1

Other:
- Remove jmh from explicit dependencies (managed by me.champeau.jmh plugin)
- Use ParameterizedInvocationConstants.INDEX_PLACEHOLDER (junit 5.13+)
- Remove dead commented-out debug code in GossipScoreBenchmark
detekt 1.22.0 only accepts jvmTarget up to 18, so it fails when Gradle
runs on Java 21. Explicitly setting jvmTarget = "11" on the Detekt tasks
matches the project's configured Kotlin target and unblocks the check.

detekt 1.23.x would fix this properly but requires Kotlin 1.9+, which
is a separate upgrade.
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.