-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Separate Core Module #3384
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
base: master
Are you sure you want to change the base?
Separate Core Module #3384
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
we used to have that some years ago, and then we made one big happy monorepo.... I am not sure it is such a great idea to go back to separate core, there was quite a bit of pain and frustration.
I would definitely consult @raulk on this.
The pain with the previous setup was the separate repo. This keeps this mono repo, which allows for atomic changes across modules. |
b01a8e8
to
edaf585
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The core separation seems fine to me. Users can depend on something small plus with the newbuilder they can depend on exactly what they want. The steps to roll this out, as I see it are:
- Separate the refactor changes.
- Do a go-libp2p release.
- Separate the core; Do a core release.
- Do a go-libp2p release which depends on the core release from 3.
This lets protocols, such as Gossipsub, to be more agnostic to the specific version of go-libp2p they are running on. Instead they depend only on a specific version of an interface. The core module should remain fairly stable. After some time we could consider cutting a v1 release. But for now it will follow a patch or match versioning. If it's a patch compatible change only the patch number will change, if not it will match the version of go-libp2p.
edaf585
to
e73513e
Compare
This lets protocols, such as Gossipsub and Maybe Kad-DHT, to be more agnostic to the specific version of go-libp2p they are running on. Instead they depend only on a specific version of an interface.
The core module should remain fairly stable. After some time we could consider cutting a v1 release. But for now it will follow a patch or match versioning. If it’s a patch compatible change only the patch number will change, if not it will match the version of go-libp2p.