Hey! I am mentoring a project on Outreachy for Nmstate and Nispor project as part of the Fedora organization! Many thanks to the Fedora people that helped us a lot with the application.
Unfortunately it is not possible to apply to Outreachy now, but we plan to propose similar projects to Google Summer of Code or followings Outreachy seasons. Of course you can get a nice T-shirt by contributing during the hacktoberfest to Nmstate or Nispor.
What is Outreachy?
Outreachy is a program that provides internship opportunities to people are facing discrimination in the tech industry/environment. This way, we can promote a more diverse and open environment in free software projects.
Work needed on Nispor for Outreachy
Currently the project proposes to options, implement the WIFI support or implement the Wireguard support. Both of them requires very similar work, to understand how to gather runtime network state information form the kernel using netlink and how to report it back in a human-readable way.
That would require reading a lot of kernel code and documentation but it will provide a lot of very valuable knowledge to the student. In addition, Rust and Python will be needed as the gathering code is written on Rust and the python binding is going to be a must in order to use it from Nmstate.
Work needed on Nmstate for Outreachy
After the Nispor work is done, we need to provide support on Nmstate to the selected feature. In order to do that, the student will need to understand how is Nmstate using NetworkManager in order to apply the desired network configuration. Therefore, reading the NetworkManager Python API documentation will be a must.
In addition, the student will need to understand how to use the Nispor native python library from Nmstate, but that will be quite easy as they will have done the implementation there.
Are you interested on applying?
I am glad to hear that! I invite you apply as soon as possible at #3 project in Fedora projects. In addition you can contact me if you need first steps on contributing and I must recommend you the following documentation: