From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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:

GSOC2017 Plinth FlowChart.jpg

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.