Differences between revisions 43 and 44
Revision 43 as of 2012-02-22 07:29:12
Size: 11408
Editor: ThomasKoch
Comment:
Revision 44 as of 2012-02-22 07:30:39
Size: 11411
Editor: ThomasKoch
Comment:
Deletions are marked like this. Additions are marked like this.
Line 155: Line 155:
=Debianizr= = Debianizr =
Line 170: Line 170:
 * '''Confirmed Mentor''': n.n. (maybe [[ThomasKoch]]  * '''Confirmed Mentor''': n.n. (maybe [[ThomasKoch]])

The main page is at SummerOfCode2012. This page contains the available projects, all the the projects should follow the following template: (Please do not add ideas of projects, suggestions without mentors, etc, only final projects for students to take.)


Title of the project

  • Description of the project: At least 8-10 lines describing what the project is about; it is really important to have a good description if you want to attract students who are interested by the idea. This does not need to be a very technical description, but something that stirs interest and is complete enough to allow a student to judge whether s/he wants to work on the particular project or not. It does not need to be a complete road map either and does not need to explain all the tiny details and whatnot -- the mentor can tell that to interested students, or they can work out the exact details together.

  • Confirmed Mentor: Name of the mentor

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors: It is not compulsory to have co-mentors, but it is a good idea. Secondary mentors do not need to be as knowledgeable as the first one in the project, but they should be available to help the student if s/he is stuck and the main mentor is busy / not available.

  • Deliverables of the project:

  • Desirable skills: Skills that the student has or is willing to develop. Remember, the students do not have as much experience as the mentor.

  • What the student will learn: At least 2-3 lines telling the students the skills they develop and how they will improve Debian. Do not focus on the technologies rather use something that could motivate the prospective student to take your project.


clang support for build services

The idea of this project is to extend the Debian infrastructure to be able to build packages with clang instead of gcc/g++. clang has some advantages over gcc/g++ like better error messages and better warnings.

Even if the short/mid term goal is not to replace gcc/g++, building packages with two compilers improves the detection of C/C++ or Objective C errors, which in turn helps improve the quality of the distribution, even if the packages continue to be compiled with gcc/g++.

  • Confirmed Mentor: Sylvestre Ledru

  • Confirmed co-mentor: Paul Tagliamonte

  • How to contact the mentor: sylvestre@debian.org

  • Deliverables of the project:

    • Build services modified to be able to use clang instead of gcc/g++
    • Integration into the Debian infrastructure (buildd.d.o, and similar services)
    • An easy way to switch of compiler between gcc/g++ and clang
    • A way to build a package with a different compiler (gcc, clang, intel compiler, etc)
    • Time permitting, a fully clang-built Debian installation
  • Desirable skills:

    • A reasonable knowledge of Debian packaging, or willingness to learn it fast.
    • Familiarity with chroots
    • An interest in build tools and infrastructure
  • What the student will learn:

    • The student will learn how to use clang, and how to make use of the features it provides over gcc/g++
    • The student will learn more about the Debian build-related infrastructure and software, such as sbuild and the buildds.
    • As a consequence of the above, the student will also learn about the subtle bugs that crop up when using a different compiler, and ways to debug or otherwise handle them.
  • Sample of a potential outcome


Provide an alternative to libstdc++ with libc++

Within the context of the LLVM project, a new implementation of the C++ standard library has been developed: http://libcxx.llvm.org/

The goal of this project is triple:

  1. Port the libc++ to Debian (GNU/Linux as a first target, maybe Kfreebsd/hurd later)
  2. Provide libc++ as a Debian package.
  3. Provide a way to switch between libstdc++ to libc++ and vice-versa

Please note that the project might be more a proof of concept and the final results might not be included into the archive.

  • Confirmed Mentor: Sylvestre Ledru

  • How to contact the mentor: sylvestre@debian.org

  • Deliverables of the project:

    • libc++ packages
    • A quick and easy switch from libstdc++ to libc++ (update-alternatives ?)
  • Desirable skills:

    • A reasonable knowledge of Debian packaging, or willingness to learn it fast.
    • Familiarity with chroots
    • Libraries management
    • Courage!
  • What the student will learn:

    • The student will learn how to use LLVM build
    • The student will learn more about the Debian packaging and its internal.


Improving Debian Team Activity Metrics

The ''Debian Team Activity Metrics'' was started as a Google Summer of Code 2011 project by Andreas Tille (mentor), Scott Howard (co-mentor) and Sukhbir Singh (student) to measure the performance of teams in the Debian community by inspecting postings on relevant mailing lists, commit statistics from project repositories and package upload records from the Ultimate Debian Database.

Though we have developed tools that fetch the required data for the metrics described above, there is no interface to access that information. Your job will be to:

  • Develop a web interface that presents this information in a clear and accessible way.
  • Write an API to access this information.

Also, if time permits, there are other improvements to be made that will make the project complete, such as implementing new metrics, verifying the veracity of existing tools and optimizing the code.

A sample of our work (external links to imgur.com):

  1. Mailing list activity
  2. 'Team Metrics' Git repository activity

So the aim of this project is to make the above information accessible through a web interface. Note: The data is ready, you just have to create an interface and present it nicely.

  • Confirmed Mentor: Sukhbir Singh [sukhbir.in@gmail.com]

  • Confirmed co-mentor: Andreas Tille [tille@debian.org]

  • How to contact the mentor: teammetrics-discuss public mailing list. IRC: SukhE [available between 21:00-01:00 GMT +5:30]. The mailing list is preferred, however if you want to discuss your idea in private, use email or IRC.

  • Deliverables of the project:

    • Development of an interface to the Team Metrics project.

    • Writing tools to verify that the information gathered using the metrics is correct.
  • Desirable skills:

    • Experience with Django or Pylons (and Python of course!) and web development in general. We prefer Django/ Pylons because it will be easier for us to maintain the code, but if you feel otherwise, convince us and we might agree.
    • Familiarity with Git.
  • What the student will learn:

    • The student will learn to implement a complete web front-end to a project with real-world data, exploiting development with Django/ Pylons and UI/UX techniques.
    • The student will also learn practical development methodologies by contributing to an existing code base and working in a team by communicating with the mentors and the Debian community.
  • Sample of a potential outcome:

    • If this project is implemented, by the end of the summer, the Team Metrics project should have a proper web interface to easily access the information and then the Debian community can use this to see how a team is performing.


Create Lintian reports frontend

The static package analysis tool, Lintian, is currently being run on all packages in Debian. It has a tool called "harness" to publish the results of its quality checks on lintian.debian.org.

Currently, "harness" is an "internal" tool to generate these reports (static HTML pages), but we believe it would be useful to Debian as well as its many derivatives to have a proper tool for generating these reports.

The project is made up of two parts: the first part is to create a black box test suite to test the current harness tool, the second is to rewrite "harness" into a proper tool that is usable without a pilot license.

  • Confirmed Mentor: Niels Thykier

  • How to contact the mentor: mail: niels@thykier.net, IRC nick: nthykier

  • Deliverables of the project:

    • New automated harness test-suite
    • New harness frontend to generate static html reports.
    • User manual for the new frontend
  • Desirable skills:

    • Perl
    • Black box testing, or willingness to learn it

    • Ability to write documentation (docbook and POD knowledge is great, but can be learned along the way)
    • Familiarity with any templating language (Text::Template, or Template::Toolkit, or something else)
  • What the student will learn:

    • You will learn methods to reduce the workload when dealing with massive data sets (via incremental runs), while working on a tool that is run on the whole Debian archive and is a key piece of our QA toolset. You will be able to learn how to do black box testing on "non-trivial" black boxes. Along the way, there's a possibility to learn a lot about Perl, the POD and docbook documentation formats, gnuplot, make and shell.


Debianizr

Debianizr is a web application for Debian maintainers and upstream developers who wants to check, whether their Software could be easily packaged for Debian. Debianizr starts working by cloning a given Git repository and prepares as much as possible for a final Debian package:

  • Check whether the Git repository contains GPG signed version tags
  • Check for a trust path to the key used for the signed tags
  • Check for binary files
  • Run licensecheck (or ohcount) over the code and check whether all files have an appropriate licenseheader

  • Try to prepare a debian/copyright file
  • Try to figure out dependencies and their availability in Debian (for Java, C)
  • Propose a package name according to naming policies
  • Set up a Git packaging branch in the cloned Git repo

Debianizr is expected to be extended over time with many more tasks.

  • Confirmed Mentor: n.n. (maybe ThomasKoch)

  • How to contact the mentor: (mail, IRC, etc)

  • Confirmed co-mentors:

  • Deliverables of the project: A working web application in a language of choice

  • Desirable skills: Web development in a serious language (not PHP), e.g. Scala/Java + JAX-RS, Python + Django, Perl + ?

  • What the student will learn: Debian packaging, Git, Restful web architectures


Add your project here :)