NewUI
Launchpad Entry: community-lucid-harvest-next-steps
Created: 2009-12-01
Contributors: dholbach, james-w, rockstar, jonobacon
Summary
The old Harvest was more of a proof-of-concept work than a system that was really usable. The code was unmaintainable and the UI did absolutely not scale, both in terms of accomodating the mass of opportunities and in terms of new requirements. Now that Harvest is ported to Django we can think of a new UI that is more flexible and accomodates desired common work scenarios.
Rationale
The concept behind Harvest is deemed very useful: import opportunities from various scripts that already being run regularly through a very simple .csv format. The problem we are facing is that the current UI is just overwhelming and does not actually make it easier to decide what to do next. It does not scale.
What we need is a clever way of selecting certain types of opportunities and certain sets of packages depending on the interest of the user.
Another requirement is to be able to comment on opportunities that are not Launchpad bugs or come from lists that "read-only". An example of this is http://qa.ubuntuwire.com/ftbfs/ - it'd be great to know if contributors could annotate opportunities like this with "looking into it" or "requested sync from Debian which will fix it".
Also marking an opportunity as "irrelevant" never worked reliably with the old Harvest. This is important to get fixed, so we can get opportunities like "Fedora patches" off the list if we can't make use of them.
User stories
- Daniel wants to sponsor a few patches. He can upload to all parts of Ubuntu. He logs into Harvest, picks Sponsoring and is all set.
- Sébastien is a Desktop guy, he just cares about Desktop packages. He logs into Harvest, selects Desktop packages and can see everything that "needs to be done".
- Jonathan, a new contributor, knows a bit about packaging and Ubuntu maintenance work and has a spare hour. He uses Kubuntu, so picks Kubuntu. Finds out there is a new upstream version to be packaged. Curious to learn more he clicks on the "?" after the "upgrade opportunity" and is sent to a page explaining how to go about software updates.
Benjamin finds out about a Fedora patch of the xmms2 package. He checks it out and finds that it only applies to an older version of xmms2. He marks the patch as "irrelevant".
Ara has a few spare minutes and wants to contribute to Ubuntu development. She goes to Harvest, finds the "featured opportunity lists" and because it's the end of the cycle it lists upgrade bugs that need fixing. She finds a bug in the postinst of a package and fixes it easily.
Design
Implementation
This section should describe a plan of action (the "how") to implement the changes discussed. Could include subsections like:
UI Changes
Daniel Holbach's mockup shows how you can
- better pick opportunities based on their type of opportunity
- better pick opportunities based on the set of packages you're interested in
- mark opportunities as irrelevant
- comment on opportunities
Code Changes
The porting of the backend is already done, the UI part is being worked on:
Instead of displaying all opportunities at once, we give users the chance to:
- log in
- select interest either by picking
- a set of packages they are interested in (packages they're bug contact for, they can upload or pick from a list)
- a set of opportunities they are interested in ('featured opportunities', selected opportunities)
- comment on opportunities, if they're not in Launchpad
- mark them as irrelevant
- set the skill level of opportunities
Backend data:
- add skill level for opportunities
- add 'featured' flag for opportunity lists
Migration
Harvest's data is still being read from lp:harvest-data, even faster than it was in the old Harvest.
BoF agenda and discussion
The ugly ;-) old one: http://daniel.holba.ch/harvest/ The beautiful new mockups: https://wiki.ubuntu.com/Harvest/NewUI The new implementation is going to be developed in Django === The UI === === Features ==== Commenting: * For indicate work is being done on the current opportunity or patch review === Current code for Harvest === bzr branch lp:harvest == New Ideas == - skill level: easy, medium, hard (set default per opportunity list)