Revamping the Bodhi karma

The current implementation can be found in a public Git repository, forked from the main Bodhi tree so as to not pollute it with this experimentation.

It consists of a modified model and a quickly hacked controller/template to view an update and the comment form (but not commenting yet).

Preview

Below are screenshots of viewing an update and the feedback form:

The following is what the update looks like when directly printed (for example in emails) and can be obtained by running the test_karma() unit test.

================================================================================
     TurboGears security update
================================================================================
    Release: Fedora 11
     Status: pending
       Type: security
      Karma: Doesn't fix my problem (1), Causes new problems (1), Fixes my
             problem (3), Still works for me (1)
    Request: testing
       Bugs: 1 - None
           : 2 - None
       CVEs: CVE-2009-0001
      Notes: foobar
  Submitter: lmacken
  Submitted: 2010-03-14 20:18:13.515805
   Comments: bochecha - 2010-03-14 19:18:13.531837
             Karma:
                 General feedback: Still works for me
             Text for comment 1
               ----------
             lmacken - 2010-03-14 19:18:13.539849
             Karma:
                 General feedback: Causes new problems
                 Bug 1: Fixes my problem
                 Bug 2: Fixes my problem
               ----------
             adamw - 2010-03-14 19:18:13.563302
             Karma:
                 Bug 1: Fixes my problem
                 Bug 2: Doesn't fix my problem
             Text for comment 2
               ----------
             bochecha - 2010-03-14 19:18:13.577050
             This update was unpushed
               ----------

  http://localhost:8084/TurboGears-1.0.8-3.fc11

TODO

Most things remaining to be done are stuff that will need to be decided first.

  • Rules for auto-unpush (e.g: « veto for stable if "Causes new problems" »)
  • Rules for auto-push (e.g: « if you get a FMP for each bugzilla listed in the update, plus at least 1 WFM, then you could automatically push to stable »)
  • Allow "Causes new problems" only for logged in users? (avoid DoS)
  • What if the user provided contradictory karmas earlier?
    • Current +1/-1 gives more weight to the new contradictory karma, how to translate that in the new system?
      • => maybe allow a user to cancel an earlier karma?
  • FMP/DFMP karma against a bug could be noted in the bug itself with a resultant VERIFIED/FAILS_QA toggle to the bug status?
  • Implement the controller
    • Actually allow commenting an update

Suggested karma types

Global karma

  • 'swfm': 'Still works for me'

    => "I have tried this update in my regular day-to-day use and seen no regressions"

  • 'cnp': 'Causes new problems' (>=1 bug IDs)

    => "I have tried this update in my regular day-to-day use and observed (a) regression(s): bug #XXXXXX."

  • 'ptc': 'Passes test case'

    => "I have performed the following planned testing on the update: (link to test case / test plan) and it passes."

  • 'dptc': 'Does not pass test case' (>=1 bug IDs)

    => "I have performed the following planned testing on the update: (link to test case / test plan) and it fails: bug #XXXXXX.

  • 'fup': 'Fixes unmentioned problem(s)' (>=1 bug IDs)

    => "I have tried this update and found that it fixes bug #XXXXXX, even if it does not claim to."

Bug related feedback

  • 'fmp': 'Fixes my problem'

    => "I have tried this update and found that it does fix bug #XXXXXX as it claims."

  • 'dfmp': 'Does not fix my problem'

    => "I have tried this update and found that it does not fix bug #XXXXXX even if it claims to."