PTS rewrite in Django


I am familiar with free software, as an user since 2004, and a developer since 2010: I have made occasional contributions to the Weboob framework, which allows easy interactions between console or graphical applications and various websites.

I have participated to the 2012 Summer of Code, working on debexpo. You can read my final report to get an idea about what I did. For a good part of the summer, I have struggled with designing a good plugin system for debexpo's various sources of data. I think this will help me a lot for this project, since it needs to be modular.

Thus, I have experience with team work, VCS, bugtrackers and mailing lists. My last summer of code taught me a lot about the Debian process and how to interacting with packages in python. Because I revamped the plugin architecture, I have rewritten all QA tests plugins and learned how to retrieve data from the BTS, debtags, lintian, etc.

My work has not yet been merged with the live because of various problems with the existing codebase I had to work around, but I am currently (trying to find the time for) helping rewrite the whole application with Django. I hope this project will give me experience that will help me working on debexpo's rewrite more efficiently.

I will be using celery for asynchronously retrieving data from external programs or other websites, and for scheduling tasks of retrieval that cannot be completely dynamic.

One of the most challenging part of this project is to write a robust plugin architecture for easily defining information sources (how to retrieve the data, and how to display it on the web pages). It must be flexible enough to allow Debian derivatives to write their own plugins and seamlessly integrate their own tools into their PTS instance. I have a few ideas of existing libraries that I could use for that, or at least take inspiration from: django-plugins, django-app-plugins, another django-plugins. The latter might be fit for direct use in this project.

With this project, the PTS will use a consistent set of technologies that are also popular in the Debian community. That should help attracting new contributors.

Ths PTS will also be more modular, and would be useful to Debian derivatives, which could also bring more interest from the community, and contributors.