[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ignoring bugs with no maintainer (Re: Removal of emacs23 from unstable/testing)



On Sb, 10 mai 14, 18:56:24, Holger Levsen wrote:
> 
> Having these bugs rott in a corner of the BTS almost nobody ever looks at is a 
> disservice to our users. IMO there should be 0 bugs open against 
> https://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=

To also bring some numbers to this:

$ unk-pkg count any all
1066
 
> Oh, and emacs bugs "only" make up 20% of those bugs... IMO all should 
> be dealt with, i just picked emacs as the emacs23 removal announce 
> mail reminded me...

$ unk-pkg count any open
1043
$ unk-pkg count emacs open
255

Last time someone (Bcc'd) tried to tackle these (admittedly without 
contacting the maintainer in advance) the contributor was prevented from 
doing so and was requested to either check them against emacs24 or leave 
them alone. It's not hard to imagine what happened...

For anyone wishing to work on these I attach the script I have been 
using.

Kind regards,
Andrei
-- 
http://wiki.debian.org/FAQsFromDebianUser
Offtopic discussions among Debian users and developers:
http://lists.alioth.debian.org/mailman/listinfo/d-community-offtopic
http://nuvreauspam.ro/gpg-transition.txt
#!/bin/sh -e
# script to handle bugs with no maintainer
#
# Needs:
# w3m - to retrieve the webpage with bugs
# mail - to be able to close bugs
#
# Suggested workflow would be:
#
# $ unk-pkg list any all
#
# to get a full list of bugs and look for patterns
#
# unk-pkg list <pkg-pattern> open
#
# this should provide you with a list of bugs for a package/pattern to
# decide on further action, contact maintainers, etc.
#
# unk-pkg list <pkg-pattern> patch
#
# these bugs contain patches, you might want to investigate
# whether they are still valuable
#
# unk-pkg close <pkg-pattern> open
#
# assuming you already created the message body (after discussing
# with maintainers) as $PKG.mail this will send a test message
#
# To: $bugs-done@localhost
# Bcc: $USER@localhost
#
# add 'notest' to send a real -done message to all bugs,
# Bcc: debian-qa@lists.debian.org

BTS_URL="http://bugs.debian.org/cgi-bin/pkgreport.cgi?maint=";
DUMP="$(date +%F).dump"
ACTION="$1"
PKG="$2"
CRITERIA="$3"
CRIT_RE="\[.*\]"
BTS="bugs.debian.org"
QA="debian-qa@lists.debian.org"


if [ "any" = "$PKG" ];
then
    PKG_RE="^.*#[[:digit:]].*\[.*\].*\[.*\]"
else
    PKG_RE="^.*#[[:digit:]].*\[.*\].*\[.*${PKG}.*\]"
fi


if ! [ "notest" = "$4" ];
then
    BTS="localhost"
    QA="$USER@localhost"
fi

do_get_dump() {

if ! [ -f $DUMP ];
then
    w3m -dump -cols 200 "$BTS_URL" > "$DUMP"
fi

}

do_filter() {

    do_get_dump
    grep "$PKG_RE" $DUMP | grep $COUNT $MATCH $CRIT_RE

}

do_get_bugs() {

    do_filter | sed -e 's/^.*#\([[:digit:]]*\)[[:space:]]\[.*$/\1/'

}

do_close () {

if [ "any" = "$PKG" ];
then
    echo "You are trying to close too many bugs, try specific packages (or patterns) first"
    exit 1
fi

if ! [ -f $PKG.mail ];
then
    echo "Missing file containing message body"
    exit 1
fi

for BUG_NR in `do_get_bugs`;
do
    BUGS_DONE="$BUG_NR-done@$BTS $BUGS_DONE"
done

cat $PKG.mail | mail -E -s "Closing old bugs filed against $PKG (or related packages)" \
    -b $QA \
    $BUGS_DONE

}

do_usage() {
    echo "Usage: $0 <command> <pkg-pattern> <criteria>"
    exit 1
}

if [ x"$1" = "x" ];
then
    do_usage
fi

case "$CRITERIA" in
    open)
        CRIT_RE="\[.*|.*|.*☺.*\]"
        MATCH="--invert-match"
        ;;
    closed)
        if [ "close" = "$1" ];
        then
            echo "You are trying to close already closed bugs..."
            exit 1
        fi
        CRIT_RE="\[.*|.*|.*☺.*\]"
        ;;
    patch)
        if [ "close" = "$1" ];
        then
            echo "Closing bugs with patches?"
            exit 1
        fi
        CRIT_RE="\[.*|+|.*\]"
        ;;
    all)
        if [ "close" = "$1" ];
        then
            echo "Closing all bugs? Some may contain patches or may be closed already."
            exit 1
        fi
        ;;
    *)
        if ! [ "refresh" = "$1" ];
        then
            echo "Criteria must be one of open, closed, patch, all."
            do_usage
        fi
        ;;
esac

case "$ACTION" in
    refresh)
        # get an updated list of bugs
        if [ -f $DUMP ];
        then
            rm -f $DUMP
        fi
        do_get_dump
        COUNT=--count
        CRITERIA="all"
        echo "Total bugs: `do_filter`"
        ;;
    list)
        # list bugs filtered by some criteria
        do_filter
        ;;
    count)
        # same as list, but display count only
        COUNT="--count"
        do_filter
        ;;
    bugs)
        # display just the bug numbers
        do_get_bugs
        ;;
    close)
        # do mass close (mail to -done) using prepared template
        do_close
        ;;
    *)
        do_usage
    ;;
esac

Attachment: signature.asc
Description: Digital signature


Reply to: