-
Notifications
You must be signed in to change notification settings - Fork 104
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
Refactor to use multistream_select #101
Conversation
Hi @dheatovwil, thanks for your contribution. Since the py-multistream-select repo simply uses the multistream-select code from py-libp2p, I'm not sure it needs to be included as a separate package and dependency. This also helps us stay consistent with the style of the rest of the repo (modules contained within the py-libp2p repo itself instead of separate repos). Let us know your thoughts. |
@robzajac
I am not sure about @Alexander255's intention, from my observation it seems adhering to go-libp2p structure |
Thanks - we'll wait for followup from @Alexander255. |
@robzajac: The intention behind this is, afaik, to a self-sufficient and reusable client/server library for the multistream-select protocol. (Which indeed is a separate protocol, although intentionally minimalist.) Thanks for your work on this @dheatovwil, btw! |
No worries, so now I gotta package it to PyPI, is this how it works? |
Codecov Report
@@ Coverage Diff @@
## master #101 +/- ##
==========================================
- Coverage 57.19% 55.31% -1.88%
==========================================
Files 53 47 -6
Lines 1668 1580 -88
==========================================
- Hits 954 874 -80
+ Misses 714 706 -8
Continue to review full report at Codecov.
|
@dheatovwil: Yes, that's how it works 🙂 You likely also want to integrate https://github.com/zixuanzh/py-libp2p/blob/master/tests/protocol_muxer/test_protocol_muxer.py into your codebase. I will look into getting your repo moved to the @robzajac: I hope you don't me/us moving ahead with this so quickly – I'm just excited to see some progress here. 😁 |
BTW: I also recommend using Either way you'll want to set |
CC @raulk Thanks @Alexander255 for the details and @dheatovwil again for leading this effort. We see the value in a distinct multistream_select repo and we're excited as well that things are moving forward quickly. There are a few things we would want to see in order to feel comfortable using multistream_select as a dependency in py-libp2p:
We hope this is reasonable, and we're excited to be moving forward! P.S. @dheatovwil I am |
Thanks for the tips, updated the package and repo as you guys mentioned, working on the testcase now. |
@dheatovwil: Were you able to move forward on this since your last comment? |
@Alexander255 Sorry about the late reply, the progress will be a little slow due to other events going on at the same time, I think I can finalize everything in a week or two. |
Added requisite `multistream-select` to setup.py, updated all references accordingly.
Added requisite `multistream-select` to setup.py, updated all references accordingly.
@Alexander255 @robzajac I've requested to transfer the ownership to @stuckinaboot. I've also gone through the testcases and travis pipeline, everything seems fine. The testcase in this repo is updated to use the |
@dheatovwil: LGTM. I looked over the source code and it appears to be well designed and the test are decent. However, as you are probably aware, messages are not actually length-encoded and there are no tests checking whether the correct wire format is actually produced. I also filed an issue on the multistream spec since I noticed that your source, just like everybody else's, assumes that messages are UTF-8 encoded, but that isn't actually written anywhere. |
@dheatovwil Thanks for working on this. I looked through your code and the update you made to implement the 'ls' command and have one piece of feedback. As of now, when 'ls' is seen in Also, in order to merge your PR, we'll need your |
@stuckinaboot Yes you are right, I've checked against go and js code, it's an honest mistake. I've fixed it. Regarding that, I tried to transfer the ownership to multiformats but it says I don't have the permission to do so. Should I talk to the guys at multiformats regarding this issue? |
Bump. Has there been any update on the procedural issues around this? |
It seems this PR moves to extract our multistream-select implementation into another package -- i'm generally in favor of doing this (motivation higher up in the conversation) although it seems this PR has become a bit stale -- we have moved ahead w/ getting the multistream-select implementation in this repo into an interoperable state w/ the Go implementation. i'd be happy to help facilitate the extraction but for now i'll close this PR. feel free to re-open if its best or make a new issue to track the multistream-select extraction :) |
I've forked the multistream_select repo, updated it with latest code in libp2p, and re-referenced the package.
I'm quite new so I'm not entirely sure is everything done, comments are appreciated.
multistream repo at dheatovwil/py-multistream-select