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 - benoit.monin@gmx.fr + +- 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: frasert@jumbolotteries.com +Author-email: frase@frase.id.au 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 = user@example.com - 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 = user@example.com + 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='frasert@jumbolotteries.com', - url='https://gitorious.org/bugzillatools', + author_email='frase@frase.id.au', + 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, )