PTS rewrite in Django
---IN PROGRESS---
Clément Schreiner
Contact/Email: mailto:clement@mux.me - irc://irc.oftc.net/clemux
Background: I am a 21-year-old student in computer science at University of Strasbourg (France).
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.
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 http://mentors.debian.net because of various problems with the existing codebase I had to work around, but I am currently helping rewrite the whole application with Django.
Project title: PTS rewrite in Django
Project details:
I will be using celery for asynchronously retrieving data from external programs or other websites.
One of the most challening 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).
- Email Interface
- import information from emails into the database (receive_news.py)
- forward emails depending on regexp (dispatch.pl)
- interface with users (control.pl)
- handle bounces (bounces_handler.py)
It could be useful to find or write a small library for defining forwarding rules like we do for url routing with django (project to look into: http://lamsonproject.org/ )
- API
- provide an equivalent to the former SOAP API for legacy
- provide new APIs (JSON, REST, ...), if possible and needed
- Plugin Architecture
- for defining information sources: emails, RSS feeds, JSON APIs, apt's repository, etc.
- they provide django templates and orm models
- they can provide celery tasks when useful
- Design
- I will be using bootstrap for the design of the application. It could be interesting to develop base templates and CSS that could readily be used and extended by other Debian django webapps.
- API
Synopsis: The Package Tracking System is currently a collection of scripts written in perl, python and shell, with static webpages generated from XML and XLST templates. Although it does its job correctly, it is becoming difficult to maintain and improve. At the same time, an increasing number of Debian projects are switching to the Django web framework, which could allow future sharing of code among them. It is thus a great time to make the same move for the PTS.
Benefits to Debian
Deliverables:
Project schedule:
Exams and other commitments: thanks to the gsoc being one month later this year, my exams will be over and I'll be free of any other commitment the entire summer.
Other summer plans: None
Why Debian?: I have been a user of
- I am not applying to other summer of code projects.