-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Proposal: Round 2 of repo consolidation #829
Comments
Might propose merging |
One of the goals of having separate repos is to allow third-parties to easily consume sub-components without having to import everything. Given that, I agree with including:
The first two are especially important when it comes to refactors.
I agree but this is a very "core" component that most transports depend on. If this moves into go-libp2p, go-libp2p-core will need an upgrader interface. Even then, tests will end up pulling in go-libp2p, but that's probably not the end of the world.
This seems strange. Services like go-libp2p-pubsub depend on this service and shouldn't have to depend on the specific libp2p implementation outside of testing. I also don't see this as a refactor hazard.
I'd leave this where it is. It's in multiformats because it isn't even libp2p specific.
This is basically just a helper package for managing NAT port mappings. For example, holochain appears to be using this component independently: https://github.com/holochain/holochain-proto/blob/master/node.go#L316-L329. We already have a libp2p specific NAT package inside go-libp2p. |
Other repos:
|
This dependency of go-libp2p-pubsub on go-libp2p-discovery has actually almost nothing to do with Discovery (even for tests). Instead it relies on go-libp2p-discovery because it has some useful utilities like configurable backoff logic. If we extract that logic somewhere useful then pubsub will not need to depend on go-libp2p (or go-libp2p-discovery). I see @petar is doing some exploratory work on backoffs at libp2p/go-libp2p-core#127, perhaps we can put the backoff code from go-libp2p-discovery near wherever that ends up living. |
As someone having built extensively on top of libp2p, these changes are quite ok and result at most in minor import path rewriting (probably not even that). Most dependencies, if not all, are already directly on the core interfaces and utils, so SGTM in general and should disrupt upstream projects very little. |
I'm going to gradually start shuffling/absorbing/coalescing repos as I encounter maintenance hell situations. First up is |
All of the repos mentioned above (with the exception of the peer store) have been merged into go-libp2p (see #1187). |
Motto: "there is such thing as over-modularisation; logical modularity does not need to translate into physical modularity.".
Motivation
Solution
Consolidation proposal
There may be more.
The text was updated successfully, but these errors were encountered: