[Soc-coordination] amancay strikes back, overview, final report

Diego Escalante Urrelo diegoe at gnome.org
Mon Aug 17 10:40:54 UTC 2009


Hello everyone!

for the last 12 weeks I have been working in amancay, a project to build
an alternative UI for Debian's Bug Tracking system.
The original proposal can be found here (you will see I haven't updated
it since around week 4):
        http://wiki.debian.org/DiegoEscalanteUrrelo/SoC/Debbugs2009

You can see a final word on deliverables further below this report.

A brief 'journal summary' of the 12 weeks:
---
After being accepted I had this fun problem with google that locked me
out of my email for around 10 days, this put me behind my expected
schedule of working during the community bonding period (obviously also
hitting real-life badly). This unfortunate thing chained up with
midterms (I'm in winter right now, down here in the South) and later
with visa and university work.
In summary, the first half of the program my work performance wasn't up
to my own expectations :(.

Later on, after the midterm evaluation I finally got a hold of my own
time and was able to work harder on my project. Attending DebConf was
surely a great experience but turned out to be very unlucky for me
health wise, the day of the SoC talk I woke up late in fever and missed
it (really sorry for that); the day I was working to set up a demo for
DC *literally right after starting* I crushed my index finger with a
window leaving my hand a bit more than useless for the next few
days :-).
-/-

Let's go to the code:
---
You can get the code in gitorious (svn.debian.org was ignoring me today,
so I couldn't replicate there my latest stuff):
        http://gitorious.org/amancay

get a copy with:
        $ git clone git://gitorious.org/amancay/amancay.git

Instructions for running it are in README, it should work fine out of
the checkout.
Note: Not mentioned in there the dependency on
python-django-registration, sorry :-).

You will find that I have a good number of tags in there, which are
pretty obvious and self explanatory, they are all before/after points:
        pre-diegoe	- first commits, even before soc
        pre-soc2009	- soc2009 starts
        progress-week2	- progress up to this week
        progress-week4	- " " "
        progress-week6	- " " "
        progress-week8	- " " "
        marvil-review	- code-review with a local friend in Drupal's soc
        pencils-down	- today

They are listed here in chronological order. You will notice there is no
tag for week10 (DC9) and week12 (today).
Current head (master branch) in gitorious right now is (or should be): 
        9079e368a7b3e150583dc54c646513ae5707decd
-/-

Development done:
---
First, let's define a starting point. When I took the project, amancay
had almost many bug actions implemented already. It had a default look
and was working without too much trouble.

Most of my work has gone behind the scenes, in rewriting lot of code and
tidying up the internals, so you will see that they are predominantly
boring -really boring- changes.

Problems found and fixed, new features, additions, etc:
        - [fixed] deprecated django functionality in use
        - [fixed] misuse of django solutions or usage of own solutions
        when django had equivalents
        - [fixed] bundled an old MochiKit version
        - [fixed] bundled (quite old) copy of django-registration
        - [fixed] code duplication, simplification
        - [fixed] pythonification of some code (use of None, len(), etc)
        - [fixed] almost no documentation
        - [rewrite] of almost all templates, if not all
        - [rewrite] bugs/tables views' logic
        - [implemented] bug/package starring (marking them as favourites
        for quick access in amancay -the concept was present as selected
        packages/lists but not as starring- see Demo)
        - [implemented] new refreshed look: simpler, cleaner, clickable!
        (ok, highly biased :-))
        - [implemented] ajax methods for amancay actions
        - [implemented] subscribe/unsubscribe action
        - [implemented] ownership action
        - [implemented] templatetag for drag-n-drop tagging (although I
        later would decide to reuse the logic for other things and do
        tagging in a different way)
        - [implemented] templatetag for sidebar toolbox
        - [integrated] bug-actions to bug pages (still missing some)
        - [integrated] stock-icons all around
-/-

The deliverables
---
My original list of deliverables was a bit vague in detail (you can see
it in the wiki), as I worked on the project I realised -for example-
that implementing new bug actions was most of the time easy and instead
the real work was needed on enhancing the logic of the code putting all
this actions together. If you go through the patches in git, you'll see
lots of this are considered by git as rewrites.
Let's consider a 'digested and realistic' list of deliverables from my
original proposal:
        - [70% done] bug actions not implemented: owner, subscription,
        tagging, among others
        I miss 'among others' but they can be easily done now so I'm not
        particularly worried

        - [60%-done] being able to do by web most of the operations BTS
        allows
        The situation is dependant in the previous point where I think
        progress can be made quickly in the new state of the code

        - [done] easy browsing of bugs
        I think this is quite good right now, you can browse your
        favourited packages, bugs, submitters in nicely paged lists and
        actually find useful information in lists and bug views I did.
        
        - [not done] demo in *.debian.org (if possible and coordinated
        with time)
        I didn't have time to ask for access nor prepare a beta branch
        for this. Would try to have an alpha one in my own server this
        week, but a beta for Debian will take a little more time yet.

I feel my list of deliverables wasn't really clear nor concise enough to
be commented, so 'Development done' section should prove to be more
eloquent of what was done.
-/-

Problems, pending and near-future work:
---
I have run into a serie of problems I want to address in the near future
in the project, concretely:
        - [debbugs] need to ask Don for some extra API for some actions
        like retrieving bug numbers + bug logs for a package instead of
        doing 2 separate requests.
        - [debbugs] need to ask Don about attachments since right now
        the SOAP api returns intentionally empty 'attachments' fields
        for bugs
        - [debbugs] need to ask Don for API to mark bugs as SPAM (or
        sort out what's the best way, right now it's just clicking a
        link)
        - [amancay] create user preferences views
        - [amancay] try to create some kind of cache for bug logs, to
        enhance performance
        - [amancay] review python-soappy and perhaps use a faster
        solution
        - [amancay] fix the rough edges in the interface for daily use
        - [amancay] ajax column sorting
        - [amancay] possible jQuery migration
-/-

Demo
---
I was gonna setup a demo this past week but preferred to spend time on
hacking more in the project, so I will try to get it going this week,
maybe by Friday. I will send the url to the list asap.
-/-

Final words
---
I've enjoyed being part of Debian's Google SoC and I feel I've done
important work in the project -although I feel I'd have done more if it
wasn't for that bumpy start- and taken it to a much better state
regarding organization, simplicity and logic (biased opinion obviously).
>From now on, it should be easy for me to fill in the blanks and polish
the rough edges.

I'm still chasing the goal of creating the space and tool for *easy*
triaging and bug maintenance to exist inside Debian. I'm convinced this
is an important thing to have and will keep working on amancay until it
can fill that blank.

Sorry for the longlonglong email, let me know if you find it to be vague
in some important place or if perhaps I got carried away and listed
stuff that is not relevant in the changes or whatever. Let me know if
you test amancay also, if it breaks or kidnaps your cat.

Thanks for an amazing (starting) experience, hope to keep working with
you all!

Diego




More information about the Soc-coordination mailing list