Debsources as a Platform

Description of the project: Debsources provides Web access to all of Debian source code. Debsources allows to browse, search, and render Debian source code, as well as compute code metrics and statistics that encompass all available source packages. This GSoC project aims at extending Debsources in two directions.

On the one hand, Debsources will be extended to scale better, by switching the Debsources updated to an asynchronous architecture. This change will allow to distribute indexing tasks over multiple workers, potentially running on multiple independent machines. It will also allow to easily re-index previously indexed data in batch (e.g., upon changes to the available indexing plugins, or when injecting new releases from scratch), a use case that is challenging to support properly with the current synchronous architecture.

On the other hand, requests to extend Debsources with new features and to support new use cases, not always related to source code publishing, are on the raise. We want to address them by turning Debsources into a base software platform capable of running multiple Web applications on top of the same underlying database. The Debsources code base will be refactored to make this possible. As concrete use cases to test this change we aim at developing 2 new Web applications on top of Debsources: 1) a "copyright.debian.net" web app, allowing to browse, search, render, and export debian/copyright files; 2) a "patch tracker" web app to publish details about the source code differences that Debian packages carry with respect to upstream releases of the same software.