bitesize, doc/bitesize.1: add script to tag a bug as bitesize and add a

comment that you are willing to help with fixing the bug.
This commit is contained in:
Stefano Rivera 2011-05-10 14:55:59 +02:00
commit cf40e7bccf
6 changed files with 143 additions and 1 deletions

78
bitesize Executable file
View File

@ -0,0 +1,78 @@
#!/usr/bin/python
"""Add 'bitesize' tag to bugs and add a comment."""
# Copyright (c) 2011 Canonical Ltd.
#
# bitesize is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3, or (at your option) any
# later version.
#
# bitesize is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with bitesize; see the file COPYING. If not, write to the Free
# Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
# 02110-1301, USA.
#
# Authors:
# Daniel Holbach <daniel.holbach@canonical.com>
import sys
from optparse import OptionParser
from launchpadlib.launchpad import Launchpad
from launchpadlib.errors import HTTPError
from ubuntutools.logger import Logger
from ubuntutools.config import UDTConfig
def error_out(msg):
Logger.error(msg)
sys.exit(1)
def main():
usage = "Usage: %prog <bug number>"
opt_parser = OptionParser(usage)
opt_parser.add_option("-l", "--lpinstance", metavar="INSTANCE",
help="Launchpad instance to connect to "
"(default: production)",
dest="lpinstance", default=None)
opt_parser.add_option("--no-conf",
help="Don't read config files or "
"environment variables.",
dest="no_conf", default=False, action="store_true")
(options, args) = opt_parser.parse_args()
config = UDTConfig(options.no_conf)
if options.lpinstance is None:
options.lpinstance = config.get_value("LPINSTANCE")
if len(args) < 1:
opt_parser.error("Need at least one bug number.")
launchpad = Launchpad.login_with("ubuntu-dev-tools", options.lpinstance)
if launchpad is None:
error_out("Couldn't authenticate to Launchpad.")
# check that the new main bug isn't a duplicate
try:
bug = launchpad.bugs[args[0]]
except HTTPError, error:
if error.response.status == 401:
error_out("E: Don't have enough permissions to access bug %s" % args[0])
error_out(error.content)
else:
raise
if 'bitesize' not in bug.tags:
bug.tags += ['bitesize']
content = """I'm marking this bug as 'bitesize' as it looks like an issue
that is easy to fix and suitable for newcomers in Ubuntu development. If you
need any help with fixing it, talk to me (https://launchpad.net/~%s) about
it.""" % (launchpad.me.name)
bug.newMessage(content=content, subject="bitesize bug")
bug.lp_save()
if __name__ == '__main__':
main()

7
debian/changelog vendored
View File

@ -1,5 +1,6 @@
ubuntu-dev-tools (0.124) UNRELEASED; urgency=low
[ Stefano Rivera ]
* mk-sbuild:
- Disable daemons with a policy-rc.d script (like pbuilder does)
- Move package installation after option parsing.
@ -12,7 +13,11 @@ ubuntu-dev-tools (0.124) UNRELEASED; urgency=low
code name.
- Support Debian experimental.
-- Stefano Rivera <stefanor@debian.org> Sun, 24 Apr 2011 20:35:51 +0200
[ Daniel Holbach ]
* bitesize, doc/bitesize.1: add script to tag a bug as bitesize and add a
comment that you are willing to help with fixing the bug.
-- Daniel Holbach <daniel.holbach@ubuntu.com> Mon, 09 May 2011 14:33:48 +0200
ubuntu-dev-tools (0.122) unstable; urgency=low

2
debian/control vendored
View File

@ -66,6 +66,8 @@ Description: useful tools for Ubuntu developers
.
- 404main - used to check what components a package's deps are in, for
doing a main inclusion report for example.
- bitesize - add the 'bitesize' tag to a bug and comment that you are
willing to help fix it.
- check-mir - check support status of build/binary dependencies
- check-symbols - will compare and give you a diff of the exported symbols of
all .so files in a binary package.

2
debian/copyright vendored
View File

@ -86,6 +86,7 @@ License: GPL-2+
version 2 can be found in the /usr/share/common-licenses/GPL-2 file.
Files: ack-sync
doc/bitesize.1
doc/edit-patch.1
doc/get-branches.1
doc/grab-attachments.1
@ -96,6 +97,7 @@ Files: ack-sync
doc/merge-changelog.1
doc/setup-packaging-environment.1
doc/syncpackage.1
bitesize
edit-patch
get-branches
grab-attachments

54
doc/bitesize.1 Normal file
View File

@ -0,0 +1,54 @@
.TH bitesize "1" "May 9 2010" "ubuntu-dev-tools"
.SH NAME
bitesize \- Add \fBbitesize\fR tag to bugs and add a comment.
.SH SYNOPSIS
.B bitesize \fR<\fIbug number\fR>
.br
.B bitesize \-\-help
.SH DESCRIPTION
\fBbitesize\fR adds a bitesize tag to the bug, if it's not there yet. It
also adds a comment to the bug indicating that you are willing to help with
fixing it.
It checks for permission to operate on a given bug first,
then perform required tasks on Launchpad.
.SH OPTIONS
Listed below are the command line options for \fBbitesize\fR:
.TP
.BR \-h ", " \-\-help
Display a help message and exit.
.TP
.B \-l \fIINSTANCE\fR, \fB\-\-lpinstance\fR=\fIINSTANCE\fR
Use the specified instance of Launchpad (e.g. "staging"), instead of
the default of "production".
.TP
.B \-\-no\-conf
Do not read any configuration files, or configuration from environment
variables.
.SH ENVIRONMENT
All of the \fBCONFIGURATION VARIABLES\fR below are also supported as
environment variables.
Variables in the environment take precedence to those in configuration
files.
.SH CONFIGURATION VARIABLES
The following variables can be set in the environment or in
.BR ubuntu\-dev\-tools (5)
configuration files.
In each case, the script\-specific variable takes precedence over the
package\-wide variable.
.TP
.BR BITESIZE_LPINSTANCE ", " UBUNTUTOOLS_LPINSTANCE
The default value for \fB--lpinstance\fR.
.SH SEE ALSO
.BR ubuntu\-dev\-tools (5)
.SH AUTHORS
\fBbitesize\fR and this manual page were written by Daniel Holbach
<daniel.holbach@canonical.com>.
.PP
Both are released under the terms of the GNU General Public License, version 3.

View File

@ -15,6 +15,7 @@ if os.path.exists(changelog):
scripts = ['404main',
'backportpackage',
'bitesize',
'check-mir',
'check-symbols',
'dch-repeat',