Contact Information
- Name: Mandy Wang
- FAS ID: Mandymy
- Email: wangmychn@gmail.com
- Blog: https://mandywangblog.wordpress.com/
- Github: https://github.com/MandyMY
- Twitter: @MandyMY_
- IRC: Mandy (freenode)
- Jabber= mandymy AT blug DOT moe
- Location: Shanghai, China
- Working Hours: 18:00 - 24:00 (CST); 10:00 – 16:00 (UTC)
About Me
I’m a senior student from Shanghai Institute of Technology major in Software Engineering, and I’m studying for my bachelor’s degree and I expect graduate at June 2017.
Although I only have one year FOSS experience, I think I have gathered enough skills and enthusiasm to do this project. In the last year, I joined the translation of 'Free Software, Free Society' as a member of Beijing GNU/Linux User Group, I did an abundance of proofread works, throughout this period, I mastered the usage of markdown and gained a better understanding of FOSS. And I‘m a member of GNOME and Openkeychain Chinese Localization Team.
I accepted by GNOME in the Outreachy last round to enhance Chinese(China) localization and update guideline, and I have accomplished my internship, that's a fantastic experience, it gave me an opportunity to learn more about how to contribute to FOSS such as reporting bugs and patching, I have learned more about FOSS organizations. At the same time, I made many friends during Outreachy, and many predecessors in GNOME, they are friendly to newcomers, you can learn more in my blog. And I still contribute to GNOME localization these days.
Now I want to go further and try a code project in GSOC.
Why Fedora?
Just because Fedora is the Linux distribution I use the most, so I want to know more about it and make contributions to it, and I believe GSOC is a good chance to integrate into a community, because I had the similar experience in GNOME during Outreachy.
After GSOC, Maybe I will choose to maintain the project I worked in GSOC and Chinese Localization as a start, and look for other projects I interest in.
Why Migrate Plinth to Fedora Server?
I interest in the idea Migrate Plinth to Fedora Server. Plinth is a web interface to administer the functions of the FreedomBox which is a Debian based project, and the main goal of this idea is to make it available for Fedora.
About this idea, for one thing, I can use Python and Django well because I always use it in my homework, and I have some experience about front-end and Linux development during my college. On the other hand, I have learned the basic knowledge of DNF, ARM and RPM after I contact with Mentor Tong, he gave me many useful advice. Also, I’m an user of Fedora and FreedomBox, include Plinth, FreedomBox is a wonderful product and Fedora is the Linux distribution I use the most, so I hope it can be used in Fedora and more Linux distributions.
To solve this issue, I made up a scenario in my proposal, it can be divided roughly into two parts. The first one is modifying the source code module by module to convert it to RPM-based, including replacing the apt command code with the dnf command code or fit both of them, changing the Deb-based packages into RPM-based packages which play the same roles and testing after each module finished. The second part is a little scattered, including making a RPM package for Plinth and setting up a repo for it in Copr, testing inside a Virtual Machine, and modifying some configuration files and the documents for users to fit the changes of Plinth during this project, at the same time, a new wiki page for Plinth in Fedora is needed. You can learn more clearly in the flow chart below:
A Rough Schedule
- May 5 - 20:
- Integrate into the community;
- Be familiar with the existing code and the code style;
- Learn more about Linux, including apt, dnf, Deb and RPM;
- May 21 - 30:
- Prepare and complete the details of the project, such as listing the modules, the documents which need to be modified in the future;
- Make Gantt chart for the detailed schedule;
- May 31 - June 26:
- Convert the first half of the modules from Deb-based to RPM-based, including:
- Replace the apt command code with the dnf command code or fit both of them;
- Change the Deb-based packages into RPM-based packages which play the same roles;
- Test after each module finished;
- Convert the first half of the modules from Deb-based to RPM-based, including:
- June 27 - 30:
- Mid-term examination, submit the evolution of my mentor;
- July 1 - 24:
- Convert the second half of the modules from Deb-based to RPM-based, including:
- Replace the apt command code with the dnf command code or fit both of them;
- Change the Deb-based packages into RPM-based packages which play the same roles;
- Test after each module finished;
- Check out if any module is omitted;
- Convert the second half of the modules from Deb-based to RPM-based, including:
- July 25 - 28:
- Mid-term examination, submit the evolution of my mentor ;
- July 29 - August 21:
- Make a RPM package for Plinth from source and setup a repo for it in Copr;
- Test inside a Virtual Machine, refer to the HACKING;
- Modified README.md and requirements.txt to fit Fedora which is RPM-based;
- Add the guide of RPM-based package to Plinth User Guide and create a wiki page for it in Fedora;
- August 22 - 29:
- Review all achievements;
- Submit the code, project summaries, and final evaluation of my mentor.
My Specific Plans from May to September
I need to complete my graduation thesis in the early June, then I plan to gap a half year before the next degree, so I have enough time to work with this project.