On Tue, Jan 08, 2019 at 07:18:07PM +0100, Tim Düsterhus wrote:
> Willy,
> 
> Am 08.01.19 um 18:30 schrieb Willy Tarreau:
> > I totally agree. This is the tool I'm missing the most currently. I'm
> > not aware of a *good* and manageable issue tracker. Having a status for
> > a bug per branch most likely eliminates most of them...
> 
> I'm not sure this is required. The bugfixes naturally land in the
> current development repository and have the affected branches in their
> commit message. They naturally "trickle down" to the maintained
> branches. So if the issue is marked as fixed the fix will *eventually*
> appear in the stable branch of the reporter.

Except that the "naturally" part here is manually performed by someone,
and an issue tracker is nothing more than an organized todo list, which
*is* useful to remind that you missed some backports. It regularly happens
to us, like when the safety of some fixes is not certain and we prefer to
let them run for a while in the most recent versions before backporting
them to older branches. This is exactly where an issue tracker is needed,
to remind us that these fixes are still needed in older branches.

If the issue tracker only tracks issues related to the most recent branch,
it will only solve the problem for this branch. For example, Veiko Kukk
reported in November that compression in 1.7.11 was broken again. How do
I know this ? Just because I've added an entry for this in my TODO file.
This bug is apparently a failed backport, so it requires that the original
bug is reopened and that any backport attempt to an older version is paused.
Without having cross-branches indications, you can't reliably do this. There
is a significant risk that the faulty fix gets backported to 1.6 before
anyone qualifies the issue.

This can possibly be dealt with using labels, I'm not sure how convenient
it will be.

> In my experience non-issues (a.k.a. RTFM) are usually easy to detect
> when reading through the explanation.

As long as there is manpower to clear them up it's OK, but this means
that some of us will count on you guys for this. With e-mails I don't
even need to do anything to stop reading a faulty bug report. The mail
is marked read once I glance over it, and I don't see it anymore. I
can also mark a whole thread as read when I see that any of the people
I trust here on the list start to respond. When reading an issue tracker,
the same issues pop up until I've done something with them. This makes a
huge difference. This is why I've always been highly concerned with the
risk of pollution.

> >> What you are describing basically is a unmaintained issue tracker,
> >> which is of course useless.
> >>
> >> But keeping people from filing new issues is the wrong approach to
> >> this, imho. Proper templating, triaging and correct labeling of the
> >> issues is the difference between a useless and a useful issue tracker
> >> from my point of view.
> > 
> > I do have strong doubts but I'm open to trying :-)
> 
> I have to agree with Lukas here. Proper triaging is key here. And this
> is no different to email. You have to read email to decide what to do.

Yes but you don't have to act on them to stop seeing them ;-)

> And you have to read the issue to decide what to do.

Most of the time many of us will conclude they have nothing to do because
they're not the best people for this. When you have 10 people responsible
for different areas, on average 10% of the issues will be of interest to
them, and I want to be sure that we will not end up with developers looking
at the issue tracker and constantly seeing stuff that's not for them without
an easy way to definitely skip it and focus on their stuff. Again with
e-mail it's easy because without doing anything you don't see the same
e-mail again. Here if you have to label or ack all the stuff that's not
for you just in order not to see it again, it's inefficient.

But it can likely be improved with proper triaging.

> Labels in the issue tracker are like folders in your mailbox and the
> issue tracker itself is like a public mailbox.

That's exactly the problem. With e-mails, there's one state per reader,
here there's a single state that everyone has to share.

> I'd throw my hat into the ring as well. I maintain a few Open Source
> projects myself (though not of the size and importance of haproxy) and
> actually use the GitHub issue tracker.

Thanks. From what I've been used to see on github, very very few projects
do care about maintenance. Most of them are rolling releases. It actually
took me a very long time to try to figure one project with multiple
maintenance branches to see how they dealt with issues, and the few I
found by then had disabled issues, which could have already been a hint
about its suitability to the task. Just a few examples :

   Apache  : https://github.com/apache/httpd
   Squid   : https://github.com/squid-cache/squid
   Nginx   : https://github.com/nginx/nginx
   Linux   : https://github.com/torvalds/linux
   FreeBSD : https://github.com/freebsd/freebsd
   glibc   : https://github.com/bminor/glibc
   Gcc     : https://github.com/gcc-mirror/gcc
   binutils: https://github.com/bminor/binutils-gdb
   Xorg    : https://github.com/freedesktop/xorg-xserver
   OpenSSH : https://github.com/openssh/openssh-portable

You'll note that for many of them the repository is only a mirror by
the way, so that's another hint.

OpenSSL might be the only exception I could find :

  https://github.com/openssl/openssl/issues

It doesn't mean it's true for all projects, but there are not that many
projects taking care of maintenance, those above being the first ones that
come to mind, and surprisingly, except for one, they're in the same situation
as we are. I think they can't all be wrong :-)

Really github is cool for "develop fast, deploy fast" type of projects,
some of those deployed using "curl | sudo sh". In this model, issues are
more about "I just found a bug in latest version", "now it's fixed, pull
again", "confirmed".

I'm not saying it cannot be adapted to a more serious model taking care
of stable branches like the various projects above, I'm just saying that
it's easy to overlook its limitations which can make it more painful to
use in such a context, and that likely the projects above didn't figure
how to adapt it either.

> > Thanks a lot for these links, they are very informative. This utility
> > doesn't "yet" support cross-branches, but it's said that bugseverywhere
> > does. But bugseverywhere claims that its value is in keeping a hard
> > relation between bug's state and the fix in the tree, which precisely
> > is the wrong way to do it for me : I strongly prefer that the bug tracker
> > is never fully up to date regarding the resolved status for a branch than
> > having it believe the branch is fixed because it doesn't know that this
> > branch requires an extra patch. An apparently unresolved bug will be
> > noticed by the next person trying to resolve it. It's how it really
> > works with most developers and bug trackers in real life. I had too
> > quick a look at the other ones for now.
> 
> Please don't opt for some obscure system. The biggest value of a public
> issue tracker to me is that people are actually are able to research
> whether their issue is already known / a duplicate and possible
> workarounds.

I agree and this is why I've been actively looking for such a public
system as well.

> The mail archive is not really accessible.

I know that it's mostly usable by insiders, and occasionally by outsiders,
but it's not convenient to search for an issue if you don't have your local
archives. And the repeated reports for certain old bugs we've seen in the
past obviously indicates that reporters didn't find the previous reports
before posting theirs.

> > With that said at the moment we don't have anything and the situation is
> > not better than having a suboptimal tool.
> 
> I agree.

To be totally transparent, I really think the tool is not well suited and
that its main value is its large user base. But I also know that with you
and Lukas suggesting to use it, you both will deploy a lot of efforts to
build something good to prove me I'm wrong, possibly resulting in a nice
solution in the end. And if some people are willing to invest time
building something, it would be unfair from me to try to steer their
technical choices. Also, Lukas already managed to use the API to develop
some tools, maybe this will be welcome to add some automated state
transitions at some point.

So unless anyone has a better idea for now, and if you're feeling brave
enough, let's give it a try.

Cheers,
Willy

Reply via email to