Hello community,
here is the log from the commit of package python-bugzillatools for
openSUSE:Factory checked in at 2015-04-30 11:50:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-bugzillatools (Old)
and /work/SRC/openSUSE:Factory/.python-bugzillatools.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-bugzillatools"
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-bugzillatools/python-bugzillatools.changes
2013-12-18 16:54:56.000000000 +0100
+++
/work/SRC/openSUSE:Factory/.python-bugzillatools.new/python-bugzillatools.changes
2015-04-30 11:50:58.000000000 +0200
@@ -1,0 +2,26 @@
+Tue Apr 28 20:56:37 UTC 2015 - [email protected]
+
+- update to version 0.5.5:
+ * comment command learned the --private option
+ * fix comment enumeration order
+ * fix string encoding error when invoking editor which could lead
+ to invalid XML being sent to server
+- additional changes from version 0.5.4:
+ * better error messages on missing server/account configuration
+ (#3)
+ * remove fields without name data from bug records (#5)
+ * make user and password configuration optional (#12)
+- additional changes from version 0.5.3.1:
+ * fix installation error
+- additional changes from version 0.5.3:
+ * editor: fix incorrect path to vi(1) when EDITOR is not defined
+ * create command: treat "defaulted" fields as mandatory in case
+ no default is set
+ * ui: fix some unicode encoding errors
+ * fields command: handle minor changes in result format in 4.4
+ * correct the name of the platform field
+ (platform -> rep_platform)
+ * expand bzr plugin documentation
+- replace README with README.rst: changed upstream
+
+-------------------------------------------------------------------
Old:
----
bugzillatools-0.5.2.tar.gz
New:
----
bugzillatools-0.5.5.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-bugzillatools.spec ++++++
--- /var/tmp/diff_new_pack.TxuZpo/_old 2015-04-30 11:50:58.000000000 +0200
+++ /var/tmp/diff_new_pack.TxuZpo/_new 2015-04-30 11:50:58.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package python-bugzillatools
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -13,15 +13,16 @@
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
+#
Name: python-bugzillatools
-Version: 0.5.2
+Version: 0.5.5
Release: 0
-License: GPL-3.0+
Summary: Bugzilla CLI client, XML-RPC binding and VCS plugins
-Url: https://github.com/frasertweedale/bugzillatools
+License: GPL-3.0+
Group: Development/Languages/Python
+Url: https://github.com/frasertweedale/bugzillatools
Source:
https://pypi.python.org/packages/source/b/bugzillatools/bugzillatools-%{version}.tar.gz
BuildRequires: python-devel
#Recommends: bzr
@@ -51,7 +52,7 @@
%files
%defattr(-,root,root,-)
-%doc CHANGES README gpl-3.0.txt
+%doc CHANGES README.rst gpl-3.0.txt
%{_bindir}/bugzilla
%{python_sitelib}/bzlib
%{python_sitelib}/bzrlib
++++++ bugzillatools-0.5.2.tar.gz -> bugzillatools-0.5.5.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/CHANGES
new/bugzillatools-0.5.5/CHANGES
--- old/bugzillatools-0.5.2/CHANGES 2012-02-07 13:06:24.000000000 +0100
+++ new/bugzillatools-0.5.5/CHANGES 2015-04-25 10:09:05.000000000 +0200
@@ -1,15 +1,66 @@
Changelog
=========
-bugzillatools-0.5.2 :: Tue Feb 7 2012
--------------------------------------
+v0.5.5 :: Sat Apr 25 2015
+-------------------------
+
+New features:
+
+- ``comment`` command learned the ``--private`` option
+ (contributed by Johannes Segitz)
+
+Bug fixes:
+
+- fix comment enumeration order
+- fix string encoding error when invoking editor which could lead to invalid
+ XML being sent to server
+
+
+v0.5.4 :: Sun Nov 23 2014
+-------------------------
+
+Bug fixes:
+
+- better error messages on missing server/account configuration (#3)
+- remove fields without name data from bug records (#5)
+- make user and password configuration optional (#12)
+
+
+v0.5.3.1 :: Sun Nov 24 2013
+---------------------------
+
+Bug fixes:
+
+- fix installation error
+
+
+v0.5.3 :: Sat Nov 23 2013
+-------------------------
+
+Bug fixes:
+
+- editor: fix incorrect path to vi(1) when EDITOR is not defined
+ (issues/1; reported by @taa1)
+- ``create`` command: treat "defaulted" fields as mandatory in case
+ no default is set (issues/2; reported by @taa1)
+- ui: fix some unicode encoding errors
+- ``fields`` command: handle minor changes in result format in 4.4
+- correct the name of the platform field (platform -> rep_platform)
+
+Other changes:
+
+- expand bzr plugin documentation
+
+
+v0.5.2 :: Tue Feb 7 2012
+------------------------
New features:
- ``priority`` command: set the priority of the given bugs.
- ``comment`` command learned the ``--which`` argument, for limiting
output to only the given comment(s).
-- ``search`` learned the --version argument.
+- ``search`` learned the ``--version`` argument.
- ``edit`` command: edit the product version of a bug.
Bug fixes:
@@ -22,16 +73,16 @@
information.
-bugzillatools-0.5.1 :: Tue Jan 10 2012
---------------------------------------
+v0.5.1 :: Tue Jan 10 2012
+-------------------------
Bug fixes:
- ``new`` command: fix assigned_to user matching.
-bugzillatools-0.5 :: Tue Jan 3 2012
------------------------------------
+v0.5 :: Tue Jan 3 2012
+----------------------
New features:
@@ -48,8 +99,8 @@
- ``time`` command: calculate the hours worked on a bug.
-bugzillatools-0.4 :: Wed Nov 30 2011
-------------------------------------
+v0.4 :: Wed Nov 30 2011
+-----------------------
New features:
@@ -76,8 +127,8 @@
``ConfigParser``). JSON configuration is no longer supported.
-bugzillatools-0.3 :: Sun Aug 7 2011
------------------------------------
+v0.3 :: Sun Aug 7 2011
+----------------------
New features:
@@ -102,8 +153,8 @@
contains only one item.
-bugzillatools-0.2.1 :: Tue Jul 12 2011
---------------------------------------
+v0.2.1 :: Tue Jul 12 2011
+-------------------------
Bug fixes:
@@ -112,8 +163,8 @@
- Add global arguments to subcommand ``--help`` output.
-bugzillatools-0.2 :: Sat Jul 2 2011
------------------------------------
+v0.2 :: Sat Jul 2 2011
+----------------------
New features:
@@ -149,16 +200,16 @@
(formerly ~/.bugrc).
-bugzillatools-0.1.2 :: Fri Jun 17 2011
---------------------------------------
+v0.1.2 :: Fri Jun 17 2011
+-------------------------
Bug fixes:
- Fix Bugzilla construction args
-bugzillatools-0.1.1 :: Tue Jun 14 2011
---------------------------------------
+v0.1.1 :: Tue Jun 14 2011
+-------------------------
New features:
@@ -170,8 +221,8 @@
- Handle server lookup failure when no servers are defined.
-bugzillatools-0.1 :: Sun Jun 12 2011
-------------------------------------
+v0.1 :: Sun Jun 12 2011
+-----------------------
New features:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/MANIFEST.in
new/bugzillatools-0.5.5/MANIFEST.in
--- old/bugzillatools-0.5.2/MANIFEST.in 2011-11-30 12:48:16.000000000 +0100
+++ new/bugzillatools-0.5.5/MANIFEST.in 2013-11-24 06:50:21.000000000 +0100
@@ -1,3 +1,4 @@
include MANIFEST.in
+include README.rst
include gpl-3.0.txt
include CHANGES
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/PKG-INFO
new/bugzillatools-0.5.5/PKG-INFO
--- old/bugzillatools-0.5.2/PKG-INFO 2012-02-07 13:13:34.000000000 +0100
+++ new/bugzillatools-0.5.5/PKG-INFO 2015-04-25 10:13:06.000000000 +0200
@@ -1,24 +1,52 @@
-Metadata-Version: 1.0
+Metadata-Version: 1.1
Name: bugzillatools
-Version: 0.5.2
+Version: 0.5.5
Summary: Bugzilla CLI client, XML-RPC binding and VCS plugins
-Home-page: https://gitorious.org/bugzillatools
+Home-page: https://github.com/frasertweedale/bugzillatools
Author: Fraser Tweedale
-Author-email: [email protected]
+Author-email: [email protected]
License: UNKNOWN
-Description: Bugzilla CLI client and XML-RPC binding and VCS plugins
- =======================================================
+Description: bugzillatools consists of the ``bugzilla`` CLI program and a
Python
+ library for interacting with the Bugzilla_ bug tracking system, and
+ plugins for version control systems that enable interaction with
+ Bugzilla installations.
- Provides a CLI program and Python library for interacting with the
- Bugzilla_ bug tracking system, and plugins for version control
- systems that enable interaction with Bugzilla installations.
+ The only dependency is Python_ 2.7 and bugzillatools works with
+ Bugzilla_ 4.0 or later where the XML-RPC feature is enabled.
- Requires Python_ 2.7 and works with Bugzilla_ 4.0 or later.
+ .. _Bugzilla: http://www.bugzilla.org/
+ .. _Python: http://python.org/
- The Bazaar_ plugin requires Bazaar 2.0 or later.
- ``bugzilla``
- ------------
+ Installation
+ ============
+
+ ::
+
+ # via pip
+ pip install bugzillatools # as superuser
+ -or-
+ pip install bugzillatools --user # user site-packages installation
+
+ # from source
+ python setup.py install # as superuser
+ -or-
+ python setup.py install --user # user site-packages installation
+
+ The ``bin/`` directory in your user base directory will need to appear
+ on the ``PATH`` if installing to user site-packages. This directory is
+ system dependent; see :pep:`370`.
+
+ If installing to user site-packages, some manual moving or symlinking
+ of files will be required for the Bazaar plugin to be detected by
+ Bazaar. :pep:`402` speaks to this shortcoming.
+
+
+ Components
+ ==========
+
+ ``bugzilla`` program
+ --------------------
Command-line application for interacting with Bugzilla servers.
The following subcommands are available:
@@ -52,6 +80,7 @@
interface. Supports bug creation, bug information and comment
retrieval, updating bug fields and appending comments to bugs.
+
Bazaar_ plugin
--------------
@@ -60,72 +89,43 @@
It also adds a comment to the bug that includes the branch location,
the
commit message, the list of changed files and other details about the
commit.
+ The Bazaar_ plugin requires Bazaar 2.0 or later.
.. _Bazaar: http://bazaar.canonical.com/
- .. _Bugzilla: http://www.bugzilla.org/
- .. _Python: http://python.org/
-
-
- Installation
- ============
-
- ::
-
- # via pip
- pip install bugzillatools # as superuser
- -or-
- pip install bugzillatools --user # user site-packages installation
-
- # via easy_install
- easy_install bugzillatools # as superuser
-
- # from source
- python setup.py install # as superuser
- -or-
- python setup.py install --user # user site-packages installation
-
- The ``bin/`` directory in your user base directory will need to appear
- on the ``PATH`` if installing to user site-packages. This directory is
- system dependent; see `PEP 370`__.
-
- __ http://www.python.org/dev/peps/pep-0370/
-
- If installing to user site-packages, some manual moving or symlinking
- of files will be required for the Bazaar plugin to be detected by
- Bazaar. `PEP 402`__ speaks to this shortcoming.
-
- __ http://www.python.org/dev/peps/pep-0402/
Configuration
=============
- A configuration file is looked for at ``~/.bugzillarc``. Its format is
- INI-like; the following configuration objects are understood:
+ ``.bugzillarc``
+ ---------------
+
+ The ``bugzilla`` program looks for its configuration in
+ ``~/.bugzillarc``, which uses ini-style configuration.
``core``
- --------
+ ^^^^^^^^
``server``
Name of the default server
``alias``
- ---------
+ ^^^^^^^^^
Option names are aliases; their values are the replacement.
``server.<name>``
- -----------------
+ ^^^^^^^^^^^^^^^^^
Define a server. bugzillatools supports multiple servers; the
``--server=<name>`` argument can be used to select a server.
``url``
- Base URL of the Bugzilla server.
+ Base URL of the Bugzilla server (mandatory)
``user``
- Bugzilla username.
+ Bugzilla username (optional)
``password``
- Bugzilla password
+ Bugzilla password (optional)
``assign_status``
When the ``assign`` command is used, if the current status of a bug
is in the first list, the status will be updated to the second item.
@@ -139,7 +139,7 @@
Example ``.bugzillarc``
- -----------------------
+ ^^^^^^^^^^^^^^^^^^^^^^^
::
@@ -157,18 +157,116 @@
confirm = status --status CONFIRMED
+ Bazaar plugin
+ -------------
+
+ To enable the Bazaar bugzillatools plugin, include following
+ configuration directives in either ``~/.bazaar/bazaar.conf`` (global
+ configuration) or ``.bzr/branch/branch.conf`` (within a branch)::
+
+ bugzilla_<server>_bugzillatools_enable = True
+ bugzilla_<server>_url = <bugzilla url>
+ bugzilla_<server>_status = RESOLVED
+ bugzilla_<server>_resolution = FIXED
+
+ Such a configuration assumes that a section ``[server.<server>]``
+ has been defined in your ``.bugzillarc``.
+
+ You can now set the status of bugs (using the status and resolution
+ defined in the Bazaar config) directly::
+
+ bzr commit -m 'fix bug 123' --fixes <server>:123
+
+
+ License
+ =======
+
+ bugzillatools 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 of the License, or
+ (at your option) any later version.
+
+
+ Contributing
+ ============
+
+ The bugzillatools source code is available from
+ https://github.com/frasertweedale/bugzillatools.
+
+ Bug reports, patches, feature requests, code review and
+ documentation are welcomed.
+
+ To submit a patch, please use ``git send-email`` or generate a pull
+ request. Write a `well formed commit message`_. If your patch is
+ nontrivial, update the copyright notice at the top of each changed
+ file.
+
+ .. _well formed commit message:
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
+
+
Changelog
=========
- bugzillatools-0.5.2 :: Tue Feb 7 2012
- -------------------------------------
+ v0.5.5 :: Sat Apr 25 2015
+ -------------------------
+
+ New features:
+
+ - ``comment`` command learned the ``--private`` option
+ (contributed by Johannes Segitz)
+
+ Bug fixes:
+
+ - fix comment enumeration order
+ - fix string encoding error when invoking editor which could lead to
invalid
+ XML being sent to server
+
+
+ v0.5.4 :: Sun Nov 23 2014
+ -------------------------
+
+ Bug fixes:
+
+ - better error messages on missing server/account configuration (#3)
+ - remove fields without name data from bug records (#5)
+ - make user and password configuration optional (#12)
+
+
+ v0.5.3.1 :: Sun Nov 24 2013
+ ---------------------------
+
+ Bug fixes:
+
+ - fix installation error
+
+
+ v0.5.3 :: Sat Nov 23 2013
+ -------------------------
+
+ Bug fixes:
+
+ - editor: fix incorrect path to vi(1) when EDITOR is not defined
+ (issues/1; reported by @taa1)
+ - ``create`` command: treat "defaulted" fields as mandatory in case
+ no default is set (issues/2; reported by @taa1)
+ - ui: fix some unicode encoding errors
+ - ``fields`` command: handle minor changes in result format in 4.4
+ - correct the name of the platform field (platform -> rep_platform)
+
+ Other changes:
+
+ - expand bzr plugin documentation
+
+
+ v0.5.2 :: Tue Feb 7 2012
+ ------------------------
New features:
- ``priority`` command: set the priority of the given bugs.
- ``comment`` command learned the ``--which`` argument, for limiting
output to only the given comment(s).
- - ``search`` learned the --version argument.
+ - ``search`` learned the ``--version`` argument.
- ``edit`` command: edit the product version of a bug.
Bug fixes:
@@ -181,16 +279,16 @@
information.
- bugzillatools-0.5.1 :: Tue Jan 10 2012
- --------------------------------------
+ v0.5.1 :: Tue Jan 10 2012
+ -------------------------
Bug fixes:
- ``new`` command: fix assigned_to user matching.
- bugzillatools-0.5 :: Tue Jan 3 2012
- -----------------------------------
+ v0.5 :: Tue Jan 3 2012
+ ----------------------
New features:
@@ -207,8 +305,8 @@
- ``time`` command: calculate the hours worked on a bug.
- bugzillatools-0.4 :: Wed Nov 30 2011
- ------------------------------------
+ v0.4 :: Wed Nov 30 2011
+ -----------------------
New features:
@@ -235,8 +333,8 @@
``ConfigParser``). JSON configuration is no longer supported.
- bugzillatools-0.3 :: Sun Aug 7 2011
- -----------------------------------
+ v0.3 :: Sun Aug 7 2011
+ ----------------------
New features:
@@ -261,8 +359,8 @@
contains only one item.
- bugzillatools-0.2.1 :: Tue Jul 12 2011
- --------------------------------------
+ v0.2.1 :: Tue Jul 12 2011
+ -------------------------
Bug fixes:
@@ -271,8 +369,8 @@
- Add global arguments to subcommand ``--help`` output.
- bugzillatools-0.2 :: Sat Jul 2 2011
- -----------------------------------
+ v0.2 :: Sat Jul 2 2011
+ ----------------------
New features:
@@ -308,16 +406,16 @@
(formerly ~/.bugrc).
- bugzillatools-0.1.2 :: Fri Jun 17 2011
- --------------------------------------
+ v0.1.2 :: Fri Jun 17 2011
+ -------------------------
Bug fixes:
- Fix Bugzilla construction args
- bugzillatools-0.1.1 :: Tue Jun 14 2011
- --------------------------------------
+ v0.1.1 :: Tue Jun 14 2011
+ -------------------------
New features:
@@ -329,19 +427,20 @@
- Handle server lookup failure when no servers are defined.
- bugzillatools-0.1 :: Sun Jun 12 2011
- ------------------------------------
+ v0.1 :: Sun Jun 12 2011
+ -----------------------
New features:
- First release of bugzillatools
Platform: UNKNOWN
-Classifier: Development Status :: 3 - Alpha
+Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
-Classifier: License :: OSI Approved :: GNU General Public License (GPL)
+Classifier: License :: OSI Approved :: GNU General Public License v3 or later
(GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Topic :: Software Development :: Bug Tracking
+Classifier: Topic :: Software Development :: Version Control
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/README
new/bugzillatools-0.5.5/README
--- old/bugzillatools-0.5.2/README 2012-02-07 12:55:01.000000000 +0100
+++ new/bugzillatools-0.5.5/README 1970-01-01 01:00:00.000000000 +0100
@@ -1,149 +0,0 @@
-Bugzilla CLI client and XML-RPC binding and VCS plugins
-=======================================================
-
-Provides a CLI program and Python library for interacting with the
-Bugzilla_ bug tracking system, and plugins for version control
-systems that enable interaction with Bugzilla installations.
-
-Requires Python_ 2.7 and works with Bugzilla_ 4.0 or later.
-
-The Bazaar_ plugin requires Bazaar 2.0 or later.
-
-``bugzilla``
-------------
-
-Command-line application for interacting with Bugzilla servers.
-The following subcommands are available:
-
-:assign: Assign bugs to the given user.
-:block: Show or update block list of given bugs.
-:cc: Show or update CC List.
-:comment: List comments or file a comment on the given bugs.
-:config: Show or update configuration.
-:depend: Show or update dependencies of given bugs.
-:desc: Show the description of the given bug(s).
-:dump: Print internal representation of bug data.
-:edit: Edit the given bugs.
-:fields: List valid values for bug fields.
-:help: Show help.
-:history: Show the history of the given bugs.
-:info: Show detailed information about the given bugs.
-:list: Show a one-line summary of the given bugs.
-:new: File a new bug.
-:priority: Set the priority on the given bugs.
-:products: List the products of a Bugzilla instance.
-:search: Search for bugs matching given criteria.
-:status: Set the status of the given bugs.
-:time: Show or adjust times and estimates for the given bugs.
-
-
-``bzlib``
----------
-
-Library providing access to Bugzilla instances through the XML-RPC
-interface. Supports bug creation, bug information and comment
-retrieval, updating bug fields and appending comments to bugs.
-
-Bazaar_ plugin
---------------
-
-This plugin, when enabled for Bugzilla bugtrackers, marks bugs fixed on
-those trackers when ``bzr commit`` is invoked with the ``--fixes`` argument.
-It also adds a comment to the bug that includes the branch location, the
-commit message, the list of changed files and other details about the commit.
-
-
-.. _Bazaar: http://bazaar.canonical.com/
-.. _Bugzilla: http://www.bugzilla.org/
-.. _Python: http://python.org/
-
-
-Installation
-============
-
-::
-
- # via pip
- pip install bugzillatools # as superuser
- -or-
- pip install bugzillatools --user # user site-packages installation
-
- # via easy_install
- easy_install bugzillatools # as superuser
-
- # from source
- python setup.py install # as superuser
- -or-
- python setup.py install --user # user site-packages installation
-
-The ``bin/`` directory in your user base directory will need to appear
-on the ``PATH`` if installing to user site-packages. This directory is
-system dependent; see `PEP 370`__.
-
-__ http://www.python.org/dev/peps/pep-0370/
-
-If installing to user site-packages, some manual moving or symlinking
-of files will be required for the Bazaar plugin to be detected by
-Bazaar. `PEP 402`__ speaks to this shortcoming.
-
-__ http://www.python.org/dev/peps/pep-0402/
-
-
-Configuration
-=============
-
-A configuration file is looked for at ``~/.bugzillarc``. Its format is
-INI-like; the following configuration objects are understood:
-
-``core``
---------
-
-``server``
- Name of the default server
-
-``alias``
----------
-
-Option names are aliases; their values are the replacement.
-
-``server.<name>``
------------------
-
-Define a server. bugzillatools supports multiple servers; the
-``--server=<name>`` argument can be used to select a server.
-
-``url``
- Base URL of the Bugzilla server.
-``user``
- Bugzilla username.
-``password``
- Bugzilla password
-``assign_status``
- When the ``assign`` command is used, if the current status of a bug
- is in the first list, the status will be updated to the second item.
- The format is: ``<oldstatus>[,<oldstatus>]* <newstatus>``. An
- appropriate value for the default Bugzilla workflow might be:
- ``"UNCONFIRMED,CONFIRMED IN_PROGRESS"``.
-``default_product``
- If provided and if the provided string corresponds to the name of a
- product on this server, use that product as the default. The user
- will still be prompted to confirm.
-
-
-Example ``.bugzillarc``
------------------------
-
-::
-
- [core]
- server = example
-
- [server.example]
- url = http://bugzilla.example.com
- user = [email protected]
- password = sekrit
-
- [alias]
- fix = status --status RESOLVED --resolution FIXED
- wfm = status --status RESOLVED --resolution WORKSFORME
- confirm = status --status CONFIRMED
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/README.rst
new/bugzillatools-0.5.5/README.rst
--- old/bugzillatools-0.5.2/README.rst 1970-01-01 01:00:00.000000000 +0100
+++ new/bugzillatools-0.5.5/README.rst 2014-11-23 06:53:04.000000000 +0100
@@ -0,0 +1,196 @@
+bugzillatools consists of the ``bugzilla`` CLI program and a Python
+library for interacting with the Bugzilla_ bug tracking system, and
+plugins for version control systems that enable interaction with
+Bugzilla installations.
+
+The only dependency is Python_ 2.7 and bugzillatools works with
+Bugzilla_ 4.0 or later where the XML-RPC feature is enabled.
+
+.. _Bugzilla: http://www.bugzilla.org/
+.. _Python: http://python.org/
+
+
+Installation
+============
+
+::
+
+ # via pip
+ pip install bugzillatools # as superuser
+ -or-
+ pip install bugzillatools --user # user site-packages installation
+
+ # from source
+ python setup.py install # as superuser
+ -or-
+ python setup.py install --user # user site-packages installation
+
+The ``bin/`` directory in your user base directory will need to appear
+on the ``PATH`` if installing to user site-packages. This directory is
+system dependent; see :pep:`370`.
+
+If installing to user site-packages, some manual moving or symlinking
+of files will be required for the Bazaar plugin to be detected by
+Bazaar. :pep:`402` speaks to this shortcoming.
+
+
+Components
+==========
+
+``bugzilla`` program
+--------------------
+
+Command-line application for interacting with Bugzilla servers.
+The following subcommands are available:
+
+:assign: Assign bugs to the given user.
+:block: Show or update block list of given bugs.
+:cc: Show or update CC List.
+:comment: List comments or file a comment on the given bugs.
+:config: Show or update configuration.
+:depend: Show or update dependencies of given bugs.
+:desc: Show the description of the given bug(s).
+:dump: Print internal representation of bug data.
+:edit: Edit the given bugs.
+:fields: List valid values for bug fields.
+:help: Show help.
+:history: Show the history of the given bugs.
+:info: Show detailed information about the given bugs.
+:list: Show a one-line summary of the given bugs.
+:new: File a new bug.
+:priority: Set the priority on the given bugs.
+:products: List the products of a Bugzilla instance.
+:search: Search for bugs matching given criteria.
+:status: Set the status of the given bugs.
+:time: Show or adjust times and estimates for the given bugs.
+
+
+``bzlib``
+---------
+
+Library providing access to Bugzilla instances through the XML-RPC
+interface. Supports bug creation, bug information and comment
+retrieval, updating bug fields and appending comments to bugs.
+
+
+Bazaar_ plugin
+--------------
+
+This plugin, when enabled for Bugzilla bugtrackers, marks bugs fixed on
+those trackers when ``bzr commit`` is invoked with the ``--fixes`` argument.
+It also adds a comment to the bug that includes the branch location, the
+commit message, the list of changed files and other details about the commit.
+
+The Bazaar_ plugin requires Bazaar 2.0 or later.
+
+.. _Bazaar: http://bazaar.canonical.com/
+
+
+Configuration
+=============
+
+``.bugzillarc``
+---------------
+
+The ``bugzilla`` program looks for its configuration in
+``~/.bugzillarc``, which uses ini-style configuration.
+
+``core``
+^^^^^^^^
+
+``server``
+ Name of the default server
+
+``alias``
+^^^^^^^^^
+
+Option names are aliases; their values are the replacement.
+
+``server.<name>``
+^^^^^^^^^^^^^^^^^
+
+Define a server. bugzillatools supports multiple servers; the
+``--server=<name>`` argument can be used to select a server.
+
+``url``
+ Base URL of the Bugzilla server (mandatory)
+``user``
+ Bugzilla username (optional)
+``password``
+ Bugzilla password (optional)
+``assign_status``
+ When the ``assign`` command is used, if the current status of a bug
+ is in the first list, the status will be updated to the second item.
+ The format is: ``<oldstatus>[,<oldstatus>]* <newstatus>``. An
+ appropriate value for the default Bugzilla workflow might be:
+ ``"UNCONFIRMED,CONFIRMED IN_PROGRESS"``.
+``default_product``
+ If provided and if the provided string corresponds to the name of a
+ product on this server, use that product as the default. The user
+ will still be prompted to confirm.
+
+
+Example ``.bugzillarc``
+^^^^^^^^^^^^^^^^^^^^^^^
+
+::
+
+ [core]
+ server = example
+
+ [server.example]
+ url = http://bugzilla.example.com
+ user = [email protected]
+ password = sekrit
+
+ [alias]
+ fix = status --status RESOLVED --resolution FIXED
+ wfm = status --status RESOLVED --resolution WORKSFORME
+ confirm = status --status CONFIRMED
+
+
+Bazaar plugin
+-------------
+
+To enable the Bazaar bugzillatools plugin, include following
+configuration directives in either ``~/.bazaar/bazaar.conf`` (global
+configuration) or ``.bzr/branch/branch.conf`` (within a branch)::
+
+ bugzilla_<server>_bugzillatools_enable = True
+ bugzilla_<server>_url = <bugzilla url>
+ bugzilla_<server>_status = RESOLVED
+ bugzilla_<server>_resolution = FIXED
+
+Such a configuration assumes that a section ``[server.<server>]``
+has been defined in your ``.bugzillarc``.
+
+You can now set the status of bugs (using the status and resolution
+defined in the Bazaar config) directly::
+
+ bzr commit -m 'fix bug 123' --fixes <server>:123
+
+
+License
+=======
+
+bugzillatools 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 of the License, or
+(at your option) any later version.
+
+
+Contributing
+============
+
+The bugzillatools source code is available from
+https://github.com/frasertweedale/bugzillatools.
+
+Bug reports, patches, feature requests, code review and
+documentation are welcomed.
+
+To submit a patch, please use ``git send-email`` or generate a pull
+request. Write a `well formed commit message`_. If your patch is
+nontrivial, update the copyright notice at the top of each changed
+file.
+
+.. _well formed commit message:
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/__init__.py
new/bugzillatools-0.5.5/bzlib/__init__.py
--- old/bugzillatools-0.5.2/bzlib/__init__.py 2012-02-07 13:00:58.000000000
+0100
+++ new/bugzillatools-0.5.5/bzlib/__init__.py 2015-04-25 10:10:28.000000000
+0200
@@ -1,5 +1,6 @@
# This file is part of bugzillatools
-# Copyright (C) 2011, 2012 Benon Technologies Pty Ltd, Fraser Tweedale
+# Copyright (C) 2011, 2012, 2013, 2014, 2015 Fraser Tweedale
+# Copyright (C) 2011, 2012 Benon Technologies Pty Ltd
#
# bugzillatools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,11 +15,13 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
-version_info = (0, 5, 2, 'final', 0)
+version_info = (0, 5, 5, 'final', 0)
version_fmt = '{0}.{1}'
if version_info[2]:
version_fmt += '.{2}'
if version_info[3] != 'final':
version_fmt += '{3}{4}'
+elif version_info[4]:
+ version_fmt += '.{4}'
version = version_fmt.format(*version_info)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/bug.py
new/bugzillatools-0.5.5/bzlib/bug.py
--- old/bugzillatools-0.5.2/bzlib/bug.py 2012-02-07 13:09:13.000000000
+0100
+++ new/bugzillatools-0.5.5/bzlib/bug.py 2015-04-25 08:32:22.000000000
+0200
@@ -1,6 +1,6 @@
# This file is part of bugzillatools
+# Copyright (C) 2011, 2012, 2013 Fraser Tweedale
# Copyright (C) 2011, 2012 Benon Technologies Pty Ltd
-# Copyright (C) 2011, 2012 Fraser Tweedale
#
# bugzillatools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -74,7 +74,7 @@
"""
fields = frozenset([
'alias', 'assigned_to', 'component', 'creation_time', 'creator',
- 'id', 'last_change_time', 'op_sys', 'platform', 'priority',
+ 'id', 'last_change_time', 'op_sys', 'rep_platform', 'priority',
'product', 'resolution', 'severity', 'status', 'summary',
'target_milestone', 'qa_contact', 'url', 'version', 'whiteboard',
'limit', 'offset',
@@ -166,8 +166,8 @@
self.bugno = result['id']
return self.bugno
- def add_comment(self, comment):
- self.rpc('add_comment', id=self.bugno, comment=comment)
+ def add_comment(self, comment, is_private=False):
+ self.rpc('add_comment', id=self.bugno, comment=comment,
is_private=is_private)
self.comments = None # comments are stale
self.history = None # history is stale
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/bugzilla.py
new/bugzillatools-0.5.5/bzlib/bugzilla.py
--- old/bugzillatools-0.5.2/bzlib/bugzilla.py 2012-01-03 13:03:02.000000000
+0100
+++ new/bugzillatools-0.5.5/bzlib/bugzilla.py 2014-11-23 07:00:42.000000000
+0100
@@ -1,5 +1,6 @@
# This file is part of bugzillatools
# Copyright (C) 2011 Benon Technologies Pty Ltd, Fraser Tweedale
+# Copyright (C) 2014 Fraser Tweedale
#
# bugzillatools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -74,9 +75,16 @@
"No configuration for server '{}'."
.format(kwargs['server'])
)
- _server.update(
- {k: kwargs[k] for k in ('url', 'user', 'password') if kwargs[k]}
- )
+
+ for k in {'url', 'user', 'password'}:
+ if k in kwargs and kwargs[k]:
+ _server[k] = kwargs[k]
+
+ mandatory_kwargs = {'url'}
+ if mandatory_kwargs - _server.viewkeys():
+ missing_args = ', '.join(mandatory_kwargs - _server.viewkeys())
+ raise UserWarning("missing args: {}".format(missing_args))
+
return cls(**_server)
def __init__(self, url=None, user=None, password=None, **config):
@@ -109,7 +117,11 @@
)
url = url + 'xmlrpc.cgi' if url[-1] == '/' else url + '/xmlrpc.cgi'
# httplib explodes if url is unicode
- self.server = xmlrpclib.ServerProxy(str(url), use_datetime=True)
+ self.server = xmlrpclib.ServerProxy(
+ str(url),
+ use_datetime=True,
+ allow_none=True
+ )
def rpc(self, *args, **kwargs):
"""Do an RPC on the Bugzilla server.
@@ -160,7 +172,7 @@
effect. If not supplied, no effect.
"""
field = filter(lambda x: x['name'] == name, self.get_fields())[0]
- values = field['values']
+ values = [value for value in field['values'] if 'name' in value]
if omit_empty:
values = filter(lambda x: x['name'], values)
value_field = field.get('value_field')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/command.py
new/bugzillatools-0.5.5/bzlib/command.py
--- old/bugzillatools-0.5.2/bzlib/command.py 2012-02-07 13:11:54.000000000
+0100
+++ new/bugzillatools-0.5.5/bzlib/command.py 2015-04-25 08:43:49.000000000
+0200
@@ -1,6 +1,6 @@
# This file is part of bugzillatools
+# Copyright (C) 2011, 2012, 2013 Fraser Tweedale
# Copyright (C) 2011, 2012 Benon Technologies Pty Ltd
-# Copyright (C) 2011, 2012 Fraser Tweedale
#
# bugzillatools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -352,6 +352,10 @@
lambda x: x.add_argument('--include-empty', action='store_false',
dest='omit_empty',
help='Include empty comments.'),
+ lambda x: x.add_argument('--private', action='store_true',
+ default=False,
+ dest='is_private',
+ help='Make comment private.'),
lambda x: x.add_argument('--which', type=int, nargs='+', metavar='N',
help='show only the given comment numbers'),
]
@@ -363,21 +367,17 @@
message = editor.input('Enter your comment.') \
if args.message is True else args.message
if message:
- map(lambda x: self.bz.bug(x).add_comment(message), args.bugs)
+ map(lambda x: self.bz.bug(x).add_comment(message,
args.is_private), args.bugs)
else:
def cmtfmt(bug):
comments = sorted(
- self.bz.bug(bug).comments,
- key=lambda x: int(x['id']),
- reverse=True # initially reverse to apply limit
+ enumerate(self.bz.bug(bug).comments),
+ key=lambda x: int(x[1]['id'])
)
-
- # apply limit, if one given
- comments = comments[:abs(args.limit)] \
- if args.limit else comments
-
- # re-reverse if reversed comments were /not/ wanted
- comments = reversed(comments) if not args.reverse else comments
+ if args.reverse:
+ comments = list(reversed(comments))
+ if args.limit:
+ comments = comments[:abs(args.limit)]
return '=====\nBUG {}\n\n-----\n{}'.format(
bug,
@@ -385,8 +385,8 @@
self.formatstring.format(
'comment: {}'.format(n) if n else 'description',
**comment)
- for n, comment in enumerate(comments)
- if not (args.omit_empty and not comment['text']) \
+ for n, comment in comments
+ if not (args.omit_empty and not comment['text'])
and not (args.which and n not in args.which)
)
)
@@ -475,21 +475,23 @@
args = self._args
fields = filter(lambda x: 'values' in x, self.bz.get_fields())
for field in fields:
- keyfn = lambda x: x['visibility_values']
+ keyfn = lambda x: x.get('visibility_values')
groups = itertools.groupby(
sorted(field['values'], None, keyfn),
keyfn
)
print field['name'], ':'
for key, group in groups:
- values = sorted(group, None, lambda x: int(x['sortkey']))
+ keyfn = lambda x: int(x.get('sortkey', -1))
+ values = sorted(group, None, keyfn)
if key:
print ' {}: {}'.format(
- key,
+ ','.join(key),
','.join(map(lambda x: x['name'], values))
)
else:
- print ' ', ','.join(map(lambda x: x['name'], values))
+ value_names = (v.get('name') for v in values)
+ print ' ', ','.join(s for s in value_names if s)
def _format_history(history):
@@ -558,7 +560,11 @@
# get mandatory fields
fields = self.bz.get_fields()
- mandatory_fields = filter(lambda x: x['is_mandatory'], fields)
+ defaulted_fields = [
+ 'description', 'op_sys', 'rep_platform', 'priority', 'severity']
+ mandatory_fields = filter(
+ lambda x: x['is_mandatory'] or x['name'] in defaulted_fields,
+ fields)
# first choose the product
products = [x['name'] for x in self.bz.get_products()]
@@ -599,7 +605,7 @@
# (this info is not introspectable as of Bugzilla 4.0)
create_fields = [
'product', 'component', 'summary', 'version', 'comment',
- 'op_sys', 'platform', 'priority', 'severity', 'alias',
+ 'op_sys', 'rep_platform', 'priority', 'severity', 'alias',
'assigned_to', 'cc', 'comment_is_private', 'groups',
'qa_contact', 'status', 'target_milestone',
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/editor.py
new/bugzillatools-0.5.5/bzlib/editor.py
--- old/bugzillatools-0.5.2/bzlib/editor.py 2011-06-25 01:48:15.000000000
+0200
+++ new/bugzillatools-0.5.5/bzlib/editor.py 2015-04-25 09:17:05.000000000
+0200
@@ -1,5 +1,6 @@
# This file is part of bugzillatools
-# Copyright (C) 2011 Benon Technologies Pty Ltd, Fraser Tweedale
+# Copyright (C) 2011, 2013 Fraser Tweedale
+# Copyright (C) 2011 Benon Technologies Pty Ltd
#
# bugzillatools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -25,32 +26,35 @@
def input(message, remove_comments=True):
- """Invoke $EDITOR for message input.
+ """Invoke ``$EDITOR`` for message input.
- Invoke $EDITOR or /bin/vi on a temporary file for user input.
+ Invoke ``$EDITOR`` or vi(1) on a temporary file for user input.
+
+ ``message``
+ A message describing what the user is inputting. Should be
+ terminated with a full stop.
+ ``remove_comments``
+ Remove lines starting with '#' from the data.
- message: A message describing what the user is inputting. Should be
- terminated with a full stop.
- remove_comments: Remove lines starting with '#' from the data.
"""
try:
- editor = os.environ['EDITOR']
+ editor = [os.environ['EDITOR']]
except KeyError:
- editor = '/bin/vi'
+ editor = ['/usr/bin/env', 'vi']
# build initial text
- text = [message]
+ text = [message.encode('utf-8')]
if remove_comments:
text.append("Lines starting with '#' will be ignored.")
text.append('An empty message aborts the operation.')
lines = ['\n'] # start with a single empty line
- lines += map(lambda x: '# ' + x + '\n', textwrap.wrap(' '.join(text)))
+ lines += map('# {}\n'.format, textwrap.wrap(' '.join(text)))
with tempfile.NamedTemporaryFile() as fh:
fh.writelines(lines)
fh.flush()
- returncode = subprocess.call([editor, fh.name])
+ returncode = subprocess.call(editor + [fh.name])
if returncode:
raise IOError('Editor did not exit cleanly')
fh.seek(0)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/test_bug.py
new/bugzillatools-0.5.5/bzlib/test_bug.py
--- old/bugzillatools-0.5.2/bzlib/test_bug.py 2012-01-03 13:03:02.000000000
+0100
+++ new/bugzillatools-0.5.5/bzlib/test_bug.py 2013-11-23 06:24:01.000000000
+0100
@@ -1,4 +1,5 @@
# This file is part of bugzillatools
+# Copyright (C) 2013 Fraser Tweedale
# Copyright (C) 2011 Benon Technologies Pty Ltd
#
# bugzillatools is free software: you can redistribute it and/or modify
@@ -32,7 +33,7 @@
bug.Bug.search(self.bz, not_foobar='baz')
fields = frozenset([
'alias', 'assigned_to', 'component', 'creation_time', 'creator',
- 'id', 'last_change_time', 'op_sys', 'platform', 'priority',
+ 'id', 'last_change_time', 'op_sys', 'rep_platform', 'priority',
'product', 'resolution', 'severity', 'status', 'summary',
'target_milestone', 'qa_contact', 'url', 'version', 'whiteboard',
'limit', 'offset',
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/bzlib/ui.py
new/bugzillatools-0.5.5/bzlib/ui.py
--- old/bugzillatools-0.5.2/bzlib/ui.py 2012-01-03 13:59:44.000000000 +0100
+++ new/bugzillatools-0.5.5/bzlib/ui.py 2013-11-23 06:19:46.000000000 +0100
@@ -1,5 +1,6 @@
# This file is part of bugzillatools
-# Copyright (C) 2011, 2012 Fraser Tweedale, Benon Technologies Pty Ltd
+# Copyright (C) 2011, 2012, 2013 Fraser Tweedale
+# Copyright (C) 2011, 2012 Benon Technologies Pty Ltd
#
# bugzillatools is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@@ -14,6 +15,8 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
+from __future__ import unicode_literals
+
import functools
import math
import re
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/bugzillatools-0.5.2/setup.py
new/bugzillatools-0.5.5/setup.py
--- old/bugzillatools-0.5.2/setup.py 2011-11-30 12:35:05.000000000 +0100
+++ new/bugzillatools-0.5.5/setup.py 2013-07-04 11:13:32.000000000 +0200
@@ -3,7 +3,7 @@
import bzlib # import version info
-with open('README') as fh:
+with open('README.rst') as fh:
readme = fh.read()
with open('CHANGES') as fh:
changes = fh.read()
@@ -14,8 +14,8 @@
version=bzlib.version,
description='Bugzilla CLI client, XML-RPC binding and VCS plugins',
author='Fraser Tweedale',
- author_email='[email protected]',
- url='https://gitorious.org/bugzillatools',
+ author_email='[email protected]',
+ url='https://github.com/frasertweedale/bugzillatools',
packages=['bzlib', 'bzrlib.plugins.bugzillatools'],
package_dir={
'bzlib': 'bzlib',
@@ -26,14 +26,15 @@
('doc/bugzillatools', ['doc/.bugzillarc.sample']),
],
classifiers=[
- 'Development Status :: 3 - Alpha',
+ 'Development Status :: 4 - Beta',
'Environment :: Console',
'Intended Audience :: Developers',
'Intended Audience :: Information Technology',
- 'License :: OSI Approved :: GNU General Public License (GPL)',
+ 'License :: OSI Approved :: GNU General Public License v3 or later
(GPLv3+)',
'Operating System :: OS Independent',
'Programming Language :: Python :: 2.7',
'Topic :: Software Development :: Bug Tracking',
+ 'Topic :: Software Development :: Version Control',
],
long_description=long_description,
)