-
Notifications
You must be signed in to change notification settings - Fork 978
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
Feature-gate all dependencies #1467
Conversation
Awesome! :) |
So the takeaway from the discussion in #1364 is that the project is moving towards a single A potential problem that came to mind with a single crate is that I remembered feature flags to be unified between |
I see two differences:
That is a good point and definitely something to consider! Glad to see it is being fixed. I don't see how it would make a difference though as the current state is that you are bringing in all of libp2p anyway. The exception to that are libraries that are built on top of single protocol crates and don't use the custom derive. Point (1) from above still applies to them though. |
For now it's just about feature-flagging all the crates, not unifying them into one. But if we're on the topic of unifying crate, to me the major advantage is how much more understandable the crate could become. We could for example put all the implementations of |
Maybe, I just think it should not be forgotten that it comes with a significant loss of flexibility in releases, which I understand In any case, I have no objections to these feature flags themselves. |
Shameless plug: I just wrote a blogpost the other day, how a GitFlow like model allows for a lot of automation around releases / hotfixes. Might be helpful if you are considering that moving to that :) In any case, I am excited about these changes! |
Can I ping for reviews/opinions? 🙏 |
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.
This looks good to me from a technical standpoint. I don't have an opinion on the actual process improvements.
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.
Can I ping for reviews/opinions? 🙏
Not sure if this was also directed towards me but the implementation looks good to me. Tested this branch on our end and works flawlessly: -60 dependencies in total 👌
Close #1364
cc @thomaseizinger
I removed the
CommonTransport
struct, because I would otherwise need to provide eight different implementations of it (one for each combination of tcp/dns/websocket).