From Fedora Project Wiki

Contact Information

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;
  • 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;
  • 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.