SummerOfCode/2012/ISPDB

From MozillaWiki
Jump to navigation Jump to search

Introduction

This page was created to show the progress of my GSoC 2012 project which aims to get ISPDB into production. It will be available a list of pending features and bugs, weekly status updates, and other stuff related to the project.

Feel free to contribute and give me your opinions. I'll be available on irc.mozilla.org #maildev xsergio

Activities before coding period begins

  • To make things easier for contributors, ispdb repo is now in GitHub: https://github.com/mozilla/ispdb
  • The project has been updated to run on Django 1.4
  • A list of bugs and pending features is being constructed

Mid-term evaluation

What has been done so far:

  • Updated the project to run on Django 1.4
  • Add BrowserID support
  • Add an edit domain support #526467
  • Add delete domain support
  • Add issues report support with a merge feature.
  • Improve comments support
  • Small fixes, cleanups

What I plan to do until the end of the program:

  • #543614: Automated Checks
  • #591353: Allow to pin down some important configs of big ISPs
  • #588136: Make ispdb cache-friendly
  • #588155: Allow all values from config file XML to be put in the ISPDB database
  • Internationalization and localization
  • Improve UI (using Bootstrap and/or JQueryUI)

Weekly status updates

In this section I'll be writting updates status of the project. What I've been working on, next steps, etc.

27/04 - 04/05

During this week I've been working on the following items:

  • Study the components used in the project, such as django, django-nose, django-openid-auth.
  • Collect bugs and pending features
  • Django 1.4 integration
  • Discuss next steps

Much of my time was spent on Django 1.4 integration. Since the project is running with an old Django version (1.0 or 1.1), there were a few changes on Django API, project layout and project files.

You can find the pull request with these changes in https://github.com/mozilla/ispdb/pull/2

For the next week, I'll work on BrowserID integration, and edit domains feature (bug #526467). Also, if we find any error in Django 1.4 integration code, I'll work on them.

04/05 - 11/05

Since the beginning of this week, Django 1.4 integration code was merged into Mozilla ISPDB repo, so developers can work on the last stable version of Django.

Also, ISPDB is now using BrowserID for authentication. There is a django-browserid module available, which is full integrated to django.contrib.auth system. The code will be soon in upstream repo as well.

For the next week, I'll be working on edit domains feature.

11/05 - 18/05

First news: BrowserID integration code has been merged into Mozilla's ISPDB repo. Now you can clone Mozilla's ISPDB repo and test it: https://github.com/mozilla/ispdb

During this week I've been working on bug #526467 which aims to give support for editing configs. This bug required a lot of changes, including the concept of domain models. Althought it is not finished, some code was already pushed to my github. You can check it out on my edit_domain branch: https://github.com/sergiocharpineljr/ispdb/tree/edit_domain

18/05 - 25/05

Now, most of the work of bug #526467 is done. You can check out the code on https://github.com/sergiocharpineljr/ispdb/tree/edit_domain . Before I submit my pull request, I'll work on a feature that allows users to send changes requests for any domain they don't have permission to edit, which I expect to finish until the end of the next week.

Besides that, for the next week I'll be fixing the existing tests and adding now ones to check the edit domain code. Also I'll be working on the votes feature. We plan to extend it to permit users to vote on existing configurations as well.

25-05 - 01/06

During this week I've been working to allow users and admins delete their configurations. Also I've made some changes in admin site and in the models (UnclaimedDomain was removed and we are using DomainRequest instead). These changes and some fixes are available on my edit_domain branch. You can checkout out them here.

Next week I'll be working on delete configurations feature to remove the confirmation popup and add a UNDO button instead, which will be available for X hours. After that period the configuration can only be recovered through admin interface. Besides that I'll work on a problem report feature, which will allow users to report problems and optionally send an updated configuration. After that I'll take some time to review the code and make the pull request.

01/06 - 08/06

This week I'll be working on the same features that I'd worked last week, which are: delete domains and issue report. Most of the work is done but there is already some pending tasks. Until Friday, I hope I have a reviewed pull request with both features on it.

Next task I'll be working on is the comments. The project supports a very basic comment model, which is implemented by Django module. The idea is to extend it with comments edition, deletion, etc.

08/06 - 15/06

Finally, I've finish my edit_domain branch, merged to main master branch and opened the pull request. I worked on the following items:

  • add support for domain deletion in config form
  • add support for configuration edition
  • add support for issues report (with merge option) for approved configurations
  • add more tests

A few small bugs were also fixed.

For the next week, I'll work to improve comments support which are available through Django comments framework.

15/06 - 22/06

After a few fixes, my pull request was reviewed and merged into Mozilla's repo. Now I'm finishing some pending tasks on comments feature to make another pull request. You can find the code on my comments branch.

After I finish the comments branch, I'll start to work on Automated Checks.

22/06 - 06/07

During these two weeks I've been working on Automated Checks feature. Currently it's implemented the following checks:

  • Domain Checks
    • Compare nameservers of the first domain against the others.
    • Check if domains has at least one MX server
  • Config Checks
    • Check if there is a better connection method available for incoming (IMAP and POP3) and outgoing servers (SMTP).
    • Check if supplied connection method is supported
    • Check if supplied authentication method is supported

You can check out the code on my automated_checks branch.

06/07 - 13/07

Now automated checks feature is almost done. I've added checks for suggesting better authentication methods (if available) and for testing if the configured auth method is supported. Those informations are obtained from ehlo responses. These checks are now being displayed on the details page instead of open a new tab/window.

Now I'll work on checking tld of MX servers to compare with tld of configured incoming/outgoing servers. And I'll have to create tests for all of this code. I'll use pymox to mock dnspython, smptlib, poplib and imaplib.

After finishing automated checks feature, I'll start to work on Bug 588155 - Allow all values from config file XML to be put in the ISPDB database. I hope to finish Bug 526468 - Can't enter several documentation URLs until the end of this week.

13/07 - 20/07

Finally, I'm done with automated checks feature. You can check out the code here.

Now I'm working on Bug 526468 - Can't enter several documentation URLs and Bug 518319 - Allow documentation pages in more languages. It's getting a little tricky because we have nested forms with ManyToMany fields.

20/07 - 27/07

I haven't finished bugs Bug 526468 - Can't enter several documentation URLs and Bug 518319 - Allow documentation pages in more languages yet. The view code was getting too complex, so I decided to transfer this complexity to the form and baseformset classes.

Next week I'll finish these bugs, and work to get pull request 7 approved.