Skip to content

Conversation

MarcoPolo
Copy link
Collaborator

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.

@MarcoPolo MarcoPolo requested a review from sukunrt September 18, 2025 22:23
Copy link
Contributor

@vyzo vyzo left a 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.

@MarcoPolo
Copy link
Collaborator Author

The pain with the previous setup was the separate repo. This keeps this mono repo, which allows for atomic changes across modules.

@MarcoPolo MarcoPolo force-pushed the core-module branch 8 times, most recently from b01a8e8 to edaf585 Compare September 20, 2025 00:48
Copy link
Member

@sukunrt sukunrt left a 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:

  1. Separate the refactor changes.
  2. Do a go-libp2p release.
  3. Separate the core; Do a core release.
  4. 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.
@MarcoPolo MarcoPolo mentioned this pull request Oct 7, 2025
18 tasks
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.

3 participants