lschoe / mpyc

MPyC: Multiparty Computation in Python
MIT License
367 stars 76 forks source link

Contribution guidelines #45

Closed MarcT0K closed 1 year ago

MarcT0K commented 1 year ago

Hi, While implementing my own experiments, I've developed several utility functions that may interest other people here. For example, I implemented an np_shuffle function that parallelizes the existing function shuffle.

Hence, I wondered whether you had a documentation detailing contribution guidelines. In particular, I would like to know:

  1. Whether there is a process to define which new features would be interesting to integrate in MPyC? I mentioned an example feature but I implemented few other features that may or may not interest MPyC users including an oblivious quicksort and an oblivious merge.
  2. What are the programming standards in terms of documentation and unit testing?
lschoe commented 1 year ago

There are no explicit contribution guidelines (yet), but you can see some things from the way the repo is organized. So, how the unittests are done in mpcy/tests, how the documentation is generated in mpyc/docs, and how things are configured, e.g., in mpyc/setup.cfg showing the settings for pycodestyle (PEP 8).

And for an extension like for shuffling it's best to submit a PR, or to develop it in a repo of your own to show how and what it does. (I'll also compare it with extensions/experiments that I keep on a private fork of the public mpyc repo, including work on quicksort for example.)