Debbugs web UI: amancay strikes back
Name
Contact
Email: diegoe@gnome.org (jabber enabled)
- IRC: diegoe on freenode, oftc, gimpnet
Background
I've been using Debian and Free Software since 2002 and contributing to it with code since 2006 for GNOME[4].
In Debian I maintain the 'htp' package and have helped ocassionally in the pkg-gnome team, coincidentally in bug triaging and some patching.
I have worked on a few personal projects in the past, using PHP and Python. I have even published some of them[0][1][2]. You'll probably find Lúcuma[2] -a basecamp clone- as the most relevant of them for this ocassion, since it's a Django project.
When I have been paid to hack, I've worked in PHP and Python websites (using bare PHP and Django, respectively). I've also had the chance to work developing an Evolution Mailer plugin[3] written in C. Lately I've been working in creating applications using PyGTK.
I'm currently living in Lima, Perú where I help DebianPerú (the local user group) organizing events and giving talks.
Mentor
Margarita Manterola (author of amancay in 2007) (already agreed
)
Synopsis
Finish the amancay[0][1] web tool to easily handle bugs in the BTS, allowing DDs and contributors to easily triage, reassign, close, fill more info, etc on already existing bug reports and even create new ones (see below)
Benefits to Debian
Finishing amancay will allow DDs and contributors to help in bug triaging and QA without having to use email for every operation. This will enable much more people to participate in bug triaging and hence keep the BTS cleaner and more focused on real bugs.
Deliverables
A working demo of amancay allowing you to:
- fill in $fields info for a bug or various bugs
- mark bugs as closed, obsolete, etc
- reassign bugs
- browse bug lists easily (like bugzilla searches, with next-prev buttons)
- add tags to bugs
- and basically do by web almost all the operations you could do by email
- if possible and coordinated with Debian crew, a production version in *.debian.org
Project details
While helping pkg-gnome with triaging I realized that it got frustrating in the long run to jump to email so frequently.
I think that triaging is a really easy task for new contributors and even old ones, but the BTS does not make this easy. An easy process to triage bugs has proven to be a great way to get new contributors that later get more involved in GNOME and Ubuntu. Just look at Ubuntu 5-a-day or Hug-days and to GNOME's Bugsquad (GNOME actually has a /triaging/ team).
Problems I see with the current situation:
- Debian is missing a whole bunch of contributions in the bug traiging area
- Developers and contributors that are looking to clean their bug queue get discouraged because they need to switch to email for every action
- Ocassional feedback gets lost because the by-reader doesn't have an easy way to send such feedback to the report he's reading
Amancay current status
- Can list bugs in packages and associated to emails
- Can add comments (UI is there, didn't tried yet, will try)
- Can modify some other fields (UI is there, didn't tried)
- Shows really nice lists of bugs, idea could be exploited more
- Could use a face lift
- Some bugs detected (like the trash can being repeated n^n when you add an user to watch)
- Perhaps some django-1.0 stuff could be used now(?)
From the TODO file
- Paginate package pages
- Figure out what to do with attachments in the bug log
- Show user-tagged bugs
- Make the "back" button work, even in AJAX mode.
- Store the read-ahead data in the db.
- Fix sorting
- Add help
- Add "back to search results" link/button
Existing Actions
- Reassign
- Check if the package exists
- Check if the version is valid
- Change severity
- Select the current severity by default
- Close
- Allow to close as invalid (i.e. with no version)
Missing Actions
- Report a new bug
- Tag
- Usertag
- Found / Fixed / Notfound
- Merge / Unmerge / Forcemerge
- Clone
- Change submitter
- Forwarded / Unforwarded
- Change owner
- Subscribe
- Add bug to selected bugs
- Add package to selected packages
Related proposal
Debbugs read-write SOAP interface: http://wiki.debian.org/SummerOfCode2009/DebbugsRWSOAP
I wouldn't mind learning Perl, must discuss with Marga if she had SOAP in mind for the 'write part' of amancay. I emailed Don Armstrong and he mentioned that he won't mind an API to remotely control BTS, he briefly mentioned the concept of 'queues'.
We could analyze this more carefully later.
Project schedule
I'm counting 12 weeks, but hopefully we can get an extra advantage working on this since the day acceptance is confirmed:
Week 1-2:
- Get to know my mentor and discuss how best we can handle the project
- Stress test the current code for existing bugs
- Evaluate the current code for any part that could need a quick rewrite or update to allow our goals to be accomplished
- Take advantage of django-1.0 features that weren't available when the original code was written
Updated bundled libraries (like MochiKit)
Week 3:
- Implement modification actions on bugs (status, owner, suscription)
Week 4:
- Test week-3 work
- Implement modifications regarding other bugs (merges, clones)
- Week 5:
- Test week-4 work
- Implement tagging
- Week 6:
- Test tagging
- Implement bug reporting
- Week 7:
- Test bug reporting
- Setup amancay on a test server to start a small test with some developers
- Discuss new amancay-only functionality (like selected bugs, selected packages)
- Week 8:
- Test week-7 work
- Implement amancay-only functionality
- Implement user-settings
- Week 9:
- Test week-8 work
- Gather feedback from test, fix bugs, implement good suggestions
- Continue test-drive on a test server with some developers
- Week 10:
- Do a general testing of all the new implemented functionality so far
- Face-lift CSS, beautify implemented functionality
- Check on new current status, decide most important functionality in the new todo list
- Week 11:
- "Reconcile" AJAX magic in amancay with browser back-forward
- Implement remaining functionality, based on previous week discussion on what's most important from our new list
- Week 12:
- Test latest implemented functionality
- Finish UI work, AJAX, etc
- Write user-docs for amancay and an easy "Triaging guide" to reach new contributors
This is of course just a reference, in reality it will probably change based on how things progress or what new ideas pop in the meanwhile.
Other summer plans
I'll just focus in university and my current GNOME work (which is mostly administrivia and community stuff right now).
Exams and other commitments
My academic semester begins on April, although it will be a light one, because it's introductory. I'm serving at the GNOME Foundation's Board of Directors now. I'll probably be unemployed since mid April and for the rest of the GSoC period.
