* Re: [RFC] git integrated bugtracking
2007-06-10 6:59 ` Martin Langhoff
@ 2007-06-10 7:35 ` Junio C Hamano
2007-06-10 8:38 ` Martin Langhoff
2007-06-10 8:50 ` Jan Hudec
2007-06-10 8:37 ` Jan Hudec
` (3 subsequent siblings)
4 siblings, 2 replies; 46+ messages in thread
From: Junio C Hamano @ 2007-06-10 7:35 UTC (permalink / raw)
To: Martin Langhoff; +Cc: git
"Martin Langhoff" <martin.langhoff@gmail.com> writes:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
>> 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/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
>
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
You are a brave person to say this (no sarcasm --- I wish I
were, too).
On one hand, I very much applaud and appreciate your comment for
injecting sanity to the discussion. On the other hand, if Linus
had such an attitude, we might not be hacking on git right now.
After looking at the above existing alternatives, some brave
soul might decide and say, "Hey, I can write something better in
2 weeks" ;-).
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
All of your examples are going from a single bug to commits, but
from a release person's point of view, you are never interested
in a single bug, just like a top-level maintainer is never
interested in a single file. A release person would want to go
in the reverse direction: from a commit range to a set of bugs.
What bugs were fixed and what regressions were introduced during
this release cycle. While embedded ticket numbers in commit log
messages would certainly help, a change made to fix a particular
bug may fix another as its side effect, and the develeoper who
did the change may not know about the latter when the commit log
message is written.
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
>
> But I would _never_ try to describe all the possible relations in the
> schema -- existing trackers use a liberal mix of regexes and cache
> tables with some free form text fields for this kind of stuff.
These are indeed very good points.
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 7:35 ` Junio C Hamano
@ 2007-06-10 8:38 ` Martin Langhoff
2007-06-10 8:50 ` Jan Hudec
1 sibling, 0 replies; 46+ messages in thread
From: Martin Langhoff @ 2007-06-10 8:38 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> > what is going to make the difference. Most of those have already the
> > ability to "link" to one or more commits -- after the commits are done
> > and in GIT.
>
> You are a brave person to say this (no sarcasm --- I wish I
> were, too).
>
> On one hand, I very much applaud and appreciate your comment for
> injecting sanity to the discussion. On the other hand, if Linus
> had such an attitude, we might not be hacking on git right now.
Thanks for the reply - sorry for being a bit of a stirrer ;-) Yes, I
do appreciate the irony and I'd have never started git. If anyone
really wants to do their own bugtracker... be like Linus not like me
(a mere follower) ;-)
> After looking at the above existing alternatives, some brave
> soul might decide and say, "Hey, I can write something better in
> 2 weeks" ;-).
Definitely. But that takes a deeper look into the above alternatives,
and probably a good perspective. I hope noone takes offence if I say
that -- as a user of several bugtrackers over ~10 years -- I haven't
yet read anything in this thread that is exciting.
And "it's closely integrated with git" can actually be a misfeature.
Cool if it's what gets you going, but not enough for world domination
;-)
> All of your examples are going from a single bug to commits, but
> from a release person's point of view, you are never interested
> in a single bug, just like a top-level maintainer is never
> interested in a single file. A release person would want to go
> in the reverse direction: from a commit range to a set of bugs.
That's right. It's not that hard to correlate commits-in-the-changelog
and ask the bugtracker to produce a "tracker changelog" showing all
the bugs/tasks that link to the commits (with that liberal view of
"links to" discussed before). Formatting of the tracker changelog _is_
tricky but that's due to the ambiguities in those relationships.
(In Moodle I use JIRA, a non-FOSS tracker, and it does exactly that. I
think it has some notion of CVS branches, and where tags sit, so you
can ask for a report of which bugs are fixed in the release you are
preparing on branch X).
> What bugs were fixed and what regressions were introduced during
> this release cycle. While embedded ticket numbers in commit log
> messages would certainly help, a change made to fix a particular
> bug may fix another as its side effect, and the develeoper who
> did the change may not know about the latter when the commit log
> message is written.
I agree it's useful, but I don't think it has any benefit having it in
the SCM _at all_. Having them in the BT is a lot more flexible -- and
the fact that git has stable commit IDs makes it easier to integrate
in a BT; as the BT can spot that the commit fixing bug 123 is now
merged into head ZZ as well as head YYY.
So the BT holds "external tags" to your commits. Lots of them. With a
ton of data. And that's great -- in fact there's no stopping it -- the
stability of SHA1s means that the whole internet holds tags to your
repo. Every time a SHA1 (or output of git-describe) is mentioned in a
mailing list, wiki or forum, there's a tag.
Now, to rule the world, BTs gain a lot more from being able to
integrate with different SCMs, automated test systems (like
tinderbox), MTAs (debbugs), wikis (traq), stats tracking for PHBs
(bugzilla), etc. So loose coupling wins here, and git's SHA1s are
great for that.
And at git's end we can get the smooth integration using/abusing that
loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
can be used to perform a lookup... I can think of a perl script that
gets events for each SHA1 that git-rev-list produces and returns one
bug number, url and title (or more than one) that then git-log / gitk
/ qgit / annotate can use to further "decorate" the commit info in a
similar style to what gitk is doing now with head names in each
commit.
Would that fit your vision of a nicely integrated tracker?
martin (who's now thinking how to craft a proof of concept)
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 7:35 ` Junio C Hamano
2007-06-10 8:38 ` Martin Langhoff
@ 2007-06-10 8:50 ` Jan Hudec
2007-06-11 18:51 ` Jon Loeliger
1 sibling, 1 reply; 46+ messages in thread
From: Jan Hudec @ 2007-06-10 8:50 UTC (permalink / raw)
To: Junio C Hamano; +Cc: Martin Langhoff, git
[-- Attachment #1: Type: text/plain, Size: 1835 bytes --]
On Sun, Jun 10, 2007 at 00:35:33 -0700, Junio C Hamano wrote:
> "Martin Langhoff" <martin.langhoff@gmail.com> writes:
> > So you can tell your bugtracker
> > - which commit fixed it -- usually auto-linked if you include the
> > bugnumber in the commit message
> > - which commit added the test -- auto linked as above
> > - which commit introduced the bug -- if such thing exists and someone
> > digs it up
>
> All of your examples are going from a single bug to commits, but
> from a release person's point of view, you are never interested
> in a single bug, just like a top-level maintainer is never
> interested in a single file. A release person would want to go
> in the reverse direction: from a commit range to a set of bugs.
> What bugs were fixed and what regressions were introduced during
> this release cycle. While embedded ticket numbers in commit log
> messages would certainly help, a change made to fix a particular
> bug may fix another as its side effect, and the develeoper who
> did the change may not know about the latter when the commit log
> message is written.
It would be really useful to have a tool, that could link a bug report to
a test case demonstrating it and reporting whenever output of that test case
changes. This would make it much easier for developer to see which bugs he
might have fixed when doing a refactoring.
It should probably report not just unexpected success, but also change to the
error output, because the test case does not have to be 100% correct. That is
if you have a test case that prints:
testFoobar FAIL "foo" != "Bar"
and than starts to say:
testFoobar FAIL "foo" != "Foo"
the problem is probably fixed, but the test still fails because of minor
error in the expected output string.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 8:50 ` Jan Hudec
@ 2007-06-11 18:51 ` Jon Loeliger
2007-06-12 8:54 ` Guilhem Bonnefille
0 siblings, 1 reply; 46+ messages in thread
From: Jon Loeliger @ 2007-06-11 18:51 UTC (permalink / raw)
To: Jan Hudec; +Cc: Junio C Hamano, Martin Langhoff, Git List
On Sun, 2007-06-10 at 03:50, Jan Hudec wrote:
>
> It would be really useful to have a tool, that could link a bug report to
> a test case demonstrating it and reporting whenever output of that test case
> changes. This would make it much easier for developer to see which bugs he
> might have fixed when doing a refactoring.
I think the inverse is interesting too. That is, applying
keywords to tests and then making the test database
keywords searchable.
I used to work for a company that had a huge collection
of test cases for its product. It would take days to run
a validation run for some of the simplest of changes that
were introduced during development.
Often what I wanted, and what was needed, was a simple
sanity check that verified that the proposed change was
not brain-dead from the start.
Over time, I found that certain tests proved to be good
at detecting failures in particular portions of the code.
Often, that test was not necessarily directly related to
the concept it was _supposed_ to be designed to test, but
incidentally was good at some _other_ concept too.
The developer who made the change, and ran the tests,
then was able to state "Test t42 from suite Frotz is good
at detecting changes to the <SomeModule>."
The trick is to now associate with that test the keyword
"SomeModule" so that in the future, another developer
could ask: "Say, I just modified <SomeModule>, are there
any tests that are good at proving my changes sound?"
A test driver could then focus some test cycles quickly.
Now, for git, it's not likely a problem to just run
through all of its tests. At ${PriorCompany} it was
essential to pare down the test suites to a manageable
size, yet still have assurance that your coverage was
reasonably good.
jdl
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-11 18:51 ` Jon Loeliger
@ 2007-06-12 8:54 ` Guilhem Bonnefille
0 siblings, 0 replies; 46+ messages in thread
From: Guilhem Bonnefille @ 2007-06-12 8:54 UTC (permalink / raw)
To: Git List
Hi,
This subject is quite interesting. I read that one of the main
expected goal of integrating SCM and BT is to help release manager in
its task.
In my point of view, we have to keep in mind that it's not because a
commit solved a problem, that all the following commits will always
solve the problem. Development ALWAYS suffers regression. The really
way to avoid this is to have an organisation of code that allows
automatic tests. So it needs something greater than the SCM: you have
to be organized for this.
One interesting project to have a look for is aegis (
http://aegis.sourceforge.net/ ).
It proposes a sort of SCM, that integrates process to ensure quality
of code. One of them is that the /SCM/ will control the non regression
before commiting.
I hope these informations will help defining how we can design a
system that integrates SCM and BT in a distributed manner.
--
Guilhem BONNEFILLE
-=- #UIN: 15146515 JID: guyou@im.apinc.org MSN: guilhem_bonnefille@hotmail.com
-=- mailto:guilhem.bonnefille@gmail.com
-=- http://nathguil.free.fr/
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 6:59 ` Martin Langhoff
2007-06-10 7:35 ` Junio C Hamano
@ 2007-06-10 8:37 ` Jan Hudec
2007-06-10 8:55 ` Martin Langhoff
2007-06-10 22:07 ` Matthieu Moy
2007-06-10 13:34 ` Pierre Habouzit
` (2 subsequent siblings)
4 siblings, 2 replies; 46+ messages in thread
From: Jan Hudec @ 2007-06-10 8:37 UTC (permalink / raw)
To: Martin Langhoff; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 3772 bytes --]
On Sun, Jun 10, 2007 at 18:59:13 +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > 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/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
I don't know about any *distributed* bug tracker, which is the point here.
We have several distributed version control tools, but no other distributed
tools for the other tasks in configuration management.
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference.
It would certainly be useful. But the problem with these bug trackers is,
that they don't go all that well with how many hackers work. And the less
they fit with distributed workflow.
- The web interface is usually not a good match for the problem. Email
interface is better in many respects, but it still does not cut it.
- You can't really use the ability of version control to work disconnected,
when you don't also have the bug information.
- Distributed version control is designed to decrease the workload of the
central maintainer(s) while keeping him in control. But with centralized
bug tracking he still has a lot of work with that that the mob can't help
him with. It helps if the bug tracker can close bugs based on something in
commit-log, but you also need to see what it is that will be closed, which
requires integrating the bug tracker into the version control.
The other thing is, that a good bug tracker also needs to be integrated with
the *mailing list*. The major part of bug tracking is discussing those bugs
and discussions usually take place on mailing-lists (and on irc --
integrating that as well would be nice too).
I've actually already seen some attempts at something like this project. The
first one was for GNU Arch. Instead of using a bug-tracker, there was
a branch where each bug had it's mbox with all the relevant data. This mbox
was moved between directories depending on it's state. AFAIR there was no
tool to maintain it, just a description of the workflow.
(Tom Lord called it "the game". See eg.
http://www.dasbistro.com/~sam/mail/tom-lords-game)
The other attempt is obviously the Bugs Everywhere thing.
A related thing is Bazaar's "Bundle Buggy". It tracks patch submission rather
than bugs, but it is roughly what I meant by the "mailing list integration"
above. It "reads" the mailing list, watching for anything labeled [PATCH] or
[BUNDLE] with patch or bundle (bundle is bazaar's extended patch) attached.
It also watches for replies with review (review outcome is stated with "-1"
(veto), "-0", "+0" and "+1" (ok)) and with further patches/bundles (updated
versions of the patch).
> [...]
>
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
If it uses git as it's database, which it probably will, it will definitely
require git. Now it should be possible to have the code in different version
control, but it would be integration with things like git format-patch, that
will really make it cool stuff -- and that won't work with other version
control out of the box.
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
Yes. But for many people current bug tracking tools do NOT work 99%.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 8:37 ` Jan Hudec
@ 2007-06-10 8:55 ` Martin Langhoff
2007-06-10 10:16 ` Pierre Habouzit
2007-06-10 10:49 ` Jan Hudec
2007-06-10 22:07 ` Matthieu Moy
1 sibling, 2 replies; 46+ messages in thread
From: Martin Langhoff @ 2007-06-10 8:55 UTC (permalink / raw)
To: Jan Hudec; +Cc: git
On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> I don't know about any *distributed* bug tracker, which is the point here.
As an end user, I suspect I _don't_ want to have to report a bug in a
distributed bug tracker ;-) In that space, the Malone guys (canonical)
have their fingers on one of the most serious issues, and perhaps it's
interesting to see what they've done there. It's really useful, even
if I don't think I want to have to maintain it :-/
> We have several distributed version control tools, but no other distributed
> tools for the other tasks in configuration management.
Bugtrackers are co-owned by developers, users and (where they exist)
project managers.
> - The web interface is usually not a good match for the problem. Email
> interface is better in many respects, but it still does not cut it.
I agree. I love/hate debbugs too.
> - You can't really use the ability of version control to work disconnected,
> when you don't also have the bug information.
A cache fixes the reading part - see my other post, and imagine being
able to have a local sqlite cache of the BT key data indexed by
referenced SHA1, showing up with your commits in gitk.
The write part is solved (in part) by committing to git the fix -- if
you mentionm the bug ID, the central BT will pick it up when your
commit appears in the branches/repos that the BT can see.
For "just adding a comment", the write part is solved by the "email"
interface, like with debbugs.
> - Distributed version control is designed to decrease the workload of the
> central maintainer(s) while keeping him in control. But with centralized
And to provide a single place for users to report a problem and track
its status.
> If it uses git as it's database, which it probably will,
Well - hmmm. Git's database is great at tracking _content identity_.
But a bug's content identity (description+comments+status) changes all
the time. I don't think it's naturally a good match.
Perhaps it makes sense to mix git's storage model with something else...?
> Yes. But for many people current bug tracking tools do NOT work 99%.
Hmmm. I agree in that "does not work disconnected" is a big issue with
web tools, but debbugs works disconnected, and is good. Git's
bugtracker (git@vger) works disconnected too ;-) And googlegears might
help the rest of us. Is there any other problem with current BTs?
cheers,
martin
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 8:55 ` Martin Langhoff
@ 2007-06-10 10:16 ` Pierre Habouzit
2007-06-10 23:14 ` Martin Langhoff
2007-06-10 10:49 ` Jan Hudec
1 sibling, 1 reply; 46+ messages in thread
From: Pierre Habouzit @ 2007-06-10 10:16 UTC (permalink / raw)
To: git, Martin Langhoff
[-- Attachment #1: Type: text/plain, Size: 12981 bytes --]
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > 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/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proven wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 10:16 ` Pierre Habouzit
@ 2007-06-10 23:14 ` Martin Langhoff
2007-06-11 8:45 ` Pierre Habouzit
0 siblings, 1 reply; 46+ messages in thread
From: Martin Langhoff @ 2007-06-10 23:14 UTC (permalink / raw)
To: git, Martin Langhoff
On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> >
> > Call me a fool, but writing a <new> bugtracker looks like a
> > boil-the-oceans scheme.
>
> Sure, what if I like it anyway ?
Be my guest. It might turn out to be a beautiful project, but has low
chances of helping GIT-BTS integration in general.
> > Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> > what is going to make the difference. Most of those have already the
> > ability to "link" to one or more commits -- after the commits are done
> > and in GIT.
>
> Sure, you can do that and still inherit from the many downsides of
> those tools: central, needs another separate tool to work with, and a
> tool that nowadays tends to eat 500Mb of your memory if you take the
> most hype implementation of it (Yes I'm describing a web browser), that
> is slow like hell (because yes, there is many clients at the same time
> on the central server, that is overloaded like hell), and so on.
Most usable BTSs work on lighter webbrowsers, and can be tuned to work
reasonably. That's not a dead-end per se.
> You can like central web UIs, your choice. And I suppose if grit works
> well, there will be one at some point.
Bugtrackers are communication tools between developers and users. In
many spaces, they are _teaching tools_, teaching the users about info
developers need. That's why BTSs have explicit fields asking for
important variables like OS, Arch, and version you are reporting a bug
against. That's also why the BTS gains a lot from being web-based:
extreme portability, reachability, zero-install for users.
> > So you can tell your bugtracker
> > - which commit fixed it -- usually auto-linked if you include the
> > bugnumber in the commit message
> > - which commit added the test -- auto linked as above
> > - which commit introduced the bug -- if such thing exists and someone
> > digs it up
>
> yeah, that is what bugtrackers already do. Though, that's of no use
> for release managers. What is useful is what people call "milestones" in
> trac e.g., meaning a set of bugs that has been flagged as needing to be
> fixed. And what a release manager need is a tool to deal with this set
> of bugs as a whole.
Hmmm. Most BTSs have milestones, and the integration of the above with
milestones is useful for release managers. How about the _rest_ of the
BTS-using populace?
> That's the same argument that Linus has against per-file tracking.
> Also atm when you e.g. backport a patch that fixes this or this bug,
> you're no BTS helps you tagging the bug as fixed in that branch as well.
> Not to mention that BTS I know do not make any use of the commits DAG.
> And for a very good reason, there is no real DAG in many existing tools
> (svn, cvs, ...).
Making the BTS DAG-aware is overkill. The BTS can ask for every update
on every branch "what commits does it bring into branch X?" and that's
all you need. If you backport a patch and mention the original patch
SHA1 the BTS can do its job.
And all of that can be done SCM-agnostic - except for the regex to
spot a commitid.
> > And definitely, if you use git as an alibi to write a new bugtracker,
> > don't use the "works only with git" as a feature. It should work with
> > as many SCMs as possible.
>
> No it should not, because it can't. I want the distributed and
> Bug status spanning-DAGS be a central feature.
But you lose portability. And gain... what that you can't do portably?
> You're a lucky guy. All bug trackers I've used suck a way or another,
> that impedes my workflow a lot. Let's cite a couple:
Ok - but BTSs are a compromise, something that must work for users,
and developers.
> > Bugtrackers are co-owned by developers, users and (where they exist)
> > project managers.
>
> That's exactly why distributed rock. Because everyone could _really_
> own _his_ bugtracker. This solves the same range of ACLish issues git
> solves with respect to the code.
Don't think I've seen politics over who owns the bugtracker ;-) but I
_have_ seen politics over specific bugs (developers close unfixed
bugs, flamefests ensue). I guess with a DBTS everyone can have their
own status for the bug... but does that help the user? Or the
developer?
> > Well - hmmm. Git's database is great at tracking _content identity_.
> > But a bug's content identity (description+comments+status) changes all
> > the time. I don't think it's naturally a good match.
>
> Oh, because the code never changes. Doh, how stupid I am :)
> No, really, you name your bug after the sha hash of the first report,
> I think that's pretty obvious. That gives you a bug name. Then you ask
> git for "what's the current sha for this bug in the tip of the BTS
> branch", then you ask "so now what this new sha is pointing to in the
> code". That's a small indirection that I suppose is bearable.
Of course, you _can_ map the DBTS storage on git's storage. But git's
storage has been designed to match the task. While I'm sure there are
some good tricks to reuse, I don't think that it's a good fit.
> > And at git's end we can get the smooth integration using/abusing that
> > loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> > can be used to perform a lookup... I can think of a perl script that
> > gets events for each SHA1 that git-rev-list produces and returns one
> > bug number, url and title (or more than one) that then git-log / gitk
> > / qgit / annotate can use to further "decorate" the commit info in a
> > similar style to what gitk is doing now with head names in each
> > commit.
> >
> > Would that fit your vision of a nicely integrated tracker?
>
> Honestly ? No, because that would be horribly slow (but I'd love to be
> proven wrong).
What part would be slow?
cheers
martin
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 23:14 ` Martin Langhoff
@ 2007-06-11 8:45 ` Pierre Habouzit
2007-06-11 10:00 ` Martin Langhoff
0 siblings, 1 reply; 46+ messages in thread
From: Pierre Habouzit @ 2007-06-11 8:45 UTC (permalink / raw)
To: Martin Langhoff; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 10572 bytes --]
On Mon, Jun 11, 2007 at 11:14:03AM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> >> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> >> what is going to make the difference. Most of those have already the
> >> ability to "link" to one or more commits -- after the commits are done
> >> and in GIT.
> >
> > Sure, you can do that and still inherit from the many downsides of
> >those tools: central, needs another separate tool to work with, and a
> >tool that nowadays tends to eat 500Mb of your memory if you take the
> >most hype implementation of it (Yes I'm describing a web browser), that
> >is slow like hell (because yes, there is many clients at the same time
> >on the central server, that is overloaded like hell), and so on.
>
> Most usable BTSs work on lighter webbrowsers, and can be tuned to work
> reasonably. That's not a dead-end per se.
okay, my point is also that using yet another tool that is neither
integrated in my shell nor in my editor sucks. I use the shell to use
$SCM, and to perform tests of my work, so it's in my workflow. I use the
editor (well do I need to tell why ? :P), I just don't want to use a
browser where the two previous should be enough.
> > You can like central web UIs, your choice. And I suppose if grit works
> >well, there will be one at some point.
>
> Bugtrackers are communication tools between developers and users. In
> many spaces, they are _teaching tools_, teaching the users about info
> developers need. That's why BTSs have explicit fields asking for
> important variables like OS, Arch, and version you are reporting a bug
> against. That's also why the BTS gains a lot from being web-based:
> extreme portability, reachability, zero-install for users.
Because it's git-based does not implies there won't be a web UI. And
it's not because there is a lot of options to the underlying process
that you need to show them all to the user.
My experience is also that people never fill informations about OS,
Arch, version properly, because it's tiredsome. debbugs (through
reportbug) approach is excellent: assuming that the user reports the
error from the machine where he experienced it and taking all the
information automatically. _here_ is how it should work for the user,
e.g.: “please download and run that script, and paste the results in your
bug report pretty please ?”
> > yeah, that is what bugtrackers already do. Though, that's of no use
> >for release managers. What is useful is what people call "milestones" in
> >trac e.g., meaning a set of bugs that has been flagged as needing to be
> >fixed. And what a release manager need is a tool to deal with this set
> >of bugs as a whole.
>
> Hmmm. Most BTSs have milestones, and the integration of the above with
> milestones is useful for release managers.
How many of those bts'es help the RMs to know if their
soon-to-be-stable branch fits the milestone ? milestones in any BTS I
know are global "yes the fix exists, in this revision (and this
information is not always here)". Sorry but it's worthless.
> How about the _rest_ of the BTS-using populace?
Okay, who else uses a BTS ? developpers, as I'm a developper, I'll
write a tool that pleases me. Let's say developpers are taken care of.
Users ? For a user, what should be made easy is reporting, and
interacting with whoever is dealing with the bug on the other end.
Advanced users will want to be able to track discussion about some bugs
they are interested into (meaning that it must be a way to crawl the
bugs database).
So let's take the three points:
* reporting: the tools to make reporting fast, efficient, _and_
useful to the developpers - many many many bug reports suck, hard -
are very often project dependant: a project in python e.g. won't
care about the architecture usually (hence forcing it is stupid) but
will probably mind the OS, python version, distribution, ... Another
project in C will mind the architecture, but is knowingly working
only on Linux so won't mind the OS, but would maybe mind the kernel
version. etc...
=> What can I do ? provide a way to deal with some kind of
property/values that can be customizeable at the BTS side and
show some examples of reporting scripts. ttbomk only debbugs and
reportbug knows how to do that. It does not prevents bad bug
reports at all, but it makes many that would have been bad almost
good, at least usable.
* simplicity to follow up: there isn't 12987123 solutions here. mail,
mail, mail, mail. A BTS should be able to track mail discussions one
way or another. For pure-web BTS, there is still mail alerts to say
"hey $someone has said $sth on your bug $bug". So the user already
is in his MUA when he receives that, well, "reply"-button is the
shortest way to answer, make it possible.
* crawling the database: that one should not be done by the BTS. Every
BTS on the planet doing that is wrong. There is plenty of good
search engines (xapian, clucene, ...) just adapt one. And the most
simple your storage backend is, the simplest it will be.
What I'm saying is that maybe we don't call BTS the same object. To me
a BTS is a "thing" able to deal with large amounts of bugs in an
efficient way, and is able to deal with some basic things like bug
statuses, and some kind of queries to the database (not the full text
search ones). Then you have the Upper Layer Tools: guis, tracking
scripts, every bling you need. Note that Git is exactly designed this
way: low level tools, and then tools like git-mergetool, gitk, ... that
don't use _any_ git internal, but rather only use the underlying
commands. I want to build the core functions to deal with a BTS, so that
everybody is able to turn this into the BTS workflow he needs.
> > That's the same argument that Linus has against per-file tracking.
> >Also atm when you e.g. backport a patch that fixes this or this bug,
> >you're no BTS helps you tagging the bug as fixed in that branch as well.
> >Not to mention that BTS I know do not make any use of the commits DAG.
> >And for a very good reason, there is no real DAG in many existing tools
> >(svn, cvs, ...).
>
> Making the BTS DAG-aware is overkill.
Why ?
> The BTS can ask for every update on every branch "what commits does it
> bring into branch X?" and that's all you need. If you backport a patch
> and mention the original patch SHA1 the BTS can do its job.
or the BTS can do it for you and you would not need to feed him with
the sha directly.
> And all of that can be done SCM-agnostic - except for the regex to
> spot a commitid.
Sure, there is projects doing that out there, I believe they are
wrong. Portability is important. I mean, when you write a tool, that has
a purpose, yes you must try to make it available everywhere. That's why
there are people trying hard to make git build and work on windows.
But when you write a tool to help _you_ work, there is now need to
make it work for every workflow in the planet, because that would mean
align yourself to the lowest common denominator of the workflows you can
work with. That's not an acceptable trade-off. Why would I have to
support cvs or svn ? I don't use them. I just don't care about them.
Wherever place I'll work in, I'll use git. Sorry but full genericity
(because it's what we are talking about, not portability) is an
impediment, not an enabler.
> > You're a lucky guy. All bug trackers I've used suck a way or another,
> >that impedes my workflow a lot. Let's cite a couple:
>
> Ok - but BTSs are a compromise, something that must work for users,
> and developers.
I don't think it needs to be a compromise.
> >> Bugtrackers are co-owned by developers, users and (where they exist)
> >> project managers.
> >
> > That's exactly why distributed rock. Because everyone could _really_
> >own _his_ bugtracker. This solves the same range of ACLish issues git
> >solves with respect to the code.
>
> Don't think I've seen politics over who owns the bugtracker ;-) but I
> _have_ seen politics over specific bugs (developers close unfixed
> bugs, flamefests ensue). I guess with a DBTS everyone can have their
> own status for the bug... but does that help the user? Or the
> developer?
That one is easy. Indeed, the big politics in bugtrackers are ...
severity-ping-pong, or close-wars. Good example of that is btw:
http://sourceware.org/bugzilla/show_bug.cgi?id=4509.
Okay, what would we gain in a DBTS: developer would still be (sorry)
a perfect asshole with the user. That is a thing we cannot fix. Though,
the release manager will probably disagree with him. So this bug that
_he_ considers non existant will be closed in his repository, but still
remain open in the main one. Meaning that if another developer steps up,
he'll see this issue is not fixed. Else nobody will have any chance to
step up, ever.
The reverse works equally well: if RM decides bugs have to be closed,
developer is able to reopen the bugs (or not merge) in his repository,
so that he can have a chance to fix them.
Yes there is politics in BTSes, and yes it can help.
> > > And at git's end we can get the smooth integration using/abusing
> > > that loose coupling strategy. So if git-log/gitk/qgit grow some
> > > hooks that can be used to perform a lookup... I can think of a
> > > perl script that gets events for each SHA1 that git-rev-list
> > > produces and returns one bug number, url and title (or more than
> > > one) that then git-log / gitk / qgit / annotate can use to further
> > > "decorate" the commit info in a similar style to what gitk is
> > > doing now with head names in each commit.
> > >
> > > Would that fit your vision of a nicely integrated tracker?
> >
> > Honestly ? No, because that would be horribly slow (but I'd love to be
> >proven wrong).
>
> What part would be slow?
The perl scripts. It would perceptibly slow down commits. And I don't
want that now that I finally have a fast SCM. I just don't want to turn
git into bzr.
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-11 8:45 ` Pierre Habouzit
@ 2007-06-11 10:00 ` Martin Langhoff
0 siblings, 0 replies; 46+ messages in thread
From: Martin Langhoff @ 2007-06-11 10:00 UTC (permalink / raw)
To: Martin Langhoff, git
On 6/11/07, Pierre Habouzit <madcoder@debian.org> wrote:
> That one is easy. Indeed, the big politics in bugtrackers are ...
> severity-ping-pong, or close-wars. Good example of that is btw:
> http://sourceware.org/bugzilla/show_bug.cgi?id=4509.
>
> Okay, what would we gain in a DBTS: developer would still be (sorry)
> a perfect asshole with the user. That is a thing we cannot fix. Though,
> the release manager will probably disagree with him. So this bug that
> _he_ considers non existant will be closed in his repository, but still
> remain open in the main one. Meaning that if another developer steps up,
> he'll see this issue is not fixed. Else nobody will have any chance to
> step up, ever.
I've seen all those bugtracker-wars. But they never block a developer
or fellow user from saying --hey, here's a patch. And with a DSCM,
that clears things up quite quickly.
I don't understand how "Else nobody will have any chance to step up, ever."
> > > Honestly ? No, because that would be horribly slow (but I'd love to be
> > >proven wrong).
> >
> > What part would be slow?
>
> The perl scripts. It would perceptibly slow down commits. And I don't
> want that now that I finally have a fast SCM. I just don't want to turn
> git into bzr.
The model I was thinking of was of _not_ slowing down your commits ;-) but
* Stick to a mostly centralised BTS that tracks a limited set of repos
* When you push to the public repo, the BTS updates its bug status
* on git-pull, update a (fast!) local cache of BTS data
* on gitk use a similar technique to the "follows" line shown for
each commit to display bug info "inline"
cheers,
martin
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 8:55 ` Martin Langhoff
2007-06-10 10:16 ` Pierre Habouzit
@ 2007-06-10 10:49 ` Jan Hudec
1 sibling, 0 replies; 46+ messages in thread
From: Jan Hudec @ 2007-06-10 10:49 UTC (permalink / raw)
To: Martin Langhoff; +Cc: git
[-- Attachment #1: Type: text/plain, Size: 5972 bytes --]
On Sun, Jun 10, 2007 at 20:55:21 +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
As an end user, you would just post the bug report to a mailing list. The bug
tracker would take care of adding it to the "master repository".
> In that space, the Malone guys (canonical)
> have their fingers on one of the most serious issues, and perhaps it's
> interesting to see what they've done there. It's really useful, even
> if I don't think I want to have to maintain it :-/
I don't think they even have a mail interface. You have to register to post
a bug, just as with most of the crappy web-based bug trackers out there.
They have some nice integration with bazaar, but AFAIK the branch has to be
mirrored on launchpad, to which the whole thing is really tied too much.
Also I can find download link anywhere there, nor anywhere they'd state it's
license (and from what I heard it is NOT open-source).
So while they might have some nice features, it's not that suitable for
general public.
> >We have several distributed version control tools, but no other distributed
> >tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
I agree that branches don't make that much sense in bug trackers. Except in
rare cases like when the project is forked or such. The bug tracker is there
so the people stay in sync. However I think trying to design a distributed
bug tracker can bring useful insignts into the problems involved.
> > - The web interface is usually not a good match for the problem. Email
> > interface is better in many respects, but it still does not cut it.
>
> I agree. I love/hate debbugs too.
... there's a related issue of what the mail user agents can do. If my mail
client was really good as personal task manager, mail-based bug trackers
would work quite well. But the MUAs are not all that good.
> > - You can't really use the ability of version control to work
> > disconnected,
> > when you don't also have the bug information.
>
> A cache fixes the reading part - see my other post, and imagine being
> able to have a local sqlite cache of the BT key data indexed by
> referenced SHA1, showing up with your commits in gitk.
>
> The write part is solved (in part) by committing to git the fix -- if
> you mentionm the bug ID, the central BT will pick it up when your
> commit appears in the branches/repos that the BT can see.
>
> For "just adding a comment", the write part is solved by the "email"
> interface, like with debbugs.
>
> > - Distributed version control is designed to decrease the workload of the
> > central maintainer(s) while keeping him in control. But with centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Just like there is the "master" repository, there would be the "master" bug
tracker.
> >If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
>
> Perhaps it makes sense to mix git's storage model with something else...?
You are right here. Git can be used to store the data bits, but they need to
be glued together somehow (with tags or something). So we can as well store
them in some other kind of database and it might be even better.
> >Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
Well, there is no BT that would satisfy all the points above ;-). Debbugs has
a good email interface, but it's a huge beast and tied with the Debian
archive logic quite a lot. The rest -- except maybe gnats (I'll have to look
at that -- it looks interesting) -- does not seem to have much sensible email
support.
Following up on the note about MUAs above, one interesting idea to create
a bug tracker (that would not be git specific nor actually use git for
anything) would be to:
- Create a mailing list bot, that would watch for bug reports either on
dedicated address or by watching for [BUG] or something, and replies to
them.
- Export the bug database via read-only imap (or pop3 or webdav). There are
already tools to create local cache for such protocols, which would
resolve the disconnected issue and give good query speed, because the data
would be local.
- The server would make sure that all the messages applying to a particular
issue are correctly linked with In-Reply-To: headers to form a single
thread.
- Status of the bug could be expressed with mailbox it is in (backwards
compatible way) or some kind of tags (which would need to be supported by
the mail client -- I really think it's about time for something like
that).
- Other metainformation about the bug could be added as a special message
inserted at the begining of the thread, or added into the first message
- Than support for todo management could be improved in some mail clients.
It is not precondition for this kind of bug tracking to be useful and on
the other hand would be useful on it's own.
- It could even be done as another interface to an existing web-based BT,
though I would prefer if the web interface would not have to be running
then.
--
Jan 'Bulb' Hudec <bulb@ucw.cz>
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 8:37 ` Jan Hudec
2007-06-10 8:55 ` Martin Langhoff
@ 2007-06-10 22:07 ` Matthieu Moy
1 sibling, 0 replies; 46+ messages in thread
From: Matthieu Moy @ 2007-06-10 22:07 UTC (permalink / raw)
To: Jan Hudec; +Cc: Martin Langhoff, git
Jan Hudec <bulb@ucw.cz> writes:
> A related thing is Bazaar's "Bundle Buggy". It tracks patch submission rather
> than bugs, but it is roughly what I meant by the "mailing list integration"
> above. It "reads" the mailing list, watching for anything labeled [PATCH] or
> [BUNDLE]
Indeed, the bundle buggy is inspired from the "Bug goo" developed
earlier for GNU Arch. This one was watching mails labeled with [BUG]
on the mailing list.
I found the idea really good. Indeed, as a user, when I find a bug in
a piece of software, I often hesitate between using the bugtracker (in
which case my bug is often mostly ignored), or reporting it on the
mailing list (in which case, a long discussion can follow, at the end
of which everybody thinks that someone else will fix the bug, and no
one actually does). With the bug goo, the bugtracker becomes the
mailing list, with all the advantage of it (discussions easy to
follow, threaded, ...), and a few additions, the biggest of which is
status tracking, in particular, the ability to list all unsolved bugs.
Unfortunately, as most of the GNU Arch stuff, it started with good
ideas, but was abandonned before it started being interesting :-\.
--
Matthieu
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 6:59 ` Martin Langhoff
2007-06-10 7:35 ` Junio C Hamano
2007-06-10 8:37 ` Jan Hudec
@ 2007-06-10 13:34 ` Pierre Habouzit
2007-06-10 13:43 ` Pierre Habouzit
2007-06-10 14:02 ` Pierre Habouzit
4 siblings, 0 replies; 46+ messages in thread
From: Pierre Habouzit @ 2007-06-10 13:34 UTC (permalink / raw)
To: git
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > 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/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proven wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 6:59 ` Martin Langhoff
` (2 preceding siblings ...)
2007-06-10 13:34 ` Pierre Habouzit
@ 2007-06-10 13:43 ` Pierre Habouzit
2007-06-10 14:02 ` Pierre Habouzit
4 siblings, 0 replies; 46+ messages in thread
From: Pierre Habouzit @ 2007-06-10 13:43 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 12977 bytes --]
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > 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/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proven wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread
* Re: [RFC] git integrated bugtracking
2007-06-10 6:59 ` Martin Langhoff
` (3 preceding siblings ...)
2007-06-10 13:43 ` Pierre Habouzit
@ 2007-06-10 14:02 ` Pierre Habouzit
4 siblings, 0 replies; 46+ messages in thread
From: Pierre Habouzit @ 2007-06-10 14:02 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 12973 bytes --]
On Sun, Jun 10, 2007 at 06:59:13PM +1200, Martin Langhoff wrote:
> On 6/10/07, Pierre Habouzit <madcoder@debian.org> wrote:
> > 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/
>
> Call me a fool, but writing a <new> bugtracker looks like a
> boil-the-oceans scheme.
Sure, what if I like it anyway ?
> Adding git & gitweb support to traq, bugzilla, mantis, gforge, etc is
> what is going to make the difference. Most of those have already the
> ability to "link" to one or more commits -- after the commits are done
> and in GIT.
Sure, you can do that and still inherit from the many downsides of
those tools: central, needs another separate tool to work with, and a
tool that nowadays tends to eat 500Mb of your memory if you take the
most hype implementation of it (Yes I'm describing a web browser), that
is slow like hell (because yes, there is many clients at the same time
on the central server, that is overloaded like hell), and so on.
You can like central web UIs, your choice. And I suppose if grit works
well, there will be one at some point.
> So you can tell your bugtracker
> - which commit fixed it -- usually auto-linked if you include the
> bugnumber in the commit message
> - which commit added the test -- auto linked as above
> - which commit introduced the bug -- if such thing exists and someone
> digs it up
yeah, that is what bugtrackers already do. Though, that's of no use
for release managers. What is useful is what people call "milestones" in
trac e.g., meaning a set of bugs that has been flagged as needing to be
fixed. And what a release manager need is a tool to deal with this set
of bugs as a whole.
That's the same argument that Linus has against per-file tracking.
Also atm when you e.g. backport a patch that fixes this or this bug,
you're no BTS helps you tagging the bug as fixed in that branch as well.
Not to mention that BTS I know do not make any use of the commits DAG.
And for a very good reason, there is no real DAG in many existing tools
(svn, cvs, ...).
> If the bugtracker can also auto-link things that look committish in
> text entered by users (someone might write "bisect sez that f345e is
> to blame"), with tooltips indicating in which heads those commits
> resides (like gitk does), then it's just gorgeous.
that's not up to the BTS tool to do that, it's way to high level. It's
up to the importing filters/hooks that will parse the associated ML, and
that would translate that to useful low level BTS commands.
> And definitely, if you use git as an alibi to write a new bugtracker,
> don't use the "works only with git" as a feature. It should work with
> as many SCMs as possible.
No it should not, because it can't. I want the distributed and
Bug status spanning-DAGS be a central feature. So that means that this
tool can only work on top of SCMs that support that. ttbomk git, hg,
_maybe_ bzr fit the description. I only know the former, but I really
plan to write the tool in a way that the underlying SCM does not matters
_too_ much. Maybe I'll fail. Honestly, I don't really care (yet ?).
> OTOH, that's just me, I'm lazy and like to work on already-successful
> projects that are 99% there for my needs (and where I can add that
> 1%).
You're a lucky guy. All bug trackers I've used suck a way or another,
that impedes my workflow a lot. Let's cite a couple:
* bugzilla: takes more from the -zilla than from the BTS side. It's
huge, monstruous, slow (have ever used glibc's bugzilla ? it has
maybe 5k bugs, it's slow like if it ran on an Atari ST), complex,
the mail gateway suck hard, it's completely unusable for me. Believe
me, I've packaged KDE for 2 years in Debian, now am in the glibc
team. Every single day I have to work on this horrible tool is a
PITA.
* flyspray: I've been upstream for a short time. Visually nice, good
to work with, UI is great. Integration totally suck, worthless.
Can't use mails either, needs a Web Browser -> useless. The same
holds for mantis, roundup and a lot of other friends.
* debbugs: oh yeah there is a mail interface. So slow that you have to
wait up to 15 minutes to see your command be taken into account. And
when you have to deal with dozens of bugs (Yes I've done that on a
regular basis) you _have_ sometimes to wait for the answer to come
back (because you need an ID that will be in there e.g.) to continue
your work. That is unacceptable, you pass most of your time waiting.
Moreover sometimes you made an error in your commands, so you also
need to parse the anwer ... one day later because "immediateley when
you still remembered what this was about" is not an option.
Unacceptable again. The plus: it uses mboxes, hence is worthwile in
a hacking environment, it fits the workflow well.
* trac: very very very nice tool. I mean it. We use it at work, where
I have to suffer svn (through git-svn though). It's really nice (did
I repeat myself ?). THough, it's on top of svn, and you can't use
the Bugs informations from your repository. You can't say: I'm
backporting that patch into that branch. Now what affects this
branch please ? Trac can't answer that (and ttbomk now BTS really
can anyway, except Debian's debbugs instance, and it's somehow
limited). That is a question a release manager takes 80% of his time
to ask. I hope grit can take back to the 0.01% of his time, which is
still too much.
On Sun, Jun 10, 2007 at 08:55:21PM +1200, Martin Langhoff wrote:
> On 6/10/07, Jan Hudec <bulb@ucw.cz> wrote:
> >I don't know about any *distributed* bug tracker, which is the point
> >here.
>
> As an end user, I suspect I _don't_ want to have to report a bug in a
> distributed bug tracker ;-)
I trol^Wdiscuss everyday on debian's channel with friends that tell
that svn is the best tool ever, and that they would never ever use a
distributed SCM because it's too hard to understand. Your call.
> > We have several distributed version control tools, but no other
> > distributed tools for the other tasks in configuration management.
>
> Bugtrackers are co-owned by developers, users and (where they exist)
> project managers.
That's exactly why distributed rock. Because everyone could _really_
own _his_ bugtracker. This solves the same range of ACLish issues git
solves with respect to the code.
> > - Distributed version control is designed to decrease the workload of
> > the central maintainer(s) while keeping him in control. But with
> > centralized
>
> And to provide a single place for users to report a problem and track
> its status.
Why wouldn't it exist a "public reporting interface"-branch ? that
would be the same purpose as the mainline ~linus/linux2.6.git tree. And
you can build/instanciate your beloved web UI on top of that, and people
would just have to pull from there. What a shock, it's easy !
> > If it uses git as it's database, which it probably will,
>
> Well - hmmm. Git's database is great at tracking _content identity_.
> But a bug's content identity (description+comments+status) changes all
> the time. I don't think it's naturally a good match.
Oh, because the code never changes. Doh, how stupid I am :)
No, really, you name your bug after the sha hash of the first report,
I think that's pretty obvious. That gives you a bug name. Then you ask
git for "what's the current sha for this bug in the tip of the BTS
branch", then you ask "so now what this new sha is pointing to in the
code". That's a small indirection that I suppose is bearable.
> > Yes. But for many people current bug tracking tools do NOT work 99%.
>
> Hmmm. I agree in that "does not work disconnected" is a big issue with
> web tools, but debbugs works disconnected, and is good. Git's
> bugtracker (git@vger) works disconnected too ;-) And googlegears might
> help the rest of us. Is there any other problem with current BTs?
It's not integrated with the workflow. And sorry, but git@vger (or
workse lkml@vger).. it does not work. Maybe for git it does because the
flow is still human manageable, and that it seems junio has enough time
for it. But for the kernel ? please. You should read Bastian Blank
frustration about regressions and nobody tracking them. Know why ?
because there is no tool that is well known and well integrated in the
workflow. There is a long rant against kernel.org's bugzilla, you should
read it as well. It's not really instructive (at least there wasn't
anything new for me in it, I was already bought to many arguments in
there). But you'll see the world isn't as rosa-lila you think it is.
On Sun, Jun 10, 2007 at 08:38:03PM +1200, Martin Langhoff wrote:
> On 6/10/07, Junio C Hamano <gitster@pobox.com> wrote:
> > After looking at the above existing alternatives, some brave soul
> > might decide and say, "Hey, I can write something better in 2 weeks"
> > ;-).
I'm sure I could come up with something really better in say a
month... If I hadn't paid work to do too :)
> And "it's closely integrated with git" can actually be a misfeature.
> Cool if it's what gets you going, but not enough for world domination
> ;-)
It's a misfeature for you because you read it as "non portable".
That's a fair point. And like said, it may be extended to SCM's with the
same set of features I need to build it. But let's be honnest, I don't
care about a BTS that uses the smallest common set of features of SCM's.
Reading this list, you should know it's almost a void set. No, I think a
good BTS should make an excellent use of high level features of the SCM.
The real problem is, there is maybe 2 or 3 SCMs that have this set of
strong and good features. Too bad for the other, I can't work with them,
they suck hard, and I don't see why I should support bad practices
anyways.
(Yes I'm also a guy with strong opinions too, it's not really
restricted to Linus ;p)
> I agree it's useful, but I don't think it has any benefit having it in
> the SCM _at all_. Having them in the BT is a lot more flexible -- and
> the fact that git has stable commit IDs makes it easier to integrate
> in a BT; as the BT can spot that the commit fixing bug 123 is now
> merged into head ZZ as well as head YYY.
If you do that you loose:
* fastness, and I don't want to work with debbugs anymore.
* distribution: Meaning that for _one_ project everybody needs to use
this central bugtracker. Whereas .oO(kernel) there is some projects
where the subcomponents are dealt with from very different teams,
very different way to release things, and they are interested with
their bugs, and their bugs only. They would prefer a very fast
interface to deal with their 1k bugs, and not worry about the 100k
the rest of the project has.
Branching bugs also makes sense you know ?
> Now, to rule the world, BTs gain a lot more from being able to
> integrate with different SCMs,
You are the one saying it. I beg to differ.
> automated test systems (like tinderbox), MTAs (debbugs), wikis (traq),
> stats tracking for PHBs (bugzilla), etc. So loose coupling wins here,
> and git's SHA1s are great for that.
IMHO a BTS is a _low_ level tool. that's the road git took, I
sometimes describe the plumbing git commands as the "Assembler" of the
SCM world to friends when I talk to them about git. That's really the
best way to implement a thing: have a small small set of rock solid,
well designed tools, and build the others as porcelains with them.
Testing is a high level tool. I don't need to support them, I need to
have exactly the low level querying rocket-fast query interfaces so that
integration scripts are at most 100 lines long.
> And at git's end we can get the smooth integration using/abusing that
> loose coupling strategy. So if git-log/gitk/qgit grow some hooks that
> can be used to perform a lookup... I can think of a perl script that
> gets events for each SHA1 that git-rev-list produces and returns one
> bug number, url and title (or more than one) that then git-log / gitk
> / qgit / annotate can use to further "decorate" the commit info in a
> similar style to what gitk is doing now with head names in each
> commit.
>
> Would that fit your vision of a nicely integrated tracker?
Honestly ? No, because that would be horribly slow (but I'd love to be
proved wrong).
Cheers,
--
·O· Pierre Habouzit
··O madcoder@debian.org
OOO http://www.madism.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 46+ messages in thread