Scroll to navigation

Debbugs::Bugs(3pm) User Contributed Perl Documentation Debbugs::Bugs(3pm)

NAME

Debbugs::Bugs -- Bug selection routines for debbugs

SYNOPSIS

use Debbugs::Bugs qw(get_bugs);

DESCRIPTION

This module is a replacement for all of the various methods of selecting different types of bugs.

It implements a single function, get_bugs, which defines the master interface for selecting bugs.

It attempts to use subsidiary functions to actually do the selection, in the order specified in the configuration files. [Unless you're insane, they should be in order from fastest (and often most incomplete) to slowest (and most complete).]

BUGS

FUNCTIONS

get_bugs

     get_bugs()

Parameters

The following parameters can either be a single scalar or a reference to an array. The parameters are ANDed together, and the elements of arrayrefs are a parameter are ORed. Future versions of this may allow for limited regular expressions, and/or more complex expressions.

Special options

The following options are special options used to modulate how the searches are performed.

Subsidiary routines

All subsidiary routines get passed exactly the same set of options as get_bugs. If for some reason they are unable to handle the options passed (for example, they don't have the right type of index for the type of selection) they should die as early as possible. [Using Params::Validate and/or die when files don't exist makes this fairly trivial.]

This function will then immediately move on to the next subroutine, giving it the same arguments.

function

This option allows you to provide an arbitrary function which will be given the information in the index.db file. This will be super, super slow, so only do this if there's no other way to write the search.

You'll be given a list (which you can turn into a hash) like the following:

 (pkg => ['a','b'], # may be a scalar (most common)
  bug => 1234,
  status => 'pending',
  submitter => 'boo@baz.com',
  severity => 'serious',
  tags => ['a','b','c'], # may be an empty arrayref
 )

The function should return 1 if the bug should be included; 0 if the bug should not.

count_bugs

     count_bugs(function => sub {...})

Uses a subroutine to classify bugs into categories and return the number of bugs which fall into those categories

newest_bug

     my $bug = newest_bug();

Returns the bug number of the newest bug, which is nextnumber-1.

bug_filter

     bug_filter

Allows filtering bugs on commonly used criteria

get_bugs_by_idx

This routine uses the by-$index.idx indicies to try to speed up searches.

get_bugs_flatfile

This is the fallback search routine. It should be able to complete all searches. [Or at least, that's the idea.]

PRIVATE FUNCTIONS

__handle_pkg_src_and_maint

     my @packages = __handle_pkg_src_and_maint(map {exists $param{$_}?($_,$param{$_}):()}
                                               qw(package src maint)
                                              );

Turn package/src/maint into a list of packages

2024-11-12 perl v5.40.0