git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC] git integrated bugtracking

From
Daniel Barkalow <barkalow@iabervon.org>
Date
Jun 10, 2007, 02:44 UTC
Message-ID
<Pine.LNX.4.64.0706092152180.5848@iabervon.org>
In-Reply-To
<20070609121244.GA2951@artemis>
On Sat, 9 Jun 2007, Pierre Habouzit wrote:
Show 5 quoted lines
>   FWIW I've begun to work on this (for real). I've called the tool
> "grit". You can follow the developpement on:
> 
>   * gitweb: http://git.madism.org/?p=grit.git;a=summary
>   * git:    git://git.madism.org/grit.git/

I've been working on a completely orthogonal portion of the bug-tracking problem (software to try to generate bug reports containing the information that a particular project would like for a particular sort of bug), and I've been thinking about how it would fit in with git-the-content-addressed-filesystem. I haven't actually implemented anything at all in this area, some you're ahead of me, but I have some ideas.

1) It's probably best to use some new types, rather than trees and 
commits. This gives you more flexibility to structure things in ways that 
exactly fit what's going on, which is one of the main reasons git is so 
good for version control. It also means that you can use inline strings 
for short answers (what's the name of the program that makes your kernel 
oops), and blobs for long answers (what's your lspci -vvv), and commits 
when appropriate (what commit did git-bisect find? what version resolves 
it?)
2) It's probably best to have the history be per-bug, with each revision 
being an update to that report, and have the complete database be a refs/ 
subdirectory. The complete list of bugs is going to become vast, and it's 
probably best to retain old bugs, at least in the databases at archival 
sites, so that you can get information on how often a bug turns out to be 
misuse of a particular API or something. This means that you really don't 
want each addition to be O(number of bugs).
3) I think it's worth separately representing "what problem somebody had" 
and "what was wrong with the program to cause problems" and linking these 
to each other. This will help in being able to at least represent multiple 
reports of the same bug, which is useful for finding patterns when the bug 
is non-trivial.
My idea of what the structure of the data is:
 - The project has essentially a troubleshooting procedure, written up 
   like a classic expert system (or like Kconfig). This takes the user 
   through a set of all the questions developers ever ask, with only the 
   appropriate ones visible (if you've got a build failure, it doesn't ask 
   for lspci output; it only asks for sysrq-t output if the system is 
   still sort of responding; etc).
 - The failure report is the set of all the questions the user answered 
   and the answers.
 - The hash of the initial failure report is the ID for the failure. 
   Revisions of the report (adding more information as people ask for 
   special things) retain the same ID.
 - After you generate a failure report, it searches for similar failures 
   and bugs in the main database. If it finds stuff, the user can try any 
   resolutions, and skip sending the report in. If there's nothing there 
   or there's still uncertainty as to what to do about the issue or the 
   resolution doesn't work for this case, the report is added to the 
   database.
 - It's up to developers to create bug records to pull together failure 
   reports, analysis of the situations, advice, and the ultimate 
   resolution. Failures get revised to link them to bugs so that people 
   with problems can find answers, and bugs list the failures they cause, 
   so that people working on something can find people to test.
 - Reports can be made on (1) failures that somebody would be able to test 
   resolutions to, but which aren't attached to any bugs; (2) bugs that 
   aren't resolved in a particular commit (which may be resolved in some 
   later or parallel commit, or have a patch). These are the things that a 
   release engineer would want to check on before releasing.
 - Reports can be made on clusters of unattached failures with similar 
   features. This would include unreproduceable failures, because they 
   might become fixable based on a large number of reports, or a test case 
   could be generated that makes them easier to trigger based on 
   distilling the common features of the rare failures.
	-Daniel
*This .sig left intentionally blank*
Previous: Jakub NarebskiNext: Johannes Schindelin
Message 27 of 46 in “[RFC] git integrated bugtracking”
  1. Pierre HabouzitJun 3, 2007
  2. Yann DirsonJun 3, 2007
  3. Pierre HabouzitJun 3, 2007
  4. Michael PooleJun 3, 2007
  5. Pierre HabouzitJun 3, 2007
  6. Johan HerlandJun 3, 2007
  7. Pierre HabouzitJun 3, 2007
  8. Matthieu MoyJun 3, 2007
  9. Pierre HabouzitJun 3, 2007
  10. david@lang.hmJun 3, 2007
  11. Pierre HabouzitJun 3, 2007
  12. david@lang.hmJun 3, 2007
  13. Yann DirsonJun 3, 2007
  14. Yann DirsonJun 3, 2007
  15. Yann DirsonJun 3, 2007
  16. Pierre HabouzitJun 3, 2007
  17. Yann DirsonJun 4, 2007
  18. Pierre HabouzitJun 4, 2007
  19. Linus TorvaldsJun 3, 2007
  20. Pierre HabouzitJun 3, 2007
  21. Martin WaitzJun 3, 2007
  22. Rogan DawesJun 4, 2007
  23. Yann DirsonJun 3, 2007
  24. Pierre HabouzitJun 3, 2007
  25. Pierre HabouzitJun 9, 2007
  26. Jakub NarebskiJun 9, 2007
  27. Daniel BarkalowJun 10, 2007
  28. Johannes SchindelinJun 10, 2007
  29. Martin LanghoffJun 10, 2007
  30. Junio C HamanoJun 10, 2007
  31. Martin LanghoffJun 10, 2007
  32. Pierre HabouzitJun 10, 2007
  33. Martin LanghoffJun 10, 2007
  34. Pierre HabouzitJun 11, 2007
  35. Martin LanghoffJun 11, 2007
  36. Jan HudecJun 10, 2007
  37. Jon LoeligerJun 11, 2007
  38. Guilhem BonnefilleJun 12, 2007
  39. Jan HudecJun 10, 2007
  40. Martin LanghoffJun 10, 2007
  41. Jan HudecJun 10, 2007
  42. Matthieu MoyJun 10, 2007
  43. Pierre HabouzitJun 10, 2007
  44. Pierre HabouzitJun 10, 2007
  45. Pierre HabouzitJun 10, 2007
  46. Rogan DawesJun 4, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.