[Nix-dev] Some bug tracker experience and RFC on improvements

Luca Bruno lethalman88 at gmail.com
Mon Mar 16 10:28:30 CET 2015


On 16/03/2015 00:43, Austin Seipp wrote:
> Hi *,
>
> Over the past few days, while I've been waiting for things to compile,
> I've been casually triaging the NixOS pull request list and the actual
> bug list, adding labels to everything to categorize issues. I think
> all of the PRs open as of today are labeled, which is great. The first
> few pages of the bug list are also almost labeled, but I haven't gone
> much farther.
>
> I want to take a moment emphasize the importance of doing this, and
> some thoughts on improving it, based on my experience doing similar
> things for other projects. Please note, I'm talking almost exclusively
> about the 'nixpkgs' repository.
>
> As many of you may be aware of by now, GitHub has an issue tracker.
> It's integrated with the Pull Request capability. It's relatively
> simple by design. But this has some knock-on consequences - it has a
> relatively anemic ability to extend metadata (e.g. custom issue
> fields), and personally I've found the full-text search capabilities
> to be relatively poor. Their issue tracker is quite simple like I
> said, but what this means is that metadata is vitally important to
> triaging bugs and having maintainers get to them easily and in a
> timely manner.
>
> For example, I'm generally interested in all kernel bugs, and things
> like security bugs and issues so I can get CVEs fixed (I know, I
> haven't had much time for this recently.) But I only added the
> 'kernel' label just on Friday, I think!
I do something similar, e.g. finding update-package or new-package that
are not wip, not darwin and not haskell :P .
>
> Also, I want to know about all the bugs for the 15.05 release that
> need to be fixed, which are kernel/systemd bugs. And the ones that are
> critical priority, that haven't been fixed. And the ones that have
> been fixed, so we can add to the release notes. That way I know what
> to do about them.
>
> And, as I'm sure most of you are aware, GitHub's notification system
> is not very lean. If you 'watch' a repository, you get spammed for
> every update to it! This works OK for small projects where I do
> everything - it does not scale very nicely to more people, meaning in
> practice I have a GitHub filter in my email with hundreds of unread
> things for NixOS subsystems I don't maintain.
I like receiving notifications for every issue and PR currently.

>       There is a very clear warning at the top to read about how to
> contribute. This can have a quick note that says things like A)
> "Please label any bugs you file as you see fit" B) "Format your
> messages properly" C) "Brush your teeth before going to bed".
>
>       This doesn't guarantee people follow protocol, but it will
> hopefully remind people to file bugs following specific guidelines.
People can't label their own bugs, only collaborators can assign labels.

>
>      2) The current issue list is really, really confusing and
> haphazard. For example, there is a 'python' label but no 'perl' label,
> despite the fact I just labeled 5 perl PRs! And there's no 'systemd'
> label, or any label about, say, Xorg, the NixOS installer, etc etc. As
> well as no uniformity to color, either :) Also, labels for things like
> 'high' vs 'low' priority don't exist either (really, these should be
> first class concepts)
>
>       So, I'd recommend we take a play from the Rust people and handle
> GitHub's simpllistic tracker, and categorize all labels by a
> 'callsign' - a distinctive single letter - followed by the label name.
> For example, a reinvisioning of the current label list with some
> additions might look like:
>
>   "Blocker" issues/bugs:
>        B-low               -- Low priority
>        B-normal          -- (Default) normal priority
>        B-high              -- High priority
>        B-blocker         -- Blocking bug
>
>   "Infrastructure" issues/bugs:
>        I-security               -- Security updates
>        I-documentation     -- Documentation
>        I-mass-rebuild        -- Massive rebuild
>
>   "Language" issues/bugs:
>        L-python                -- Python packages
>        L-perl                     -- Perl packages
>        L-php                     -- PHP packages
>        L-haskell                -- Haskell packages
>        L-ruby                    -- Ruby packages
>
>   "Miscellaneous" issues/bugs:
>        M-rfc                     -- RFC (AKA 'feedback-requested')
>        M-wip                    -- Work-in-progress
>        M-question             -- Questions
>        M-meta                  -- Meta bugs for other issues.
>
>   "NixOS" issues/bugs:
>        N-installer              -- NixOS installer
>        N-systemd             -- systemd (NixOS only)
>        N-xorg                   -- Xorg/MESA/etc
>        N-gnome               -- GNOME packaging
>        N-KDE                  -- KDE packaging
>        N-kernel                -- Kernel packages
>
>   "Package" issues/bugs:
>        P-enhancement     -- Package enhancement, amendment, etc
>        P-update                -- Update version package
>        P-new                    -- New package
>
>  "System" issues/bugs:
>        S-linux                 -- (Default) Linux bugs
>        S-darwin              -- Darwin bugs
>        S-other                -- Other platforms
>
>   "Invalid/duplicate/wontfix" bugs
>        Z-einvalid               -- Invalid issue/bug; -EINVAL
>        Z-enotabug             -- Not a bug; -ENOTABUG
>        Z-ewontfix              -- Nope; -EWONTFIX
>        Z-duplicate             -- Duplicate issue
>
> Note that any issue may combine any of these together. It's also a
> much richer set of labels that express more constraints on a bug. A
> few things:
>
>   A) There is a specific 'M-meta' to describe metabugs. This should
> have no other labels associated, and should simply list other bugs in
> a checkbox-list specifying what's blocking them.
>
>   B) Labels are color-coated by *category*, not individually. This
> means that all 'P' labels are blue, all Z labels are grey, etc. This
> makes things visually clearer as to what they represent, and saves us
> recycling colors all the time.
In general I don't like too much granularity or too much tagging etc.,
but maybe we can try this for NixOS. I think I may like this.
> -----------------------------------
>
> Finally, there are some other associated things I was thinking of:
>
>   1) It would also be nice to adopt an official policy of maintainers
> for the source tree; e.g. who is responsible for certain NixOS or
> Nixpkgs subsystems, or Darwin/FreeBSD support, etc. This makes it
> easier to track down the right person, IMO.
IIRC there was a discussion already about maintainers of nixos modules.
I usually git blame the file, but probably adding a maintainers meta to
nixos modules is a good idea.
>
>   2) It would be nice if we could do a round-robin scheduling or
> something of maintainers who have to triage issues, even very very
> briefly. Every day one person is elected to just add labels to things,
> and set the ticket to a milestone. Some projects have done this in the
> past; in practice, I think if we had a random selection of people who
> could once a day add labels and set them, and we were diligent, most
> days would only see 5-10 issues needing labels. Which is not too hard;
> appropriate metadata is pretty easy to infer from just reading an
> issue.
I do it when I like to do it, already. So big "NO" to this kind job.



More information about the nix-dev mailing list