GSOC 2012/Student Application babakb/GitlabSetup

From FedoraProject

Jump to: navigation, search

Contents

Setup Gitlab as a front end for Fedora Hosted git repositories

  • Contact Information
  • Email Address: basseri.babak@gmail.com
  • Telephone:+1 647 878 5645
  • Freenode IRC Nick: babakb


NOTE: We require all students to blog about the progress of their project. You are strongly encouraged to register on the Freenode network and participate in our IRC channels. For more nformation and other instructions, see: http://groups.google.com/group/redhat-summer/web/gsoc-getting-started

Why do you want to work with the Fedora Project?

I am very compassionate about open-source software development. I use Fedora on a daily basis and I want to have the chance to become a part of the developer community of Fedora by applying my skills and experiences.

Do you have any past involvement with the Fedora project or another open source project as a contributor?

  • I have not had any involvement with the Fedora Project yet but I have contributed to two open source projects in the past.
  • (Summer 2011) Review Board: Created a cross platform installer for Review Board. The changes I made can be found at my Github account. https://github.com/bbasseri/reviewboard
  • (Jan 2012 - Present) Matplotlib: This is a Python library that allows graph plotting to be embedded in applications. I have been working on augmenting the existing text styling of the main configuration system. This allows users to separating styling from your actual plotting logic, rather than having to specify style with every text API call. Here is the link to the Github issue https://github.com/matplotlib/matplotlib/issues/374

Did you participate with the past GSoC programs, if so which years, which organizations?

Yes, in 2011 with Review Board.

Will you continue contributing/ supporting the Fedora project after the GSoC 2012 program, if yes, which team(s), you are interested with?

Yes I will continue contributing to the Fedora project. I am interested in the infrastructure team, internationalization, packaging, websites, and games of the OS developer group. Also interested in the website design team and the web developer group.

Why should we choose you over other applicants?

  • I am an extremely hardworking and dedicated individual. I ensure that the tasks assigned to me are completed promptly with perfection. My previous experiences working with linux based operating systems and small web projects have equipped me with some of the skills I need for the project.
  • I am interested in growing a community of people interested in supporting the installation long-term.
  • I have worked on many projects using Ruby on Rails and have expanded my knowledge of deployment of rails servers.
  • I am skilled in setting up tools such as Red Mine, because I had to setup a couple of instances for the projects that I have worked on with teams.

Proposal Description

Please describe your proposal in detail. Include:

An overview of your proposal

  • Packaging Gitlab for Fedora
  • Setting up Gitlab as a frontend for Fedorahosted.org

The need you believe it fulfills

  • Packaging Gitlab will give users the ability to easily setup the web application both locally and on a remote server with any installation of the latest release of Fedora.
  • Updating fedorahosted.org to use Gitlab will help improve user experience. I hope to attract new users and continue pleasing current ones with the many functionalities provided by Gitlab.

Any relevant experience you have

  • While working on small projects with teams, I have gained experience working and setting up different project management and code hosting applications, such as Redmine, trac, and Drproject.
  • I have experience setting up servers running git for which I have used on many different projects, both for school, and as small group projects.
  • My primary operating system is linux based so I am very familiar with the inner workings. I am also well-versed in using a terminal for all of my work.
  • I have created a multi platform installer for Review Board, which has given me excellent experience dealing with dependencies handling.
  • Many of my web development projects have used Ruby on Rails so I am very experienced in setting up projects similar to Gitlab, including gem dependencies and multiple versions of Rails. My past experience with Rails will help if I need to identify bugs in Gitlab. From my encounters with common bugs as well as the ability to skim through the source code quickly, I will easily be able to determine if the issue is in our setup or in Gitlab.
  • I have worked with Fedora and other linux based servers remotely, including using Amazon AWS servers, for different projects. Remote setup and debugging is second nature to me now.

How do you intend to implement your proposal

  • First, I will go through all of Gitlab’s dependencies and check for currently available packages. I will use Gitlab’s install guide as a reference: https://github.com/gitlabhq/gitlabhq/blob/stable/doc/installation.md
  • Then I will create a spec file following the guidelines for ruby packages. If any of the dependencies are not yet packaged, I will have to create packages for them myself. The major two, gitolite and ruby, are already packaged so I do not see too many roadblocks here.
  • After finalizing the packages and pushing them upstream, I will begin working on setting up Gitlab as web-frontend for Fedora projects.
  • I will go through the steps in the detailed install guide that I did not cover during packaging. These will be configuration and customization to suit what fedorahosted.org requires.

Final deliverable of the proposal at the end of the period

  • Fedora packages for Gitlab (With all its unpackaged dependencies)
  • Gitlab working on fedorahosted.org (or subdomain depending on mentors desire)

A rough timeline for your progress

  • 2 weeks to become comfortable with the procedure of creating and submitting packages to be reviewd before pushing them to Fedora upstream. This includes learning about spec file syntax and rpm deployment.
  • 4 weeks to create packages of Gitlab and all of its dependencies that are unpackaged. This includes going through review and pushing to Fedora upstream.
  • 1 week backporting Fedora rawhide packages to the Fedora 18 future release.
  • 1 week testing Fedora rawhide and Fedora 18 packages.
  • 3 weeks to set Gitlab up on the server as the new web-frontend, including administration and configuration.
  • 1 week testing functionality using test projects, creating documentation for the steps carried out during setup to enhance the installation. This will be useful for any further deployment in the future.
  • Future: Discuss potential migration of currently hosted projects to Gitlab.

Any other details you feel we should consider

I do not have any other commitments this summer, and am willing to start early. I am very excited to work with the Fedora community and will continue expanding and maintaining the project after the GSOC period. My goal is to be enthusiastic and passionate enough to make others interested in helping with this project to keep it maintained. Here are some of my past experiences:

  • (Sept. 2011 - Dec. 2011) Developed a room booking application for instructors at A. Y. Jackson High School, Toronto, ON as part of course work for a Software Engineering course offered by the U of T using PHP
  • (Summer 2011) Created native installers for different platforms for Review Board using Python and Django to help automate installation for Review Board as a GSOC project
  • (May 2011 - Dec 2011) Worked on an online learning management system in summer 2011. Developed a timetable scheduler in Ruby on Rails and redesigned the UI using HTML5, CSS and Javascript
  • (Dec 2009 - August 2010) Developed a study group application using PHP and Yii framework which provided users with the ability to connect to other students in the university to form study groups


Have you communicated with a potential mentor? If so, who?

I have had the chance to speak with Dan Allen to clear up some questions and obtain a good understanding of the direction in which the project is headed.