Accepted for Gentoo GSoC 2011

Planet KDE readers: this is not a KDE GSoC project, feel free to skip it

I’ve been accepted for this year’s GSoC yey!! Many thanks to my mentor, Matthew Summers, for all the help. I’ll do a complete rewrite of the website using Django. The project actually consists basically of three parts: 1) create a django web frontend for our LDAP server 2) Create a django CMS replacement for the current website that will be able to read the XML files 3) Plug in the Beacon Editor, a WYSIWYG GuideXML editor, to the web app. Below is a part of my full proposal, which can be found at google-melange and has more technical information.

Currently Gentoo employs a number of websites with separate user accounts. LDAP servers are used for the developers only. Developers update their LDAP data through a perl script. Complaints about difficult handling of forgotten passwords occur frequently. A web interface around LDAP will make LDAP more user friendly, plus it can be easily extended to support non-developers, just by adding a new schema and OU (organizational unit) for them. The choice of Django was made for several reasons. It is a web framework based on Python, that is a programming language very easy to learn and maintain. A Django project is equally easy to maintain and extend. In Django parlance, the term “project” refers to a collection of pluggable, modular applications, that together form a more complex web application, the project. This modularity will let the Gentoo Community easily write new Django applications on top of the main instance, in order to enhance its features. Apart from the above, the Django and Python upstream communities are doing a great job, notably by releasing often, especially for security reasons.

Today, documentation is stored in XML files in a CVS repository. An XML to HTML converter (wrapped up with Ruby), called Gorg, is currently used to display the actual result. People who want to contribute to documentation or translations have to locally install a Gorg instance and check out the CVS repository, which can be rather cumbersome. Having a WYSIWYG editor embedded in the website would be preferred, as it will make it really easy to contribute to documentation, or even send improvements through bugzilla to the appropriate documentation or translation team. By all appearances Gorg has been abandoned as a project. This has resulted in difficulty in maintaining the Gentoo website, and also makes the work of updating the website’s design or functionality all the more troublesome. Therefore, a complete redesign is easier than resurrecting the old system. The overall end result of the new system will be a complete rewrite of the old Gentoo website, including everything under

  • A new user registration system, that will import the data in the LDAP server.
  • A System Admin, with support of different group permissions, based on the current LDAP ACL, e.g. recruiters, sysadmins, documentation moderators, Gentoo developers, users. For more strict LDAP related operations, the Django Admin will be used, as it will be better especially for following the LDAP ACL. The Django Admin will be used mainly by privileged users, like Infra and Recruiters. Anyone else will be able to view and edit his data through his account profile page and a custom made System Admin. There will be no required data for users apart from a primary email address and a nickname/password.
  • A syndicator-like frontpage, that will display recent GLSAs, planet posts, PR team’s news.
  • A continuous integration testing model. There will be automated regression testing, by using Portage to build and test the package on a regular basis.
  • Support for viewing XML documents.
  • Beacon, a WYSIWYG editor, for easily editing those XML documents.
  • Git backend support for storing the XML files, using a dummy Git account.
  • An easy to translate interface. Translators will be able to select a document and translate it using Beacon.
  • Statistics for translators.
  • A “send for review” button, so that end users will be able to file a bug to Gentoo Documentation team attaching the XML diff. It needs a custom pybugz script to file the bug. The same system will be used for translations.
  • A new improved look, using JavaScript/jQuery. On this area, there will be strict adherence to web standards and accessibility best practices, since the Gentoo website and Documentation pages are being viewed by too many people every day.
  • An improved devmap, where developers will be able to click their position on the map.

The name I chose is okupy (you know, k instead of c, and py because it is a python app :P) Well, it is not related to KDE, but I am :) Not to mention the new fashion in KDE apps not having K-names. I’m bringing a new fashion to the world, non-KDE apps with K-names.

Robin Johnson, the Gentoo Infra lead, will co-mentor me on the LDAP specific parts. Matt will be my guide for the django parts. The idea of this project was mine, inspired by both my Django/LDAP thesis project and the work. I came in touch with the KDE sysadmins as well, and especially Ben Cooksley, who’s been great help so far and gave me lots of ideas already based on his experience maintaining the identity website. I’d be really happy to provide a Django LDAP that could suit both my favorite projects. I created a gsoc tag, where I’ll be posting weekly updates in Planet Gentoo, and the gentoo-soc mailing list. That’s it, time to get back to work.

4 Responses to Accepted for Gentoo GSoC 2011

  1. James Broadhead says:

    That’s fantastic news! I’ve wanted to submit patches to Documentation for a while, but the local setup was always too much of a hurdle. The website is really starting to look its age; it’s long past the time that someone should have done some work on it.

    Best of luck with the project, and know that there are people out tere cheering you on!

  2. Marcus Furlong says:

    Have a look at django-placard, it might fit your needs:

  3. tampakrap says:

    thanks for the support!

  4. tampakrap says:


    unfortunatelly it doesn’t, I looked at the code. But many thanks for pointing this out to me, I may need it in the future, who knows


Leave a Reply