From Mageia wiki
Jump to: navigation, search

This page is about the Google Summer Of Code 2012

Contents

What is Google Summer Of Code

Google Summer of code is a program from Google to sponsor student into writing code for open source projects. More info on https://code.google.com/soc/. See also the FAQ on http://www.google-melange.com/document/show/gsoc_program/google/gsoc2012/faqs

Mageia Application proposal

Describe your organization

Mageia.Org a not-for-profit organisation coordinating the development of the Mageia GNU/Linux distribution. It started as a fork from Mandriva Linux in September 2010, triggered by several ex-employees and contributors. With about 99 active contributors worldwide, a first stable version was released in June 2011 (http://www.mageia.org/1/ ) and a second one is due in May 2012.

Why is your organization applying to participate in Google Summer of Code 2012? What do you hope to gain by participating?

Apart from the project that are going to be developed by the students and that we plan to use, we also hope to gain new community members.

Did your organization participate in past Google Summer of Codes? If so, please summarize your involvement and the successes and challenges of your participation.

We didn't participate yet.

If your organization has not previously participated in Google Summer of Code, have you applied in the past? If so, for what year(s)?

We didn't apply in the past.

What Open Source Initiative approved license(s) does your project use?

Depending on the project, we either use GPL, or BSD.

As for packaged and used software, we follow this policy: https://wiki.mageia.org/en/Licensing_policy .

What is the URL for your Ideas page?

https://wiki.mageia.org/en/SummerOfCode2012#Projects_Proposals

What is the main development mailing list for your organization?

The main list mageia-dev, on https://www.mageia.org/mailman/listinfo/mageia-dev , but depending on the team (the very specific project), some use others lists.

What is the main IRC channel for your organization?

The #mageia-dev, on irc.freenode.net is the channel we use for development related matters.

Does your organization have an application template you would like to see students use? If so, please provide it now.

Application template :

  • Name
  • Email / IRC details to contact you
  • Background: Who are you ? What are your technical skills, experiences ? What makes you a good candidate for this project ?
  • Project title and description
  • Project schedule: When can you begin work ? Do you have an idea about the schedule ?
  • Other commitments during SoC period: If you plan to be busy for some time with something else, let us know in advance.
  • Any other info you want to mention

Who will be your backup organization administrator?

Pascal Terjan

What criteria did you use to select your mentors for this year's program? Please be as specific as possible.

We asked in IRC meetings and mailing lists for volunteers to provide ideas on the wiki page : http://permalink.gmane.org/gmane.linux.mageia.user/6120

3 people proposed project ideas that seemed interesting and realistic. All of them are well known Mageia contributors participating since the beginning of the project, so we didn't have to make a selection.

What is your plan for dealing with disappearing students?

Apart from contacting PLF ( http://plf.zarb.org/logo3.jpg ) and ask to find them, we don't really have a plan to deal with disappearing students. We will try to select only motivated students to lower the chances that they disappear.

What is your plan for dealing with disappearing mentors?

Mentors have been participating in Mageia since the beginning of the project without disappearing, so we hope they won't disappear now. We also have asked each mentor to have a backup.

What steps will you take to encourage students to interact with your project's community before, during and after the program?

We will ask them to subscribe to the relevant mailing lists for their project, and join IRC channels. They will send a description of their project on the mailing list for other members of the community to know them and their projects. The development will be done on the mageia public svn repository with all commits sent to the commits mailing list, so that community can see the progress, review the code and interact with the students if needed.

Are you a new organization who has a Googler or other organization to vouch for you? If so, please list their name(s) here.

Pascal Terjan, working as SRE for Google, is part of the Mageia sysadmin and packaging teams. He will be a mentor and backup admin for the GSOC2012.

Are you an established or larger organization who would like to vouch for a new organization applying this year? If so, please list their name(s) here.

We are not.


Other projects applying


Projects Proposals

Each proposed project must provides the following :

  • 1 mentor name, from the community, with contact info
  • 1 backup, in case the first one is MIA
  • 1 project description, of 4/5 lines, explaining the benefit for mageia.org, what could be done in 2 months, and what could be done by the student ( ie, would it be patches, code, etc )
  • a short list of needed skills, and what would be learned by the student after the GSoC


Ease the integration of new sysadmins (draft)

  • Mentor: Michael Scherer
  • Backup: Nicolas Vigier
  • Skills to have: Scripting, ruby, puppet would be a plus
  • Skill that will be learned: libvirt usage, puppet, ruby

Someone wishing to join the sysadmin team currently have to first demonstrate being skilled enough at puppet, and this seems to be a major blocking step as few people have deployed it from scratch.

The proposal would be to write a tool that let anybody setup a test Mageia infrastructure using virtual machines ( if possible on one single recent enough laptop ), as close as possible to what our infra is ( in short, a shell script to automate vm creation and puppet run ).

In order to also ease the contribution, automating the creation of a git-svn setup would be a plus. To test the whole system, we will require the student to try to enhance a currently used module so we can see with existing sysadm how we can improve the process.

Puppet test suite creation (draft)

  • Mentor: Michael Scherer
  • Backup: none yet
  • Skills: ruby, packaging would be a plus, puppet would be a plus
  • Skills to learn: puppet, ruby, continuous integration, sysadmin, rpm packaging

Mageia has a rather large puppet code base, with many advanced configuration and features. In order to make sure nothing is broken, a test suite that prevent regression would be a rather useful addition.

This proposal mainly involve creating a test suite using puppet-lint, rake, rspec and cumcumber, packaging the missing tool for cauldron, and deploy a continuous integration tool, be it jenkins, buildbot or something else. The deployment should be done with proper rpms ( ie, from the mageia distribution ), with puppet, and automated as much as possible ( even to the point of database creation ).

Shared password database (draft)

  • Mentor: Nicolas Vigier
  • Backup: none yet
  • Skills: perl, python or ruby knowledge, gnupg knowledge

It is often needed to share some passwords for various external services with all or some members of a team, so we need a tool to manage this password database. The passwords should be encrypted on client side, so that someone taking control of the server or backups of the servers cannot access the passwords. Encryption should be done using GnuPG to avoid creating a specific key for this. Mageia infrastructure is based on ldap, so the tool should support linking with an ldap servers for users accounts, groups and gpg keys. Some more infos can be found in this email : http://www.mageia.org/pipermail/mageia-sysadm/2011-February/002780.html

Modernize package builder (draft)

  • Mentor: Pascal Terjan
  • Backup: Nicolas Vigier
  • Skills: perl, system

Packages are built using Iurt which was written long ago by Mandriva. It's main role is to create a clean chroot, install dependencies and rebuild a package. It supports two modes, chroot and unionfs.

The goal of this project would be to clean some of the code to support more modes like cgroups or kvm through a common API (and probably drop unionfs support).

youri-check (draft)

  • Mentor: Pascal Terjan
  • Backup: none yet
  • Skills: perl

youri-check is Youri project's package checking tool.

It offers an extensible and coherent Perl framework for running arbitrary QA checks on a package repository. The framework is there but now some work should be done to improve usuability for maintainers. It is used by PLF and Mageia (a demo for Mandriva is also available).

The reports are stored in a database and static HTML pages are generated. A more dynamic web interface with various views (maintainer page, package page, queries, ...) would be nice. Some integration with bugzilla and maintainers database would also be nice.

Some work could also be done on temporal analysis, as currently we only store the reports for the current day. It could be interesting to think of a way to store efficiently data over time and add nice things like "new problems from this week", "from today", ...


Puppet modules packaging (draft)

  • Mentor: Nicolas Vigier
  • Backup: none yet
  • Skills: puppet, rpm

The mageia sysadmin team produce some puppet modules for the tools they are using. Some of those modules could be used by other people with small modifications. Other organisations also produce puppet modules and share them to allow others to use them. The goal of this project will be to :

  • write a guide to define some good practices to produce reusable and customisable puppet modules
  • improve some of the existing mageia puppet modules to make them more reusable
  • define some rpm packaging policies for puppet modules
  • implement scripts to detect puppet modules provides and dependencies for rpm
  • start packaging a few puppet modules to be included in Mageia 3, and help other mageia packagers to do the same