4 ms·
How should I manage and develop my open-source project?
I have developed one OSS tool (https://github.com/Koukyosyumei/AIJack), and I would like to ask how I manage it and where I should focus.
This OSS aims to simulate the security and privacy risks of Machine Learning. This tool allows users to experiment with various combinations of attacks and defenses against ML/DL models, such as Model Inversion Attacks, Poisoning Attacks, BackDoor Attacks, Differential Privacy, Encryption, K-Anonnymization, and Federated Learning. I have implemented these algorithms with Python and C++. I use black, isort, pytest, and codacy to check the quality of codes. I also generate the documentation with sphinx, but the quality is not high. The coverage of test codes is around 70%.
Since I do not have much experience with OSS projects, I don't know the best practices for OSS management and development. For example, I guess I should do the following:
- Improving the coverage of test codes
- Making documents more informative and clearer
- Writing blog posts (in many languages)
- Implementing more algorithms
- Unifying APIs for different algorithms
- Create some good-first-issuesfor new contributors
- Gathering contributors, etc
How should I prioritize them? How do you keep motivated? Some people demand a lot without gratitude or contributions (of course, most people are really lovely!). I will be a senior in April, so I must also prepare for MS or Ph.D. applications. I also have to work for my tuition. How much time do you usually spend on OSS? Should I focus on other things like research internships?
Any suggestions are really welcome —many thanks for considering my question.
- DamonHD 4y agoAlmost the first thing that I end up spending each time I start a new (OSS) project is getting the licensing right: choosing and publishing my own (without which no one can legitimately make use of the new work), and respecting that of others' work that I use. Then put it somewhere that most people can get at, eg GitHub. Then talk about it in places that will help others find it, eg through search engines, but also at meetups (I just found a talk I gave as FOSDEM in 2014!). All the other things that you list are good too, but if no one finds or uses your stuff then your efforts maty have been in vain!