On Tue, Mar 28, 2017 at 09:43:12PM +0000, dawuud wrote:
Hey,
Cool project.
Thanks!
Yes... write unit tests with pytest. Sounds good but I would suggest writing tests earlier in the development process next time.
I completely agree (and I feel bad for that).
Does your project have a specification for this software? Otherwise I have to read the code to learn how it works.
I would not call that a specification, but we have written a few pages of documentation. I totally forgot to add these references to the post. There are currently usage instructions for the GUI [0] and the CLI [1], and also its protocol [2]. The latter basically tells how conversations are established and how the packets look like. That's what we have written so far... That does not tell everything about the app, but a very important part of it. Are there any specific aspects you would like to see? I will start writing a bit about its functioning.
Using automat for the fsm sounds like a great idea. You probably will end up making several finite state machines and connecting them together in a graph. If you end up doing that you should probably first draw a picture... it helps to clarify.
I've recently started to experiment with automat myself and I've heard good things about it from my associates.
also you could add :
- hypothesis tests (fuzzing/property based tests)
https://hypothesis.readthedocs.io/
- changes to setup.py and add a requirements.txt
- use python attrs to eliminate boiler plate code in your classes
as an example here's my fork of sphinx, a mixnet crypto library with 100% unit test coverage, hypothesis fuzzing, usage of attrs and a proper setup.py and requirements.txt file:
Thanks! Those are great ideas! Very interesting!
I'd be interested in collaborating with you and mentoring this project.
Thanks for the interest! From your suggestions, I believe the project would be more "developer centered" and I think that is the right way to go. The earlier we do that, the less we are going to regret when things start to grow and get more complex. That is also a great improvement to prevent bugs which can harm the UX as well as anonymity/privacy/security. Do you think that's the approach we should use for this proposal then? I am asking that because I do not know if people would expect more features than "just" code improvements for a project, if that makes sense.
I'm not sure how much time I'll have in the coming months... we'll see.
Well, let me know if there is anything I can do about that.
Thanks David! -Felipe
[0]: https://unmessage.readthedocs.io/en/latest/gui/gui.html [1]: https://unmessage.readthedocs.io/en/latest/cli/cli.html [2]: https://unmessage.readthedocs.io/en/latest/protocol.html