[Soc-coordination] Needed help for Gsoc2013 Project ideas

Ansgar Burchardt ansgar at debian.org
Sun Mar 3 23:32:19 UTC 2013

Hi Abhishek,

Abhishek Singh writes:
> I am Abhishek Kumar Singh. I want to apply for Gsoc this year and am
> looking for a good gsoc project. I have good Knowledge of Python, pytest,
> unit testing framework, code coverage. Is there any project related to
> writing/Improving automated tests, unit testing etc or porting python 2 to
> 3. Please guide me with your valuable suggestions.

I saw you asking on IRC about the dak project I suggested[1], but was
more or less absent a few days.

  [1] <http://lists.alioth.debian.org/pipermail/soc-coordination/2013-February/001379.html>

So let me explain a bit more:

dak manages Debian's repository, i.e. the structure you see on [2]
that's behind an entry such as

  deb http://ftp.de.debian.org/debian squeeze main

in APT's sources.list.  The software is written in Python(2) and uses
PostgreSQL.  We use sqlalchemy as an ORM, but also SQL directly.
There's also a bit of shell to glue different parts together.

  [2] <http://ftp.de.debian.org/debian/>

There are three things dak does: it takes new uploads, does some sanity
checks and installs them in the system; it does maintainance such as
removing outdated package or moving packages to testing as instructed by
birtney (a different program managed by the release team); and it
generates the index files APT uses to access the repository, e.g. [3].

  [3] <http://ftp.de.debian.org/debian/dists/unstable/main/binary-amd64/Packages.gz>
So dak plays a fairly important role for Debian and people are unhappy
when it breaks.  We would like to improve on the latter part a bit by
introducing a testsuite.

There are already a few unit tests, but many parts of dak need access to
the repository and the database.  Just a random example: when dak
processes an upload to unstable it makes sure the upload has a higher
version number than already present in unstable.  We currently have no
way of testing such code automatically.

This is where the Summer of Code project comes in: we want you to write
a framework for such tests and also to implement some.

To makes these tests reproducible, they should probably be run in a
clean environment.  This means automatically setting up a dak instance,
including a postgresql database (maybe even setup a temporary PostgreSQL
installation automatically so one does not need special permissions to
run the testsuite).

Some tests would need some packages already installed into the temporary
dak instance.  Take the example from above: a version comparision with
the version already in the archive would be boring if the archive was
empty.  You need to figure out some way to do this.

I hope you get a rough idea what we want.  Feel free to ask if you want
to know more.  If you are interested, you might want to try and setup a
dak instance by hand and play around a bit with it.  There's a short
README in the setup directory in dak's Git repository[4].  You also need
some basic knowledge about creating Debian packages as these will be
needed for the tests (not much needed there as our test packages will be
almost empty).

  [4] git clone https://ftp-master.debian.org/git/dak.git


More information about the Soc-coordination mailing list