Summer Coding 2010 proposal - Copr TG app

From FedoraProject

Revision as of 17:14, 19 May 2010 by Mapleoin (Talk | contribs)

Jump to: navigation, search

Contents

About me

  1. What is your name?
    • Ionuț Arțăriși
  2. What is your email address?
    • mapleoin@fedoraproject.org
  3. What is your wiki username?
  4. What is your IRC nickname?
    • maploin
  5. What is your primary language? (We have mentors who may speak your preferred languages and can match you with one of them if you request.)
    • Romanian. English is fine, thank you.
  6. Where are you located, and what hours do you tend to work? (We also try to match mentors by general time zone if possible.)
    • Romania. My working hours vary a lot. Anytime between 6AM and 12PM GMT.
  7. Have you participated in an open-source project before? If so, please send us URLs to your profile pages for those projects, or some other demonstration of the work that you have done in open-source. If not, why do you want to work on an open-source project this summer?
  8. Bonus level: What's your schedule and why?
    • I'm a terminal year college student in Romania where school officially ends in July. Since this is also the year when I have to write my thesis I'd like to deviate from the standard Summer Coding schedule. My first term will be the standard second term and I'll add another term starting from the standard midterm evaluation date. I'm aligning with a few standard dates to try and keep things as simple as possible for others. I can and will probably start working a bit earlier. So it would look like this (11 weeks in total):
      1. First term - 12 July - 16 August (my midterm evaluation date)
      2. Second term - 17 August - 27 September (student final report etc.)

Copr TG front-end

Description

The Copr TG front-end is part of the Cool Other Package Repo (COPR) Fedora Project to build and manage third-party user repositories. It is a TurboGears 2 web application that handles communication with the end-user on one side and with the buildsystem on the other side. It gets commands from the users (packages to build, repos to create etc.) and gives them links to builds/repos it has. Together with the website and the command-line client, it is the main way for users to interact with Copr and their repos. It passes the commands it gets from the users to the buildsystem.

The app will have to interact with the buildsystem's API and also provide a JSON API to be used by the different clients (website and command line).

Package stuff

User wants a package added to one of his repos so he sends a SRPM to the app. The following information must also be present in the query:

  • arches to be built on
  • repo to be built into
  • repo/repos that will be included in the build environment.

User can also:

  • query the app for a list of packages/versions in one of the repos.
  • delete a package from one of her repos.
  • grant rights to one of her repos to other users.

Repository stuff

User can:

  • create a new repository, specifying a name and one of the supported architectures.
  • delete one of her repos.
  • list owned repos and repo she has writing rights to.
  • request a .repo file from any repo in Copr.


The technologies that will be used: TurboGears2, postgreSQL, Copr

Timeline

Convincing

I've been a Fedora Project contributor since May 2008 when I began working on the Fedora PackageDB with Toshio Kuratomi. I worked on small features, visible to the general Fedora user. One of the features I'm most proud of that I worked on in that period was an advanced package search functionality.

Last summer I participated in GSOC working on a bunch of features for the pkgdb aimed at making it more user-centric, rather than developer-centric. These included importing metadata from yum, a new package page with commenting and tags and exporting those tags for future use in yum via sqlite. This work was later adapted and included into the 0.5.x series of the PackageDB after some design changes to PackageDB itself.

At the end of the summer I began contributing to the Fedora Project as a Package Maintainer and have contributed this way since then. I've also begun a personal project of a Romanian FOSS advertising network. More info on the project on its webpage (Romanian) or on github (code).

Me and the community

Impact

If your project is successfully completed, what will its impact be on the Fedora community? Give 3 answers, each 1-3 paragraphs in length. The first one should be yours. The other two should be answers from members of the Fedora community, at least one of whom should be a Fedora Summer Coding mentor. Provide email contact information for non-Summer Coding mentors.

Ionuț's answer

This project has no impact by itself. It is part of the


answer 2

answer 3

Other questions

  1. What will you do if you get stuck on your project and your mentor isn't around?
    • I generally find my way out of most technical problems by googling, going deeper into the source code or just asking on the relevant IRC channel (#turbogears, #python etc.)
    • For design problems, though these are less likely to happen, I know my way around the community mailing lists and IRC channels and generally know who's who. If my mentor will be missing for several days I'll probably start asking for advice on #fedora-admin and #fedora-devel.
  2. In addition to the required blogging minimum of twice per week, how do you propose to keep the community informed of your progress and any problems or questions you might have over the course of the project?
    • I'm constantly lurking on IRC in #fedora-devel and #fedora-admin and am also subscribed to the relevant mailing lists.

Miscellaneous

  1. We want to make sure that you are prepared before the project starts
    • Can you set up an appropriate development environment?
      • sure
    • Have you met your proposed mentor and members of the associated community?
      • Yes, I've worked with my mentor before and have been part of the Fedora community for 2 years.
  2. What is your t-shirt size?
    • M
  3. Is there anything else we should have asked you or anything else that we should know that might make us like you or your project more?
    • I like peppermint tea.