ChrisOliver

ChrisOliver

Contact information

  • Your Name: Chris Oliver
  • Email Address: excid3@gmail.com

  • IRC nickname: excid3
  • Launchpad ID: excid3
  • Skype username: excid3
  • Webpage/blog: http://excid3.com

  • College-University: Southern Illinois University Edwardsville
  • Major: Computer Science

Project

Project Name:

Kubuntu Package Manager Improvements

Project Description:

Implementing a Kubuntu version of the Software Center and various improvements to the KPackageKit interface.

If you would be willing and able to do other projects instead, which ones?

Ubuntu One KDE Client, Launchpad Offline Bug Client, Qt 4 Quickly and Quidgets, Harvest Improvements, Testdrive Frontend

Why did you like this idea?

One of the most important features of Linux is the complete integration of package management into the operating system. Windows suffers significantly from this. Recently, the "app store" craze has come to Ubuntu. Easily being able to download applications by browsing categories when you don't necessarily know what you are looking for, being able to choose a popular (and probably good) application makes having an App Store a great idea for new comers.

I remember when I was a newcomer to Ubuntu, the package management system was confusing to me. There was a period of time where it took me a while to understand what I was doing, but never a clear idea whether a package was an application or just a dependency other than maybe its name started with "lib". Ubuntu improved this nicely with software-center. A simple, webkit based interface that is visually oriented and well categorized, Ubuntu users can easily jump right in customizing their OS to their needs and liking.

Kubuntu has fallen behind. In an effort to stay close with Ubuntu's main feature set, a Kubuntu version of software-center is needed. Currently, KPackageKit is the best graphical package management tool for Kubuntu. It's interface is similar in design to software-center which makes it a good candidate for adding a software-center style view. Using KPackageKit to implement a software-center in Kubuntu also does not introduce a new application that needs to be maintained.

Please describe a tentative project architecture or an approach to it:

Since the goal of this project is to implement a Kubuntu software-center and make the UI of KPackageKit more newbie friendly there are two main parts:

1. Kubuntu software-center: This section's goal is simple: implement a Qt based version of software-center inside of KPackageKit. It will be added as a new view on the left side of the interface as "Software Center" and the existing Software Management will be renamed to Package Management. In this way, users can differenciate easily the difference between the two views. SoftwareCenter has a list of goals listed on their specification page (see SoftwareCenter) which the Kubuntu version will try to stay as close the specification as possible. Since software-center is written in Python and GTK, a port of this to C++ and Qt should pose no serious difficulties other than differences in the ways the toolkits work. Both are capable of rendering WebKit meaning that the KPackageKit version can potentially work exactly the same as software-center.

A mockup of software-center inside KPackageKit is provided here: http://excid3.com/images/KPackageKit.png

2. KPackageKit improvements: KPackageKit's existing interface has a few issues. One of the major problems I have noticed is the initial view of the "Software Management" section, no packages are listed. At first glance, it appears that no packages are available. There needs to be some sort of instruction to the user that they must first search for a package. Also, the progress bar at the bottom of the window is largely unnoticeable. Making this more apparent to the user that an action is in progress needs to be more prevalent in the user interface. Other minor annoyances and fixes from the TODO list will be implemented given enough time before GSoC ends.

Give us details about the milestones for this project

*April 27 – May 23: Familiarize self with software-center and kpackagekit source and documentation, begin planning implementation architecture *May 24 – July 15: Implementation of software-center interface into KPackageKit *July 16 – August 9: Continued development on Kubuntu Software Center if needed and begin improvements on KPackageKit’s interface *August 10 – August 16: Clean up code, write documentation, test cases

Why will your proposal benefit Ubuntu?

With the growth of the smart phone market, many people are familiar with App Stores. Kubuntu users are certainly no different. This will bring Kubuntu up to speed with Ubuntu in this area and provide a useful and complete graphical interface for package management for both new and advanced users. These improvements will allow new users to quickly and easily familiarize themselves with the package management system and have a better experience using Kubuntu.

Open Source

Please describe any previous Open Source development experience

I have been doing open source most of my life. In high school, I wrote a lot of TI-83+ and portable Windows software, all of which was open sourced. After high school, I began the Keryx Project (http://keryxproject.org) which is a tool for updating offline APT based systems from any platform using removable media. It has over 14,000 downloads in total and several contributors. Other open source and development experience includes, continuous contributions on the Ubuntu Forums as well as several smaller projects on github (http://github.com/excid3) such as a pastebin, url shortener, several irc bots, and various other projects.

Why are you interested in Open Source?

Community and freedom. These have been my favorite aspects of Open Source since I joined the Linux community 4 years ago. Since then, I have contributed to open source community to give back my time and skills in appreciation for what those community members have helped me with.

Availability

How long will the project take? When can you begin?

I predict the project will take the allotted time for GSoC to properly develop, document, and package everything. I will be able to start immediately.

How much time do you expect to dedicate to this project? (weekly)

I plan on spending at least 40 hours a week as this will be my primary concern this summer. It will be an enjoyable project so I may end up spending more time than I realize working with the wonderful community. Smile :)

Where will you based during the summer?

Jacksonville, IL

Do you have any commitments for the summer? (holidays/work/summer courses)

I will be attending the Google I/O conference May 18-21. I will still have internet access during the trip so I will still be readily available during the entire time although I will likely not be able to work.

Please designate a back up student (in case you need to withdraw your application)

Other

Have you ever participated in a previous GSoC? (describe your project)

Yes, last year I participated in the WinLibre project. WinLibre is a package management system for Windows in which the best features of APT and other systems are combined to best suite a Windows package management system. I worked on developing a graphical package creation tool. I essentially lead the project as the previous mentors were busy with work and there were two other students working on the project. Everyone was from outside of the US so the language barrier became a problem, but I took it upon myself to make sure everyone was on the same page. As a result of this, I was able to effectively coordinate the project between the students and mentors. All 3 of us students passed and we completed a considerable amount of work towards WinLibre.

Have you applied for any other 2010 Summer of Code projects? If yes, which ones?

No

Why did you apply for the Google Summer of Code ?

GSoC is a wonderful project to gather interest in open source and build community. It has really brought a lot of my friends towards open source knowing someone who has participated in it before. My roommate is attempting to join GSoC from hearing about my wonderful experience last year. I hope to share my love for open source with more people and contribute anywhere I can.

Why did you choose Ubuntu as a mentoring organization?

As my primary OS, I have a lot of love for Ubuntu and its community especially. The community is one of the greatest things about Ubuntu and this is another way for me to contribute back as I deeply appreciate all the help I have received from the community when I needed it.

Why do you want to participate and why should Ubuntu choose you?

This is a way to help others in my own way. From my experiences with Keryx, the gratefulness of some users and their feedback has deeply changed my life. Hearing the lives I have helped has brought tears to my eyes that I have been able to make a difference and help others to be able to use Linux when they previously couldn't. Improving and spreading a wonderful and free operating system is something I try to do daily as it has made my life so much more enjoyable. As an active developer in open source already, I am very enthusiastic about helping contribute and improve one of my favorite open source projects.

GSoC/2010/ChrisOliver (last edited 2010-04-08 00:55:02 by student213-175)