Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.0.0 Release #304

Closed
wants to merge 28 commits into from
Closed

1.0.0 Release #304

wants to merge 28 commits into from

Conversation

StefanBratanov
Copy link
Collaborator

Changes as per feature branch PR: #303

ajsutton and others added 28 commits December 21, 2022 06:35
They weren't running in CI and haven't been maintained so the other language client no longer even compile cleanly. Given we're not running these tests and they were only basic ping, they aren't providing enough value to justify fixing and maintaining them.
* 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 <[email protected]>
* [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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
* 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 <[email protected]>
Integrate V1.0.0 changes into develop
@StefanBratanov StefanBratanov changed the title 1.0.0 release 1.0.0 Release Aug 21, 2023
@StefanBratanov
Copy link
Collaborator Author

Closing (should not merge from fork)

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.

6 participants