diff -Nru python-pbr-0.5.23/AUTHORS python-pbr-0.7.0/AUTHORS --- python-pbr-0.5.23/AUTHORS 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/AUTHORS 2014-03-18 14:08:30.000000000 +0000 @@ -1,57 +1 @@ -Andrew Bogott -Angus Salkeld -Anthony Young -Attila Fazekas -Bhuvan Arumugam -Brian Waldon -Chuck Short -Clark Boylan -Dan Prince -Davanum Srinivas -David Ripton -Devananda van der Veen -Dirk Mueller -Doug Hellmann -Doug Hellmann -Eoghan Glynn -Eric Windisch -Erik M. Bray -Eugene Kirpichov -Gary Kotton -Giampaolo Lauria -Ionuț Arțăriși -Jason Kölker -Jay Pipes -Jeremy Stanley -Joe Gordon -Joe Heck -Johannes Erdfelt -Julien Danjou -Laurence Miao -Mark McLoughlin -Mark Sienkiewicz -Maru Newby -Matthew Treinish -Michael Basnight -Michael Still -Monty Taylor -Nikhil Manchanda -Rajaram Mallya -Rick Harris -Robert Collins -Robert Myers -Russell Bryant -Ryan Petrello -Sean Dague -Sergey Lukjanov -Steven Hardy -Thomas Grainger -Thomas Leaman -Tim Simpson -Vincent Untz -Vishvananda Ishaya -YAMAMOTO Takashi -Yaguang Tang -Yuriy Taraday -Zhongyue Luo -alexpilotti + diff -Nru python-pbr-0.5.23/ChangeLog python-pbr-0.7.0/ChangeLog --- python-pbr-0.5.23/ChangeLog 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/ChangeLog 2014-03-18 14:08:29.000000000 +0000 @@ -1,5814 +1,421 @@ -commit 629bbce1c88a4a576182c7a41372a70a864d8226 -Author: Nikhil Manchanda -Date: Wed Oct 30 03:08:48 2013 -0700 +CHANGES +======= - Fixed pbr install to not error out and fail if git is not installed - - Fixed the issue where pbr was erroring out (file not found) when - running 'python setup.py egg_info' since it was trying to get the - .git directory even if git was not installed. - - Closes bug 1245676 - - Change-Id: I31e1f86f10f18897774b49eb293aede31641db31 +0.7.0 +----- -commit e8a3c7e7ba4430870849ff34ab3437db2ed1f942 -Merge: a3a875b 1f730e2 -Author: Jenkins -Date: Mon Oct 28 01:13:31 2013 +0000 - - Merge "Move base test case logic out of __init__.py" - -commit a3a875b1a0eee25344d8d6a8898ee176d3dc46b3 -Merge: 3fdedcf a7e5f91 -Author: Jenkins -Date: Sun Oct 27 22:58:13 2013 +0000 - - Merge "Prevent ordereddict installation on 2.7" - -commit 1f730e25803c9a263c147c1a35415ee8b2b49e5e -Author: Monty Taylor -Date: Sun Sep 29 15:40:03 2013 -0400 - - Move base test case logic out of __init__.py - - It's an antipattern to have functional code in an __init__.py. Move it - into base.py to be less anti. - - Change-Id: Ib4db548b78e4e760d94099596a3c495a839836dc - -commit 3fdedcf69e6c175c242400c5982e1d4a7db9673e -Author: Monty Taylor -Date: Tue Sep 17 12:22:05 2013 -0500 - - Comply with pep440 - - pep440 indicates that development releases should mark themselves with - the devN specifier. - - http://www.python.org/dev/peps/pep-0440/#developmental-releases - - Instead of using aN as we are currently doing for automatically - generated versions, we should use the pep440 compliant devN form. - - Change-Id: Ieeb5149f8b013e76621112593e0a5c0a64817e1f - -commit a7e5f91d90b8a9205ed2a3b014a1bbc803aa4ada -Author: Thomas Leaman -Date: Wed Oct 16 16:07:25 2013 +0000 - - Prevent ordereddict installation on 2.7 - - This supports https://review.openstack.org/#/c/48475/ in glance - to remove copy/pasted ordereddict code. - - Change-Id: I9b0a2588c6e7da86c048698c5e6dfe37ced4dd7f - -commit ae25b565d37c831d4caea8347a6ba6279683fbca -Author: Doug Hellmann -Date: Wed Sep 25 16:55:49 2013 -0400 - - Do not pass unicode where byte strings are wanted - - Some versions of the tarfile module break when unicode data is - passed as metadata (like the version). See - http://bugs.python.org/issue11638 for details. - - This change ensures that version number is always a byte strings - under python 2, where the problem exists. - - Change-Id: Ic266cd7cce0394d28794ee61afe269f1296be2a2 - -commit 3391ca5c1a9a1db4e96e0043b953d0b5d463d7fd -Merge: 9fbbb2b d322c34 -Author: Jenkins -Date: Wed Oct 9 16:00:52 2013 +0000 - - Merge "Rework run_shell_command" - -commit 9fbbb2b8871e654048dbbe46347d49d8230e8a26 -Merge: 403c2ba 0ff4fe1 -Author: Jenkins -Date: Wed Oct 9 16:00:39 2013 +0000 - - Merge "Add a test for command registration." - -commit 403c2ba4668f04739adc608f3538c5c91c5be28b -Merge: 517ce12 2f74b46 -Author: Jenkins -Date: Wed Oct 9 11:05:18 2013 +0000 - - Merge "Switch away from tearDown for BaseTests." - -commit 517ce12c8d47e84b53da98b58a5c9035bfeca3d0 -Merge: 42b49cb 55f7642 -Author: Jenkins -Date: Wed Oct 9 04:45:20 2013 +0000 - - Merge "Fix test_changelog when git isn't globally setup." - -commit 42b49cbad0d7ae57da72513690e940cd9765f68f -Author: Jeremy Stanley -Date: Mon Oct 7 23:31:27 2013 +0000 - - Get rid of PyPI URL override in integration test - - * tools/integration.sh: Overriding the PyPI URL is logic best left - to devstack-gate since it does those things already. Remove the - similar dance found here. - - Change-Id: Ie2fcabb11b30dc3ab6564bdedd55b2b173c1bf2a - -commit 0ff4fe1a7619c289bc10e4905f1627d12a229e4a -Author: Robert Collins -Date: Sun Sep 29 21:58:26 2013 +1300 - - Add a test for command registration. - - This would be better as a direct unit test, but I can't see where - thats done; and setuptools doesn't seem super friendly to that. - - There are more commands that can be tested, but this seemed like a - good place to start. - - Change-Id: I433880d9b08d07de0194450bbc90a423554e347c - -commit 2f74b467dd08ad63bce693379913c23a5f5e6785 -Author: Robert Collins -Date: Sun Sep 29 21:44:47 2013 +1300 - - Switch away from tearDown for BaseTests. - - tearDown is never the right hammer. - - Change-Id: If17ae653e25d4fba2b768cb569a573467448ccef - -commit 55f76425fa082373be32bcf9df33ef81bbef0f4c -Author: Robert Collins -Date: Sun Sep 29 20:53:13 2013 +1300 - - Fix test_changelog when git isn't globally setup. - - This test was assuming that it was possible to make a new git repo and - commit to it, but some versions of git will error if no user email is - set, and some users choose not to have that set globally. - - Change-Id: I94401c4fe716021c2cb2f1585690463746c740c9 - -commit d322c34fec2a7096203eba762d93b478a89cebe6 -Author: Monty Taylor -Date: Thu Aug 15 19:22:33 2013 -0300 - - Rework run_shell_command - - A previous patch for windows support made the simple case of passing a - string to run_shell_command complicated with quoting. Clean that up by - reverting to list, which avoids the crazy quoting we had to do. - - Change-Id: Ia3b8ac6a57e7400d0aab0d5265c851e536fb4e87 - -commit 9f04dba0ecc07a33dc4b256bec4f860c30b2b500 -Author: Monty Taylor -Date: Sat Sep 21 20:03:19 2013 -0400 - - Update tox config to use latest upgrades - - Change-Id: I3b9e627eecc5b805db3fed2ae9571ccfc3dbd6fc - -commit 2f0b291bb9573e5cf61f3dd697a340f7995e47a5 -Merge: 3fbf36e 9786042 -Author: Jenkins -Date: Sat Sep 7 04:31:32 2013 +0000 - - Merge "Add a hint for users who don't have git installed." - -commit 9786042aebf7b5117f49773ab9e6fb59f5e1bb8d -Author: Ryan Petrello -Date: Fri Sep 6 18:18:05 2013 -0400 - - Add a hint for users who don't have git installed. - - Change-Id: I31058752e8303beab3f21dd590459e9a8a7c2334 - -commit 3fbf36ef476e2ee6a368297a6300389ddfc590b0 -Author: Julien Danjou -Date: Mon Aug 26 23:01:37 2013 +0200 - - Add pypy to tox.ini - - Change-Id: I590af708465e8a8a3d5d5f64cc4ad1a9d640abc7 - -commit ed63f50aacb19d1a276fc4329bf8cc4e4ab5717a -Merge: 84614d3 0c33086 -Author: Jenkins -Date: Thu Aug 15 07:55:55 2013 +0000 - - Merge "Sync requirements with global requirements" - -commit 84614d3cad00b450f770a9b4659937e9f5502f3d -Merge: c8e6d0b aaad8e4 -Author: Jenkins -Date: Wed Aug 14 21:57:11 2013 +0000 - - Merge "Fix python-ldap mirroring." - -commit c8e6d0b2651f2268d6dd6b1359dc61f05344e3af -Merge: 24ee68c 00f878c -Author: Jenkins -Date: Wed Aug 14 21:54:10 2013 +0000 - - Merge "Stop checking periods in commit messages" - -commit 24ee68c226233bd305a94939f601de2ffb004961 -Merge: e2821d1 091b774 -Author: Jenkins -Date: Wed Aug 14 21:54:08 2013 +0000 - - Merge "Fixes issue with command escaping on Windows" - -commit aaad8e451119a5732beb3bcd66d3f17e65bad5cc -Author: Robert Collins -Date: Thu Aug 8 09:01:09 2013 +1200 - - Fix python-ldap mirroring. - - python-ldap wants ldap headers to compile. - - Change-Id: I57dc54a3b745702ee8c1f8f8f91fc4ef1aa169fd - -commit 00f878c557942dfd8c4024c61aa63a7400336519 -Author: Robert Collins -Date: Thu Aug 8 22:36:40 2013 +1200 - - Stop checking periods in commit messages - - This breaks various peoples fingers and there was no overwhelming - community support, nor historical evidence, for enforcing the proposed - rule in either direction. - - Change-Id: Id2a5af9bb8a49af0a2f94b38a8e7d5ef1208e627 - -commit 091b774f0cf4b4e8bad7f5e04f88b53ac88b5227 -Author: alexpilotti -Date: Sun Aug 11 07:25:14 2013 +0300 - - Fixes issue with command escaping on Windows - - Fixes bug: #1210912 - - Special characters like <, > or ' need to be escaped on Windows when used - with "cmd /C " as implemented in _run_shell_command - - In order to avoid escaping issues, shell spawning has been replaced with - direct command execution. As a consequence, grep/egrep command pipes have - been replaced with Python regular expressions where appropriate. - - Change-Id: Idd50fd24f300bce655f99d42cb96e37d29d4cb14 - -commit e2821d16e70bbcdc920265c0762bcc70101b7160 -Merge: 9234efa 91cacee -Author: Jenkins -Date: Sun Aug 11 16:54:33 2013 +0000 - - Merge "Add option to run testr serially" - -commit 9234efaff21a1d882db38f87fe0c0dc9c804b0f6 -Merge: d467f99 fb0aabc -Author: Jenkins -Date: Sun Aug 11 16:51:20 2013 +0000 - - Merge "Fix pep8 error" - -commit d467f99b73385ed919bdb2121564d6a24d9d4fa7 -Author: Monty Taylor -Date: Fri Aug 9 11:50:01 2013 -0300 - - Added documentation for packagers - - There are several features aimed at distro packagers that it's probably - a good idea to tell them about. - - Change-Id: Ide4ec3b94c5da644c5a4d5eee6629f42f7b508ac - -commit cb4a30bdc690abed44a940fbcff4cb945631325b -Author: Monty Taylor -Date: Fri Aug 9 11:30:03 2013 -0300 - - Update requirements in integration test - - So that we don't test combinations of things that we won't see in the - gate, run the same requirements sync job that devstack does. - - Change-Id: I0ee375b4e41aa214acf4cd3bfeb1b3a8ccb08dff - -commit 0c330868ec037033258196932961f440f4d2d393 -Author: Monty Taylor -Date: Thu Aug 8 11:20:22 2013 -0300 - - Sync requirements with global requirements - - Change-Id: Id8ffb22f4ecb05b9f8494be70d4587453a334efb - -commit fb0aabc97d64958799fd4a19994ac43d2632fb60 -Author: Monty Taylor -Date: Thu Aug 8 11:18:53 2013 -0300 - - Fix pep8 error - - I have no idea how this wasn't happening before but now is. - - Change-Id: I3a9c82d58d9a89d31711efbdd30324888f343e3a - -commit 91caceed9c7a311253d5e593bf6053b94e8eb693 -Author: Matthew Treinish -Date: Thu Aug 1 17:30:17 2013 -0400 - - Add option to run testr serially - - This commit adds a new serial option to testr_command.py that when - set will run testr serially instead of running testr with the - '--parallel' flag. - - Change-Id: Id49b105dc921e9acdef1a94d933719ad3a772c81 - -commit 270594f4e12dd3d2ce94e2e32128d72aba490cd6 -Merge: 8e92bb2 d26d430 -Author: Jenkins -Date: Sun Aug 4 18:17:20 2013 +0000 - - Merge "Replace setuptools_git with a smarter approach" - -commit 8e92bb2d322e9b3e5fcd638daeff5185cea872df -Merge: 344187c 51c9e62 -Author: Jenkins -Date: Sun Aug 4 16:13:31 2013 +0000 - - Merge "Clean up some style warnings" - -commit d26d43014b9202437d276be298539efddbc914e3 -Author: Monty Taylor -Date: Sat May 25 07:58:44 2013 +0200 - - Replace setuptools_git with a smarter approach - - Implement a local egg_info command that only re-generates the - SOURCES.txt file when we need to. That is: - - - If there is no SOURCES.txt, make one - - If we have run the sdist command, make one - - Otherwise, leave well enough alone. - - Also, skip doing any git processing if SKIP_GIT_SDIST is specified. - - This should mean that consumers of our tarballs should not get screwed - by the need to inject git processing into the sdist. - - Change-Id: I163b1c153d030e79b120600a2890edeb49e1fa90 - -commit 344187c8a72125a2abcec02f5e17846d8357ec99 -Merge: 9004973 44ba874 -Author: Jenkins -Date: Sun Aug 4 15:17:24 2013 +0000 - - Merge "Improve AUTHORS file generation" - -commit 9004973d42867a215043b0b8654983efc02d0d17 -Merge: 5e281e4 8eff471 -Author: Jenkins -Date: Sun Aug 4 01:30:49 2013 +0000 - - Merge "Ensure _run_shell_command always returns same type" - -commit 51c9e626c6e2cafbd1f561b5403d1b6c343afddb -Author: Monty Taylor -Date: Sat Aug 3 18:51:33 2013 -0400 - - Clean up some style warnings - - ksh -n, weirdly enough, can be used as a rudimentary syntax and style - checker for bash. tools/integration.sh was mostly clean, but it - suggested that `` should be replaced with $(). Sure, why not. - - Change-Id: I76beff1194133444284c1e8fbbd5d87db369e47f - -commit 5e281e4960e21c7adf4a65afa701edbc653a618a -Author: Monty Taylor -Date: Sat Aug 3 14:19:20 2013 -0400 - - Consume the OpenStack mirror by default - - PyPI upstream obviously breaks all the time. Like, literally, I've spent - my whole life dealing with it this past week. In this test, we were - avoiding the OpenStack mirror so that we could be sure to be testing - that we could build the mirror when new requirements are added. However, - the only time that's a concern is on a requirements repo change. - - Add an option --no-mirror that will trigger the "don't use OpenStack's - mirrors as an upstream" behavior, and we'll add that option to the - invocation on requirements changes. - - Change-Id: I8d01c1fbb8a5df5aa83ffba3b6489e374abef1af - -commit b6234379aaa455ceebdb3d7694befee621991b26 -Author: Monty Taylor -Date: Sat Aug 3 15:15:33 2013 -0400 - - Correct typo - - The filter for not double running ourself was mis-spelled. - - Change-Id: Ief500bb4426f74cf5d41440a80056ae4122f6fcb - -commit 44ba87493d2c3ccf9e1af541284365ea44f911ac -Author: Sergey Lukjanov -Date: Thu Jul 18 09:54:59 2013 +0400 - - Improve AUTHORS file generation - - * remove authors/co-authors duplicates - * sort all authors/co-authors - * add a new line to the end of file - - Change-Id: I48a388e8ae2defd05ad617d5de709d0e623a5c36 - -commit 8eff471f60a0be2eb6ede5525e224852d5c06048 -Author: Doug Hellmann -Date: Fri Aug 2 11:46:09 2013 -0400 - - Ensure _run_shell_command always returns same type - - If _run_shell_command gets no output, return an empty - string instead of None. This ensures that callers can - always treat the results as a string, and avoids the - TypeError that was preventing the ChangeLog and AUTHORS - files from being created properly in a git repository - without any commits. - - Change-Id: I880210bc3ff92ece29b216a10e1d0c918f884eaf - -commit 9a3b73388713dcd383df3b9a5b0608120f22c35e -Merge: 21fe44e 6545e2b -Author: Jenkins -Date: Fri Aug 2 02:24:59 2013 +0000 - - Merge "Use the same logic everywhere for requirements files" - -commit 21fe44e7694ff1e800de36c6694c2bcbec984b23 -Merge: 3b82b9b 44f6ade -Author: Jenkins -Date: Thu Aug 1 19:24:39 2013 +0000 - - Merge "Hierarchical sphinx API documentation generation" - -commit 3b82b9b9d06ff0e2cfd894e11bf246974fc78bbc -Merge: 600aa2a 68462dd -Author: Jenkins -Date: Thu Aug 1 00:31:18 2013 +0000 - - Merge "Add skip_pip_install to setup.cfg" - -commit 44f6adef98e207eb2587609bb89b7e06c5f16f41 -Author: Attila Fazekas -Date: Wed Jul 31 09:06:28 2013 +0200 - - Hierarchical sphinx API documentation generation - - * Adding a new pbr boolean option 'autodoc_tree_index_modules' for - creating a package/module hierarchy oriented API documentation. - * Using the sphinx.apidoc module in order to - generate the *.rst files and the modules.rst. - The sphinx.apidoc.main function call expected to be more future proof, - than the other options. - - Change-Id: I145086387edf6b042368d4c16dd64948f67606b0 - -commit 600aa2a25052380e2010f8001c3185ad35d8a67d -Merge: 3d40ea1 845a46c -Author: Jenkins -Date: Wed Jul 31 04:01:36 2013 +0000 - - Merge "Add support for classmethod console scripts" - -commit 3d40ea10f8008776a89176065b023a99b770285d -Merge: bb8bdf0 80bf39a -Author: Jenkins -Date: Wed Jul 31 03:00:35 2013 +0000 - - Merge "Fix .mailmap file search location" - -commit 845a46c7c49dde32007475dc5c87beb6d5701fcc -Author: Maru Newby -Date: Wed Jul 31 01:20:07 2013 +0000 - - Add support for classmethod console scripts - - * Previously console_scripts could only reference functions: - - script_name = package.name:function_name - - This change adds support for classmethods: - - script_name = package.name:ClassName.classmethod_name - - This change is necessary to support a Neutron use-case. - - * Fixes bug 1206734 - - Change-Id: I9509d3f2cea29fee5696936dbbb1d507764f1e81 - -commit 68462dd62b73beccda3ae4cff2628ab3f157585f -Author: Monty Taylor -Date: Tue Jul 30 15:01:51 2013 -0400 - - Add skip_pip_install to setup.cfg - - The envvar SKIP_PIP_INSTALL isn't enough in all cases. Add the ability - to configure this in the config file. - - Change-Id: Ic84bd6df52d2b96bf4afcaacd9c8b6fee26e9840 - -commit bb8bdf0e767a65959278ceac252491c5db904360 -Author: Monty Taylor -Date: Tue Jul 30 12:55:32 2013 -0400 - - Remove missing_reuqires optimization - - The attempt to optimize away some shell calls to pip wound up having - python setup.py install not do the right thing with missing transitive - depends. Remove the optimization check. - - Change-Id: I0db9cc18fda98b8f53b61422e730fd76e0c6a0c1 - -commit 6545e2b6d33dc57f0810ea19c40ff7a3d2bcf677 -Author: Julien Danjou -Date: Wed Jul 24 22:47:07 2013 +0200 - - Use the same logic everywhere for requirements files - - Currently, the environment variable isn't always respected, especially when - dealing with the egg_info command. Let's factorize the code into a function - and use it everywhere instead of the REQUIREMENTS_FILES variable. - - Change-Id: I1c3224ef76ee724c8176eb00ef948d80259e3c17 - -commit 1273cbdd7c75d768901435e9228f1b745a7f681c -Merge: 54ca83a f7aed20 -Author: Jenkins -Date: Sat Jul 27 14:57:06 2013 +0000 - - Merge "Loop over test output for better readability" - -commit 54ca83a2e87248420de873ca83a577cde3132711 -Merge: a8cffe5 761b27f -Author: Jenkins -Date: Sat Jul 27 14:57:05 2013 +0000 - - Merge "Add support for globbing in data files" - -commit a8cffe5bf56a151b919d1f2cba1a7e57e6204775 -Merge: 9e3af63 5b2116a -Author: Jenkins -Date: Sat Jul 27 14:57:04 2013 +0000 - - Merge "Revert include_package_data change" - -commit 9e3af631e02251cb4c156f470e1deecacf9879e0 -Merge: 37f5b54 8a43c13 -Author: Jenkins -Date: Sat Jul 27 14:42:36 2013 +0000 - - Merge "Also patch easy_install script creation" - -commit 80bf39aa796ee6ca64a5d73cb50c83d32f9bda5d -Author: Sergey Lukjanov -Date: Thu Jul 18 00:07:39 2013 +0400 - - Fix .mailmap file search location - - It should be in the root project dir, not in the .git dir. - - Fixes: bug #1202375 - - Change-Id: I5d7cd61f3ec9323afed371c7082f2694a7e8347c - -commit 37f5b545aebf9ddeaf005c5718d77c31dd81032f -Author: Monty Taylor -Date: Thu Jul 25 08:49:52 2013 -0700 - - Swap the order of configparser imports - - The configparser backport package has un-understood issues parsing - our files. But the intent of the code is to use whichever is the - package for the version of python in use. So, instead of trying to - install the python3 version first, which can also result in loading - the backport package, first try the python2 package, so that if - configparser itself is loaded, it will be because we're running python3. - - Change-Id: I7ef497127822d0110804b04a674f24c195a07278 - -commit 2efd8ba8e234923a57b3220398873202dc11835d -Author: Monty Taylor -Date: Sun Jul 21 20:42:14 2013 -0700 - - Install jeepyb and requirements from REPODIR - - integration.sh already expects there to be a pbr source dir in - $REPODIR/pbr. If we pull jeepyb and requirements from the same place, - then we can gate them as wel as pbr. - - Change-Id: Ie0eb513c2deade957d480a25dfba2c5486d14876 - -commit f858c8069cc27288fd7ddbe5963586d1809edc3a -Author: Monty Taylor -Date: Thu Jul 25 08:04:45 2013 -0700 - - Stop trying to install old pip and setuptools - - Now that pip 1.4 is out, setuptools<0.7 is invalid because 1.4 will not - install 'pre-release' software without being explicitly asked, and all - of the pre 0.7 setuptools releases have a letter in them. Just stop - trying to do it, because we actually don't use it anyway. - - Additionally, we were trying to intsall pip 1.3 for a test but were not - installing that into the local mirror. Match them so that they're equal - and can install. - - Change-Id: I61b9b810e64b40ceccb5eb0f4b2ddc4faefd8e04 - -commit 761b27fee6ed0d3082d043dff2a7c61436a7aab9 -Author: Monty Taylor -Date: Thu Jul 4 22:30:22 2013 -0400 - - Add support for globbing in data files - - Similar to the work in the packages argument, allow the specification - of a directory to recursively include as part of the install. - - Change-Id: Ife0414af468e7fcd4fc419eafc3e19e29efcfc7b - -commit 5b2116aad0fdffb94206b327f7a20ee077a3cae2 -Author: Monty Taylor -Date: Tue Jul 23 10:30:35 2013 -0700 - - Revert include_package_data change - - Setting the value directly in kwargs is not doing what we want it to do. - This is largely because of how the hook system works. When the hooks - process backwards_compat, they do a config.get('backwards_compat', - dict()), which is then written back to the config dict - which means - that blank override values are being fed in. - - Later we can go through and just re-engineer how that works. For now, - unbreak nova. - - Change-Id: I0c6055253cbc89b6884553e6f2fbfe8a7bbd1953 - -commit 8a43c13bdcf74c198a8330bb4e44f7853ec1c2b6 -Author: Monty Taylor -Date: Tue Jul 23 15:51:40 2013 -0700 - - Also patch easy_install script creation - - During python setup.py develop, easy_install is called via a different - code path to install the scripts. We need to inject into that place as - well. - - Change-Id: Iab319f3771529c6d57f6a36ec717fb3278839f78 - -commit f7aed20d3170ef6e1701e0088080617980e002d8 -Author: Monty Taylor -Date: Tue Jul 23 09:53:53 2013 -0700 - - Loop over test output for better readability - - The way _run_cmd was working meant that in a test failures, the captured - output was a giant blob of text with \n strings inside it, making it - unreadable. By looping and printing, it becomes readable again. - - Change-Id: I2db3057c34e2a50f7a420f2dbcf45c6ec874b632 - -commit 24c38b34c7f7c3074aef884013a1895c01fa93e6 -Merge: 49095d5 904f79c -Author: Jenkins -Date: Mon Jul 22 20:01:18 2013 +0000 - - Merge "Add more documentation" - -commit 49095d5fe096201e3021e10e6063433bf2080314 -Merge: 0243b7a 3395c2c -Author: Jenkins -Date: Mon Jul 22 06:04:25 2013 +0000 - - Merge "We force installs via pip, we should declare it" - -commit 0243b7ae33cad1e7c849fd9365881ffe4dfcecf3 -Merge: acba610 29afae0 -Author: Jenkins -Date: Mon Jul 22 03:56:59 2013 +0000 - - Merge "Ignore project creator while generating AUTHORS" - -commit acba610089875951273b507e5b1aca77394840bd -Merge: 89961a7 e616412 -Author: Jenkins -Date: Mon Jul 22 03:48:07 2013 +0000 - - Merge "Do not assume the tests run as jenkins" - -commit 89961a70a7b8a9d53e247a4965fe9c8cf251cc3f -Merge: db43d24 8e58c2f -Author: Jenkins -Date: Mon Jul 22 03:48:06 2013 +0000 - - Merge "Replace entry_points console_scripts" - -commit db43d24cd55d6fc3d91c8955ccdcb3040074041c -Merge: 2139090 c84876d -Author: Jenkins -Date: Mon Jul 22 03:47:42 2013 +0000 - - Merge "Remove the need to specify the pbr hook" - -commit 21390906eac2ba67789c7950b5f770feb76a433e -Merge: 99dabdc 71bea43 -Author: Jenkins -Date: Mon Jul 22 03:46:19 2013 +0000 - - Merge "Move d2to1 more into the source tree" - -commit 99dabdc4b1e25f825bd4ad43740b96790ca6dfc1 -Merge: 06828eb 6aeee95 -Author: Jenkins -Date: Mon Jul 22 03:25:30 2013 +0000 - - Merge "Fix python 3.3 tests" - -commit 904f79c867ac689df387f276b0a9c2afb02ddebf -Author: Monty Taylor -Date: Wed Jul 17 09:12:45 2013 -0700 - - Add more documentation - - Moved a good portion of README into the sphinx docs. Also started - fleshing out descriptions of how to use things. Also, fix the sphinx - config. - - Change-Id: If53dcdaea0a48ef613e3097ab55d34f056160188 - -commit 3395c2c6616d152c52e218528a380c9dc7cd79e9 -Author: Monty Taylor -Date: Sat Jun 22 21:37:18 2013 -0400 - - We force installs via pip, we should declare it - - pbr contains code that very explicitly uses pip, which means that pip is - a requirement. - - Note to packagers: it is possible to skip uses of pip, meaning that you - can totally use pbr-based things without needing to have them pip - install things. - - Change-Id: Ifa472f344489295a5b8a1910bff2672087653547 - -commit 06828ebbe38960111b37431e16a6ad7ee7dd8c87 -Merge: aa7a6fd d09372e -Author: Jenkins -Date: Sun Jul 21 21:22:42 2013 +0000 - - Merge "Set defaults directly in option processing" - -commit 6aeee95e2acf703a6e41b7172f2333e899038332 -Author: Doug Hellmann -Date: Sun Jul 21 15:35:53 2013 -0400 - - Fix python 3.3 tests - - We can go back to using the official release of - testrepository for testing under python 3, so - do. - - Make python 3.3 part of the default environment - set for anyone running all of the tests. - - Change-Id: I0c56f9cde643ef8580ab305080bc62b87809bf7e - -commit 8e58c2fa58fd1aa6f9985dcb4e210508a73e1df7 -Author: Monty Taylor -Date: Sun Jul 21 10:47:32 2013 -0700 - - Replace entry_points console_scripts - - The console scripts generated by entry_points are too complex for - our needs and make things run slowly in service of a multi-version - install that we don't use. - - Instead, install a simple script which just does a direct import. - - Change-Id: I1ec46837cea07db514f2fb6338c7bced34a83c4a - -commit aa7a6fd3270710e533f84e04c84a94d46fa15266 -Author: Doug Hellmann -Date: Sun Jul 21 15:25:44 2013 -0400 - - Fix integer_types type under python 3 - - Set the integer_types variable to the same kind of object - under python 3 and 2 so that when we go to manipulate it - later it works. - - Change-Id: I8f9db1d76931ef834645095952f71415d98f0b5c - -commit c84876dc0f559a66fec19b2f81f5717204b253e2 -Author: Monty Taylor -Date: Sun Jul 21 09:35:17 2013 -0700 - - Remove the need to specify the pbr hook - - If you're running pbr codepaths, you want the hook. There is no need - to say "pbr=True" in setup.py and then to list the hook in setup.cfg - now that d2to1 is in the tree. - - Change-Id: Ie33d3e08d5a4133f5caf2613859919ce4f02c4a0 - -commit 71bea435b6f73644d5d7320001ac56d78bcc4687 -Author: Monty Taylor -Date: Sun Jul 21 09:58:36 2013 -0700 - - Move d2to1 more into the source tree - - When we merged in d2to1, we kept it separate, but I don't think there - is a great benefit to doing that. - - Change-Id: I3972b3132619e8e2dd7e362ca5fe9d1e3add43b8 - -commit d09372e59e0a951867da65cd152e7d3f0e8faf0f -Author: Monty Taylor -Date: Sun Jul 21 09:42:42 2013 -0700 - - Set defaults directly in option processing - - Change-Id: Iaa327862fc9e43aade2dd1ed66aa27f335f12ac7 - -commit e6164128930f4d3e203b0a8434ab096895b81d18 -Author: Doug Hellmann -Date: Sun Jul 21 10:57:11 2013 -0400 - - Do not assume the tests run as jenkins - - Use $HOME instead of "/home/jenkins" in the generated configuration - files to let the script be run as a user other than jenkins. - - Change-Id: I9413591bb4a7d821382eae6dc3edd1df0c41a5e6 - -commit 705c04becdef75efbc67cb294981a7f6ab298a61 -Author: Monty Taylor -Date: Sat Jul 20 13:32:56 2013 -0700 - - Add libffi-dev - - Change-Id: I4dc822eba0e1597e9eec1ec057d37871d930eb84 - -commit 29afae0bf24ebd513291668a0dd3b57d7c25a782 -Author: Sergey Lukjanov -Date: Thu Jul 18 09:47:52 2013 +0400 - - Ignore project creator while generating AUTHORS - - New projects created by OpenStack Project Creator - , so it'll be better to remove it - from the AUTHORS file. - - Change-Id: I32975bd430635a38c7e737e70f381f7b07c6ed0c - -commit 09d9af4ad072c402c30c389a838be16d55f7b2c7 -Merge: 5ebf34c 5f94c7e -Author: Jenkins -Date: Tue Jul 16 22:58:29 2013 +0000 - - Merge "Add Python 3.3 checking" - -commit 5f94c7ee4a2d12609391cf1635b6d1dd016ff954 -Author: Julien Danjou -Date: Mon Jul 15 19:19:44 2013 +0200 - - Add Python 3.3 checking - - This adds support for a working py33 tox target. - - Change-Id: Icfe1ed7dd256568f33487d03ba9c9be9a454c84a - -commit 5ebf34cc1701dbd9925631e453f39cc8125e600f -Merge: b24d4ca a61eae6 -Author: Monty Taylor -Date: Fri Jul 12 03:03:18 2013 -0400 - - Merge feature/merged2to1 into master - - Upstream d2to1 has been rather unresponsive, and doing what we need - in this case is really easier without the extra complexity. - - Change-Id: Ibd16944e76ad8398b57b6ddcbcd150cd462add3e - -commit a61eae656b839f1135f83844564fb3e4608309c6 -Author: Monty Taylor -Date: Thu Jun 20 12:40:45 2013 -0400 - - Fix some issues in setup.py test - - While tracking down a troveclient issue, found several issues in - the new python setup.py test command: - - * check the right source files when we're trying to decide whether to - re-run egg_info - * fix bogus dependency links args when installing test requires - * fix bogus .egg_info dir name when a project name includes a hyphen - - Change-Id: I0a1964902a87f72eb67f43b10f90dfee8c7d7875 - -commit 8809f523684d3da5377723dab1fbe34ce428621d -Merge: 313866f 04b4933 -Author: Jenkins -Date: Fri Jul 12 04:46:12 2013 +0000 - - Merge "Put AUTHORS.in at the top of AUTHORS." into feature/merged2to1 - -commit 313866f845dce197fe53288f3bcf400ebbcf3c9b -Merge: fb3ff01 137bdc5 -Author: Jenkins -Date: Fri Jul 12 04:45:44 2013 +0000 - - Merge "Support version override with PBR prefix." into feature/merged2to1 - -commit 04b4933575cf8f90f77855fcf8ba6447ff94cf60 -Author: Monty Taylor -Date: Sun Jun 23 20:08:28 2013 -0400 - - Put AUTHORS.in at the top of AUTHORS. - - swift has an AUTHORS file that puts a header at the top of the - file with some extra information, then lists the contributors. - If we put AUTHORS.in at the top of the generated file, then we - can put their boilerplate into AUTHORS.in and the resulting file - should look the same. - - Change-Id: I2caa4e606dd1199f49c925dccc64d492848ac580 - -commit 137bdc5bdf2803541e50a09fc27fddf720ce79a3 -Author: Monty Taylor -Date: Thu May 30 02:55:50 2013 -0400 - - Support version override with PBR prefix. - - For non-OpenStack consumption of PBR, OSLO_PACKAGING_ is a weird - version override env var. - - Change-Id: I8e80bcc5bc56e7950ed5cf0d24657957570134cf - -commit b24d4ca203d2af8b5600a36946cae02ee6af7ad7 -Merge: 896883d 448e4e5 -Author: Jenkins -Date: Fri Jul 12 01:24:57 2013 +0000 - - Merge "Fix some issues in setup.py test." - -commit 896883d14f2ec0c96dfdb96248b21a9f4a6aa522 -Merge: 6555aef a88bbd7 -Author: Jenkins -Date: Fri Jul 12 01:23:41 2013 +0000 - - Merge "Support version override with PBR prefix." - -commit 6555aefe0b3891237d89abebc45883c1a15cc101 -Merge: ce11c73 a7901f7 -Author: Jenkins -Date: Fri Jul 12 01:15:59 2013 +0000 - - Merge "Don't try to install requirements repo." - -commit a7901f74cd299e5a5784b07cc4bae6ca5abb2687 -Author: Monty Taylor -Date: Fri Jul 5 16:39:50 2013 -0400 - - Don't try to install requirements repo. - - Change-Id: I5c4c4a6128f9d71da9725160e62e74575f7cddae - -commit fb3ff01ecd97823e76ee0948db2fa3a6d9cf1f8f -Author: Monty Taylor -Date: Sun Jun 23 17:35:49 2013 -0400 - - Allow pip installation to be skipped. - - Distro packagers don't really need for us to attempt to pip install - things for them. They're usually managing that dependency tree - in the distro packaging. Add an env var they can set in their spec - or rules files to skip any pretense of doing anything with install - requirements. - - Change-Id: Ia6387eab3267fa3c4019c4a9d90e4780319c2397 - -commit d88c6f803a20205f3b065b4e6684c1ef67506a8f -Author: Monty Taylor -Date: Thu Jul 4 22:50:11 2013 -0400 - - Don't run pip needlessly - - We can detect if the env we are a part of has our requirements met - already. If this is the case, don't re-run pip at all, so that we - don't waste time. - - Change-Id: If49cd7bd558f98d8e6f51b0fe0192978bee9c77e - -commit 746b78d637724b369477270f518aa09768c5124e -Author: Monty Taylor -Date: Fri Jul 5 16:39:50 2013 -0400 - - Clean up hacking and path issues with d2to1 - - We imported in another code base. It takes a little bit of path - adjusting to get things right. - - Change-Id: Ifb96652c822d5d243a6bedb77bc34e919be2d3a8 - -commit a88bbd771996f483a8d8766e9e3b7ddce7c2a3c3 -Author: Monty Taylor -Date: Thu May 30 02:55:50 2013 -0400 - - Support version override with PBR prefix. - - For non-OpenStack consumption of PBR, OSLO_PACKAGING_ is a weird - version override env var. - - Change-Id: I8e80bcc5bc56e7950ed5cf0d24657957570134cf - -commit 448e4e51fbbd52c2b3c32b511ae50ca64f40038a -Author: Monty Taylor -Date: Thu Jun 20 12:40:45 2013 -0400 - - Fix some issues in setup.py test. - - While tracking down a troveclient issue, found several issues in - the new python setup.py test command: - - * check the right source files when we're trying to decide whether to - re-run egg_info - * fix bogus dependency links args when installing test requires - * fix bogus .egg_info dir name when a project name includes a hyphen - - Change-Id: I0a1964902a87f72eb67f43b10f90dfee8c7d7875 - -commit 295dbe1da3315d2f21acc02f0fce83e96224041e -Merge: ce11c73 712f639 -Author: Monty Taylor -Date: Sat Jul 6 14:16:17 2013 -0400 - - Merge d2to1 into the tree, complete with history. - -commit 712f639977d5c229e70a6d404bc5912e700a270d -Author: Monty Taylor -Date: Wed Jun 26 11:33:59 2013 -0400 - - Add support for namespace packages. - - Without this, packages with namespace packages do not properly - create .egg-info/namespace_packages.txt - -commit ce11c732ac2f59a7cd252f9fd10bb4c7c025518f -Author: Julien Danjou -Date: Fri Jul 5 14:40:35 2013 +0200 - - testr: fix Python 3 compatibility - - Change-Id: Id6d15638277433f202857d2541e727b2b534c99c - Signed-off-by: Julien Danjou - -commit c996027aa2212dad6a05887b666f6bf137617abe -Author: Julien Danjou -Date: Wed Jun 12 17:47:14 2013 +0200 - - Allow to override requirement files via environ - - Change-Id: Ibcef09d97129644c09d761b46380b339eda2e942 - -commit c5fa8f46bceb3c0e2ad1c4d247e7b84cd7c5081d -Author: Monty Taylor -Date: Fri Jun 21 12:16:20 2013 -0400 - - Add importlib to the filter list. - - Change-Id: I8025f5592b53acac7e70b590b2c61c95b1757474 - -commit 5da640cca0f4395947f7b45319c2cf6b460ccaf5 -Author: Julien Danjou -Date: Thu Jun 20 14:30:35 2013 +0200 - - Fix integration script - - Don't fail on inability to write new ChangeLog or AUTHORS files. - Ignore comments in requirements files - - Change-Id: I0c017b493ca1ef3f1c770daf25d8778bd98f02ef - Fixes: bug #1192889 - -commit 69d91b8b42662dcfbdf646434326350d129123fd -Merge: 4060b98 9524e7b -Author: Jenkins -Date: Wed Jun 19 02:02:32 2013 +0000 - - Merge "Move testrepository to test-requirements.txt." - -commit 4060b983f3b47ac176c6918400223644505a4dc0 -Merge: 17ac6ab 378261a -Author: Jenkins -Date: Tue Jun 18 20:08:25 2013 +0000 - - Merge "Add an integration test script." - -commit 9524e7b34378e65c79645c8012408d87cac87341 -Author: Dan Prince -Date: Tue Jun 18 13:45:59 2013 -0400 - - Move testrepository to test-requirements.txt. - - Fixes LP Bug #1192272. - - Change-Id: I42c3e89bab6539b949a27bcaf07c6579081624af - -commit 17ac6ab00d7396d2d8c4ec11322612d96d103917 -Merge: 182feb3 04316fe -Author: Jenkins -Date: Tue Jun 18 15:26:06 2013 +0000 - - Merge "Make python setup.py test do the right thing." - -commit 04316feeb9590e31824a5a018f497989b04f45ba -Author: Monty Taylor -Date: Wed May 22 02:14:27 2013 +0200 - - Make python setup.py test do the right thing. - - As a step towards a common interface to running tests even when we're - not in the virtualenv - make python setup.py test actually be useful. - - Change-Id: I8e4bc9bb78be37b4d13f8d6c2edfe2d67554ad78 - -commit 378261a8cba818a29b7e3d33b917de5ed0751579 -Author: Monty Taylor -Date: Thu Jun 13 23:09:41 2013 -0400 - - Add an integration test script. - - The script is intended to be run on a prepared server such as what - devstack-gate produces. - - Test that each of the projects can be installed from scratch without - pbr being previously installed into a plain raw non-distribute-based - virtualenv. This is the closest we can come to testing that pip - installing from the internet is going to work. - - We also need to test that this can be done in the various combinations - of setuptools/distribute/pip, and we need to test that pip installing - the repo, the tarball and running python setup.py install work. - - Change-Id: If3f17795374cfce726c60de0f09fc2a1e694eea3 - -commit 182feb30610500687a67adad2801a4e54bdea7d8 -Author: Monty Taylor -Date: Thu Jun 13 08:44:47 2013 -0700 - - Fix pip invocation for old versions of pip. - - Fixes bug 1190749. - - Change-Id: I91fce8ee1c37f945062e81c1585ee45613e05371 - -commit fa4f46e39cb74630c8acdb008ea1bef62e5f4014 -Author: Monty Taylor -Date: Mon Jun 10 21:55:50 2013 -0700 - - Remove explicit depend on distribute. - - Things in the world are moving towards setuptools 0.7, and - there is not a path between distribute and setuptools. Our explicit - dependency on setuptools is causing us to have to write patches to - try to jump through additional hoops to get it to install in the - right contexts. - - Fixes bug 1189941 - - Change-Id: Id7a749c02203100dab52160a551d3548c8a48fd6 - -commit 6c91a6f0f0c4ab04f9847622deb34e4ca76cf569 -Merge: a793ea1 d1c53dd -Author: Jenkins -Date: Tue Jun 11 13:40:50 2013 +0000 - - Merge "Use pip instead of easy_install for installation." - -commit d1c53ddad7a90529f151fa08feee41c6d16c44a1 -Author: Monty Taylor -Date: Wed Jun 5 11:40:13 2013 -0400 - - Use pip instead of easy_install for installation. - - If we're running the installation of dependencies for installation - ourselves anyway - just use pip and be done with it. This means - that our requirements will get installed consistently regardless of - whether we're using pip, python setup.py install or a tox environment. - - Change-Id: If92557a33a76553ad36bd136fa87780857a894b1 - -commit a793ea1632f8600280e3af57d351b7fdacc5d2dc -Merge: 04984a5 6c27ce7 -Author: Jenkins -Date: Mon Jun 10 22:34:16 2013 +0000 - - Merge "Skip git-checkout related tests when .git is missing" - -commit 6c27ce7c8a96e3e035d0e8fd58bf52abc6c9492d -Author: Dirk Mueller -Date: Mon Jun 10 14:18:46 2013 +0200 - - Skip git-checkout related tests when .git is missing - - When running tests from the released tarballs, the - AUTHORs related checks are failing due to missing .git - directory and the fallout caused by it. - - Change-Id: Ic960863621f1b239ced299f892466537431d44d5 - -commit 04984a51b1a6f933531063b53b9efa5bf3edfb23 -Author: Monty Taylor -Date: Thu May 30 02:03:39 2013 -0400 - - Refactor hooks file. - - It was long and rambly. It's also in need of unittesting. So split - it into some classes so that we can test the inputs and outputs - more sensibly. - - Change-Id: I3d28f5771e38b819f98a9af06aeb06529be7b302 - -commit a65e8ee654c623fa360ef9e2b4c9b72039a32b39 -Author: Monty Taylor -Date: Thu Jun 6 23:56:32 2013 +0200 - - Remove jinja pin. - - Change-Id: Id5154c120aad2b12ebbc2963466b0d3e961e56db - -commit c1c3aa10431d0990431f90f85376ce736141915e -Merge: 850cdd1 20c1071 -Author: Jenkins -Date: Wed Jun 5 20:33:19 2013 +0000 - - Merge "Explicitly install install_requires." - -commit 850cdd106f1e01c2366978813ba4c2deed90e89b -Merge: eb3ebd5 b18913e -Author: Jenkins -Date: Wed Jun 5 14:10:22 2013 +0000 - - Merge "More python3 compatibility." - -commit 20c1071eed26cda6aeda8e78a37bb8c98b0e3b44 -Author: Monty Taylor -Date: Wed Jun 5 08:34:02 2013 -0400 - - Explicitly install install_requires. - - PBR uses distutils.install instead of setuptools.install to provide - non-egg based installs. This is effectively the same behavior as the - --single-version-externally-managed flag to setuptools, which is what - distro packagers use inside of debs and rpms. We do this so that we - can do things like install manpages and config files. - - Unfortunately, this has the unintended consequence of completely - skipping dependency processing. - - Add the logic from distribute into our install class to ensure that - the contents of install_requires are installed appropriately. - - In the future, we'll want to replace this method with one that uses - pip instead of easy_install. Since we're doing the work now in our - code, we might as well do it well. - - Change-Id: Id5465766f762ab37f121ee3d72a82098654e30db - -commit eb3ebd540c48a341d828b5fb9e1e8c7a2d8c3f57 -Merge: c65554f e7b9036 -Author: Jenkins -Date: Tue Jun 4 14:34:48 2013 +0000 - - Merge "python3: Use six everywhere" - -commit c65554f24bc12f1560e2a4b83314a17361c0269d -Merge: dc952ec 2dc50ea -Author: Jenkins -Date: Tue Jun 4 00:36:38 2013 +0000 - - Merge "Handle versioned egg fragments in dependency URLs" - -commit b18913e5778b78e6e6d98da36cf88df0150f226e -Author: Clark Boylan -Date: Mon Jun 3 14:05:02 2013 -0700 - - More python3 compatibility. - - * pbr/packaging.py: Properly convert bytes into unicode strings and back - to bytes again. Replace os.path.walk() with os.walk(). - - * pbr/tests/__init__.py: Remove use of mox. - - * pbr/tests/moxstubout.py: Remove use of mox. - - * pbr/tests/test_setup.py: Use bytestrings instead of str or unicode - when performing IO. - - * pbr/tests/test_version.py: Remove use of oslo.config. - - * requirements.txt: Pin jinja2 to version compatible with python3.2. - - * test-requirements.txt: Remove oslo.config and mox. - - Change-Id: I9b5a32d7204fa2af56ecf4fdcf6b6da3bbb03200 - -commit e7b90361b9dcf14a702fe8c3527406135abde624 -Author: Chuck Short -Date: Mon May 27 14:10:59 2013 -0500 - - python3: Use six everywhere - - Use six to improve compatibility between python2 and python3. - - Change-Id: Idc0b251d05f418a28a914d910dabd4a2d9ebdf2a - Signed-off-by: Chuck Short - -commit dc952ecd751347bed13575008aa9bfe46e340587 -Merge: 7d7c76e c505680 -Author: Jenkins -Date: Sat Jun 1 14:57:02 2013 +0000 - - Merge "Add vim and emacs files to .gitignore." - -commit 7d7c76ed2d68c3710d61b33c44b36520f61ed7f8 -Merge: 0846ee6 45da670 -Author: Jenkins -Date: Fri May 31 12:45:51 2013 +0000 - - Merge "Fix tox.ini to not reference deleted testenv" - -commit c5056806b9ee97f6c8776951f3d2c08c7687e28a -Author: Monty Taylor -Date: Thu May 30 02:04:24 2013 -0400 - - Add vim and emacs files to .gitignore. - - Change-Id: I872de20371ae8afeafb30412516d95a9e35f9644 - -commit 0846ee631374982973d96ae0d8f9eebc026125e3 -Author: Devananda van der Veen -Date: Wed May 29 15:37:52 2013 -0700 - - Fix sphinx autodoc module headers. - - Change-Id: I769eacf33053926e326e3d612b688cd8929f31ce - -commit 2dc50ea1e467fa5a301fc6b6812b798599f0ac04 -Author: Mark McLoughlin -Date: Wed May 29 21:45:16 2013 +0100 - - Handle versioned egg fragments in dependency URLs - - If you include a dependency URL in your requirements file that has an - egg fragment e.g. - - http://tarballs.openstack.org/oslo.config/oslo.config-1.2.0a2.tar.gz#egg=oslo.config - - we include the full URL in dependency_links (as you'd expect), but also - include the egg fragment in our requires. - - With oslo.config, we're seeing a situation where 1.1.1 is installed and, - while pip knows that 1.2.0a2 is available (via dependency_links), - because our requires only say 'oslo.config' and we haven't passed - --upgrade, then pip sees the requirement as satisfied and doesn't - install 1.2.0a2. - - What we really want to express is "we require at least 1.2.0a2 and - here's where you can find it" so, for example, we'll be happy if a newer - version is installed or available from pypi but, if not, then we'll - install from the supplied URL. - - Now, egg fragments can be versioned e.g. - - http://tarballs.openstack.org/oslo.config/oslo.config-1.2.0a2.tar.gz#egg=oslo.config-1.2.0a2 - - but we need to transform the fragment so our requires becomes: - - oslo.config>=1.2.0a2 - - We should be fine for a backwards compatibility perspective, because - an egg fragment which included a hyphen just wouldn't have worked. - - Change-Id: I6ec1b935d08ed5db993a3e47f591104528582101 - -commit 45da670de2acb58744a76e093eb93f562d2ef787 -Author: Mark McLoughlin -Date: Wed May 29 21:17:47 2013 +0100 - - Fix tox.ini to not reference deleted testenv - - The pyflakes testenv was removed by commit 806a5b9. - - Change-Id: If696c91ac013c806cf80805084045e0b153c5508 - -commit f675e5fb4a1828494d1f19a3c8104f7112a73396 -Author: Monty Taylor -Date: Sat May 25 14:36:57 2013 +0200 - - Fix author and changelog skipping. - - Same problem as the other one. - - Change-Id: I6d63b6d969756bca6b7df9ef9ee78e12ca1b052e - Reviewed-on: https://review.openstack.org/30538 - Reviewed-by: James E. Blair - Approved: Clark Boylan - Reviewed-by: Clark Boylan - Tested-by: Jenkins - -commit 304196c10153ff220d3aa920d5e5bf45d0aedf2e -Author: Monty Taylor -Date: Sat May 25 07:59:26 2013 +0200 - - Fix doc autoindexing. - - The config section get returns a tuple, not a string, so we were trying - to lower() a tuple. That clearly does not work. - - Change-Id: I96602a25686d447bd3437807d9e55aaec6bb9540 - Reviewed-on: https://review.openstack.org/30520 - Reviewed-by: Chris Krelle - Reviewed-by: Devananda van der Veen - Reviewed-by: Clark Boylan - Reviewed-by: James E. Blair - Approved: James E. Blair - Tested-by: Jenkins - -commit 15c09876901fbcd9c8d2819f7ef6d3d6a7447ec2 -Author: Tim Simpson -Date: Fri May 17 18:22:59 2013 -0500 - - Changed _get_git_directory() to use git itself. - - This lets pbr work on projects that are checked out as submodules. - - Change-Id: I8c47a7dbae0bd390bd2529f972ffe9920aed374e - Reviewed-on: https://review.openstack.org/29619 - Reviewed-by: Monty Taylor - Reviewed-by: Clark Boylan - Approved: Monty Taylor - Tested-by: Jenkins - -commit 61d92ff6d2c22fb751d615ff4da1a1415dae2c8d -Author: Chuck Short -Date: Fri May 17 21:56:58 2013 -0500 - - python3: Python3.x compatibility - - Mechanical change for python3 compatibility - - Signed-off-by: Chuck Short - - Change-Id: I43b99f5823101d517a0e55178fbe9ddf20934117 - Reviewed-on: https://review.openstack.org/29622 - Reviewed-by: Clark Boylan - Approved: Jeremy Stanley - Reviewed-by: Jeremy Stanley - Tested-by: Jenkins - -commit 115370fe8ef70f977cfbbce33c984adde9d93066 -Author: Monty Taylor -Date: Thu May 9 16:12:15 2013 -0400 - - Cosmetic doc fixes. - - Change-Id: I753c663dbfeef0cfc94be8b146bad4170b0c0f89 - Reviewed-on: https://review.openstack.org/28714 - Reviewed-by: Clark Boylan - Reviewed-by: James E. Blair - Approved: Monty Taylor - Tested-by: Jenkins - -commit 5d0e256f4bdcd93a0da85c01de0677f2ef91f428 -Author: Monty Taylor -Date: Mon May 13 10:14:11 2013 -0400 - - Make parse errors meaningful. - - This makes the error displays on a bad setup.cfg value go from: - - error in setup command: Error parsing setup.cfg: IOError: 2 - - to - - error in setup command: Error parsing setup.cfg: IOError: No such file or - directory: 'README' - - Which makes debugging eversomuch better. - -commit 5ce79fd4cf740044f314ce36246276119502cd05 -Author: Dan Prince -Date: Wed May 8 19:51:05 2013 -0400 - - Add missing files to the tarball. - - Change-Id: Ie09661763663d73d3e482c32b64c10a59ae055e9 - Reviewed-on: https://review.openstack.org/28641 - Reviewed-by: Clark Boylan - Approved: Jeremy Stanley - Reviewed-by: Jeremy Stanley - Tested-by: Jenkins - -commit 6d656500f5068de3bac541974b2d4a17953cc4b3 -Author: Monty Taylor -Date: Thu May 2 11:49:18 2013 -0400 - - Default to single-version-externally-managed - - The other thing is always confusing and never what people want. - - Change-Id: I915f561da2f74048c24dd324dbe71b5446d39197 - Reviewed-on: https://review.openstack.org/28060 - Reviewed-by: James E. Blair - Reviewed-by: Clark Boylan - Approved: Jeremy Stanley - Reviewed-by: Jeremy Stanley - Tested-by: Jenkins - -commit 52fb3618ed72f4c0a4e17e70e3c0a02c2b7afb1e -Author: Monty Taylor -Date: Thu Apr 25 15:25:38 2013 -0400 - - Add config for skipping authors and changelog. - - Swift does not want to autogenerate these - so allow them to configure - them off. - - Change-Id: I815fcbf9ec8d20f4a1c6cb4e2fe68a2ba8d1e305 - Reviewed-on: https://review.openstack.org/27519 - Reviewed-by: Clark Boylan - Reviewed-by: Jeremy Stanley - Approved: Jeremy Stanley - Tested-by: Jenkins - -commit 9bd7716b2bbe3bf211a464e310dc5c93cc1a0631 -Author: Monty Taylor -Date: Mon Apr 15 14:14:27 2013 -0700 - - Update to d2to1 0.2.10. - - We fixed a string bug upstream which was released, and also added some - additional backwards_compat options. - - Change-Id: I636a47952a90e6e0df864dbdc9243b77eeb6d77e - Reviewed-on: https://review.openstack.org/26968 - Reviewed-by: Jeremy Stanley - Approved: Clark Boylan - Reviewed-by: Clark Boylan - Tested-by: Jenkins - -commit 0d335d080445d9a657a9e9e3397ccbb682ac5025 -Author: Erik M. Bray -Date: Wed Apr 10 15:47:22 2013 +0000 - - Added some additional zest.releaser hooks to deal with some perpetual annoyances of doing releases. - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@24209 fe389314-cf27-0410-b35b-8c050e845b92 - -commit d1d4f9c2344d1efe655c9068774fcf7cb42bd053 -Author: Erik M. Bray -Date: Tue Apr 9 15:20:19 2013 +0000 - - When catching exceptions from a setup-hook don't throw a traceback up for sys.exit() - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@24204 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 778d76ba2a35a3b94d752e578418310db789985a -Author: Monty Taylor -Date: Fri Apr 5 21:33:04 2013 -0400 - - Don't try to smart find packages that aren't there. - - We help out by looking for the obvious stuff. But sometimee, like in - git-review, we don't have a package at all. - - Change-Id: Ic575c0008c69ffaba43a637b460899dd848d3fd5 - Reviewed-on: https://review.openstack.org/26289 - Reviewed-by: James E. Blair - Approved: Clark Boylan - Reviewed-by: Clark Boylan - Tested-by: Jenkins - -commit 2796f9add5be6e2b2c0b5139070eb746eb05ce4c -Author: Monty Taylor -Date: Fri Apr 5 20:46:36 2013 -0400 - - Add support for manpages. - - Change-Id: I7fc77c48b515437d40f4046324cbff2536296c20 - Reviewed-on: https://review.openstack.org/26284 - Reviewed-by: Clark Boylan - Reviewed-by: Jeremy Stanley - Approved: Jeremy Stanley - Tested-by: Jenkins - -commit 5d39f9220aeef1720f7636ea5b4e0fb08ac16aca -Author: Monty Taylor -Date: Fri Apr 5 20:19:45 2013 -0400 - - Support forcing single-version-externally-managed. - - git-review needs this to enable manpage installation. - - Change-Id: I23ffc654fb2a83319c8d450e91304ae9ed767820 - Reviewed-on: https://review.openstack.org/26283 - Reviewed-by: Clark Boylan - Approved: Jeremy Stanley - Reviewed-by: Jeremy Stanley - Tested-by: Jenkins - -commit 8dff555d197960cfae6627b3676bcd46eb7692a2 -Author: Monty Taylor -Date: Mon Apr 1 12:39:19 2013 -0400 - - Add more iterations to BuildDoc coverage. - - Using testscenarios, construct more combinations of test options for - the autodoc_index_module option. - - Change-Id: I96b2816be2c652478b37c03cb5755a83dfeb0894 - Reviewed-on: https://review.openstack.org/25825 - Reviewed-by: James E. Blair - Reviewed-by: Clark Boylan - Approved: Monty Taylor - Tested-by: Jenkins - -commit 5b8b7f1d8389223b83d01ba45b4c52a0d92bb15b -Author: Monty Taylor -Date: Fri Mar 29 01:26:57 2013 +0100 - - Align Sphinx autodoc options with oslo. - - The Sphinx autodoc changes also went into olso a little differently. - - Change-Id: If1f337db693053f2627c0c426a51bc13128033a7 - Reviewed-on: https://review.openstack.org/25676 - Reviewed-by: James E. Blair - Reviewed-by: Clark Boylan - Approved: Monty Taylor - Tested-by: Jenkins - -commit 79d5a6cc7d9072a28fbd990be9f1a9fd9d660cfd -Author: Monty Taylor -Date: Fri Mar 29 00:31:58 2013 +0100 - - Using __file__ was getting the wrong location. - - __file__ is relative to pbr itself inside of a remote pip build. - - Change-Id: I76215abadc8a1a95f5e82680593a856e71d262ec - -commit d0b083d28f3299c163058ea27b47654bd40c5e8a -Author: Monty Taylor -Date: Wed Mar 27 16:40:45 2013 +0100 - - Add support for configuring pbr sphinx options. - - Change-Id: Idfdd1c8850433bf3ea2439f939756f5c60bb88a1 - -commit d539c3d76b80dcdb833240057306e54bc41f8d37 -Author: Monty Taylor -Date: Wed Mar 27 16:34:30 2013 +0100 - - Add support for warnings=errors. - - Change-Id: I710439b01b0585e5e97a337387c508ac26faa6c5 - -commit 155e64f050c5cb72cff9c944d00cacf0835eaac2 -Author: Monty Taylor -Date: Sun Mar 24 18:38:00 2013 +0100 - - Fix authors generation from co-authored-by. - - It turns out that the reasons we add tests is to run them. - - Change-Id: I6212e799c1f11ffb4e9d8b15600edc4b4d885d3e - -commit 5b3e94254f43e87993b60d155407877fc574c1d4 -Author: Monty Taylor -Date: Sun Mar 24 18:21:50 2013 +0100 - - Ported in Co-authored-by support from oslo. - - Change-Id: I2db5b4f22f24686ada7c40fad2da134403812675 - -commit 014afbd2af4ab135f713e81183d1487eaaac059c -Author: Monty Taylor -Date: Wed Mar 20 00:18:12 2013 -0700 - - Fix up the test suite to actually all pass. - - Change-Id: Ifc8b2442c03408f489b5f97936f3c9ff35eedca2 - -commit d8c8b7db3593184c98f2f8321070ad1c1ceb98ac -Author: Monty Taylor -Date: Tue Mar 19 21:06:19 2013 -0700 - - Added version code. - - Change-Id: I7e7da2eb238dd6b80b778acec5a23945473f7a74 - -commit 806a5b915b5d87409cc21aae2c68661a11ef0b13 -Author: Monty Taylor -Date: Tue Mar 19 18:39:29 2013 -0700 - - Update tox to run hacking. - - pbr can't depend on hacking, because hacking depends on pbr. But, - we can put it into the tox file. - - Change-Id: I49d17917f79c167ae7df9bef3f59047e5c12d33e - -commit 3d10e09ccdf68d4118d4e04eb73a46e2f3703350 -Author: Monty Taylor -Date: Tue Mar 19 18:33:08 2013 -0700 - - Make hacking compliant. - - Change-Id: Ibbd091decfe377a43f691aaf26905edb40ff299f - -commit 27b621ad63ba175e0ec4841bc3ec3ecaaf4f35d3 -Author: Monty Taylor -Date: Tue Mar 19 13:00:41 2013 -0700 - - Ensure that reuqirements files are shipped. - - Change-Id: I4bf9c7d38e9d2ebd93b972c415a33d8d510b03ca - -commit cb55b5df5c430738b5fe3fcbc3eb2bcb9587d2d6 -Author: Monty Taylor -Date: Mon Mar 18 10:47:00 2013 -0700 - - Add MANIFEST.in. - - Change-Id: I5c7b7ce3bbfa89e26179c1fc1b757d17c37e7394 - -commit 1d3422fefd61c8eb165d5c8535af9cb4797f59b1 -Author: Monty Taylor -Date: Sun Mar 17 23:51:59 2013 -0700 - - Update documentation for release. - - Change-Id: I215bfa00a836c7fafb535b78e6fef89c81e28817 - -commit e8af43a31805e933391f93954256c9c15f188407 -Author: Monty Taylor -Date: Sun Mar 17 23:27:50 2013 -0700 - - Rename back to PBR. - - Change-Id: I13ee7fab7858231b0fa17f9116176a09184e8b0e - -commit ba33408cb532c772b1723f71118ce63c4808959e -Author: Monty Taylor -Date: Wed Mar 13 13:40:24 2013 -0700 - - Remove extra complexity of six.u wrapper. - -commit eaef2c9be50b09708b86466822e5275fe154edbf -Author: Monty Taylor -Date: Tue Mar 12 12:23:00 2013 -0700 - - Add contributing file. - - Change-Id: Icccca9a07a724c70bccb96cf6f97c8ff147af90f - -commit cf868504e6fd0cc6f781928779a9022cfd94b92d -Author: Monty Taylor -Date: Tue Mar 12 11:15:01 2013 -0700 - - Fix .gitreview file. - - Change-Id: I53e1bed966a88d7bc38d6405eb8c6728d4f3ce83 - -commit ff01b4cd3ad3bb49333f185f648cfb411193d154 -Author: Monty Taylor -Date: Tue Mar 12 12:46:23 2013 -0400 - - Add docs dir. - - Change-Id: I25e95a48a27b7e4151b09497adf02c7d5e328836 - -commit 6d82d62164647a3bb5a419370a00aa97b9490e63 -Author: Monty Taylor -Date: Tue Mar 12 12:07:52 2013 -0400 - - Cleaned up stdout capture invocation. - - Change-Id: I775e016d31bde72772810ea49399a04eeb1c63a1 - -commit 6e4a663b188e3bd36fd7554d7f5ce0c57df8b11e -Author: Monty Taylor -Date: Tue Mar 12 12:06:16 2013 -0400 - - Put stdout capture in the base test class. - - Change-Id: I829b10fdae4def7664f71f4e6f835577075fefcc - -commit 24f7985ac5e60d021298bc36a578bf383a47ed37 -Author: Monty Taylor -Date: Tue Mar 12 11:40:14 2013 -0400 - - Amended README testing instructions. - - Change-Id: I0988fa318da381a2621f94c355459bf1550f57f7 - -commit f208b1937ef6be79f985d9361bbaf097b06bd7ad -Author: Monty Taylor -Date: Tue Mar 12 11:38:10 2013 -0400 - - Update README with test running instructions. - - Change-Id: I772b8fda5abdd07bc212a5fc7358e4b712425cd2 - -commit 4ec8bb6e292f90761e2899cadcd82086805fbee6 -Author: Monty Taylor -Date: Tue Mar 12 11:34:22 2013 -0400 - - Move setup_requires to setup_requires_dist. - - In anticipation of pep-426 - -commit 5161ca2ac692f01021b016e1d057cc91406d4848 -Author: Monty Taylor -Date: Mon Mar 11 19:50:32 2013 -0400 - - Move sphinx to test-reuqirements. - - Change-Id: I15ffeec34cdf9be24ffade5701b8e723aaaa171c - -commit dd3500843141d185049ea46d4f05c91ce57cb878 -Author: Monty Taylor -Date: Mon Mar 11 19:48:35 2013 -0400 - - Deal with Sphinx import ordering. - - Change-Id: I94183c5547e07aa2c13c562bd1975442c08f99bd - -commit 5740a0e2ccc378b6412921137a53867cdd5e17d8 -Author: Monty Taylor -Date: Mon Mar 11 18:30:43 2013 -0400 - - Add a better todo comment. - - Change-Id: Iefbf40d4898ae74423d9808a668e2b88b500e45c - -commit 85e5c4f8461844ff764248388bd92733663b2976 -Author: Monty Taylor -Date: Mon Mar 11 18:19:56 2013 -0400 - - Update docs. - - Change-Id: Ie10b07c44fe8fc5131bfe0691e2bd4db0623a720 - -commit caf4be4778d9885f3c9c5a4b73b971b0c852706f -Author: Monty Taylor -Date: Mon Mar 11 18:07:37 2013 -0400 - - Just use d2to1 via hooks mechanism. - - It turns out we can just have only our code and use d2to1 directly. - - Change-Id: I4700ad51bf4377797ede55d3cf5ec09f424874ed - -commit feabee8fe7588badd63bd450788e279c82858e1b -Author: Monty Taylor -Date: Mon Mar 11 18:05:35 2013 -0400 - - Add a few more backwards compatibility options. - -commit 34a5291b6fb2a961b8c2ab5dd3308a2b3b8fa7c4 -Author: Monty Taylor -Date: Mon Mar 11 18:01:28 2013 -0400 - - Fix exception handling error. - - The exception handler was passing an exception object to the unicode - function, which was not causing it to stringify. - -commit 4a674682f6de64e816ca85a7ca1cd9ee744ac0fa -Author: Monty Taylor -Date: Sun Mar 10 22:06:47 2013 -0400 - - Lower distribute requirement - it's too extreme. - - Change-Id: I684577d0c9f92a3a09f53b38ee03ddd4124324c4 - -commit e4cd0e21debeab1b5fc4a5665f49d7c19bbd987c -Author: Monty Taylor -Date: Sun Mar 10 21:39:35 2013 -0400 - - Remove sex requirement, since it's in extern. - - Change-Id: I399d88c73d0279e8fe0f7c51412fa35631eee7f1 - -commit f618f7c11775dcd177f990f646145846a3e56442 -Author: Monty Taylor -Date: Sun Mar 10 21:25:54 2013 -0400 - - Remove version that had been used for testing. - - Change-Id: I1ff919b9629c08893ca3df3c38a5afaf21155657 - -commit cf8971c5d9ac657fac446625d6a11f01b0676728 -Author: Monty Taylor -Date: Sun Mar 10 21:24:29 2013 -0400 - - pep8/pyflakes fixes. - - Change-Id: I61fe65815d924fdcaf742e4e6af6a2885e8c2354 - -commit 8a4789883a38aef43e558abee7c5a27f0d7cc03b -Author: Monty Taylor -Date: Sun Mar 10 18:06:12 2013 -0400 - - Fix things up to work with nova. - - Add extern/six back - turns out setup_requires isn't transitive. - Make sure .gitignore is right. - -commit aa4641f0e6e668d4eb3a0c1f70a3e15e83097c6a -Author: Monty Taylor -Date: Sun Mar 10 17:18:15 2013 -0400 - - Split out oslo.packaging. - - Include logic taken from d2to1 to allow us to inject into setup.py. Combined - with ols openstack/common/setup.py code. - - Change-Id: I27b341403bb8245e38f8e3c386f1a835b90b1843 - -commit f15e9db5f598b0d3cdfc57b976c156f525b6ad62 -Author: Monty Taylor -Date: Sun Mar 10 12:50:40 2013 -0400 - - Fix two minor style things. - - There is a pep8 indentation issue and an unused import. Fix them here - so I can verify that my later patches don't regress and become unhappy. - -commit 43e71193fbc5f08a35ab3eaefa0d16b7f91a77e7 -Merge: 4e3bf9a 8537ef5 -Author: Jenkins -Date: Thu Mar 7 22:55:19 2013 +0000 - - Merge "Add 'is' operator to extra specs ops." - -commit 4e3bf9a2a96fbcd07e0165a6594dced9cacfebde -Author: Jenkins -Date: Wed Mar 6 16:29:23 2013 +0000 - - Merge "Preserve exceptions in impl_zmq." - -commit 890d9685cdba0cfc8ca2b86c8981b272f3bc16aa -Author: Erik M. Bray -Date: Wed Mar 6 00:08:49 2013 +0000 - - Fixes #20. Make sure the manifest_maker monkeypatch only occurs once and that it gets all its required locals encapsulated. This is why I hate any sort of monkey-patching, but it appears to be the only way to get this feature working. - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@23570 fe389314-cf27-0410-b35b-8c050e845b92 - -commit b83cdb89705d746a4a0fb9f8b85522b3442301e6 -Merge: 6618d1f 25feae2 -Author: Erik Bray -Date: Tue Mar 5 21:12:15 2013 +0000 - - Merge pull request #16 from iguananaut/six - - Six - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@23561 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 6618d1f14bffd59d4e8168777c0378869bc66442 -Author: Erik Bray -Date: Tue Mar 5 21:12:14 2013 +0000 - - Fix 'except as' statements that were breaking things in Python 2.5 - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@23560 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 4f474beebcc04ba2c790c5729c4e6b3b89668cce -Author: Erik Bray -Date: Tue Mar 5 21:12:13 2013 +0000 - - Somehow neglected to include extra-file.txt used in the test for #15. Also moved the info log message that was causing othere tests to fail to only appear when commands are run that actually affect the manifest generation - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@23558 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 25feae28b398d58e10dbed81b6f89a2b441568ef -Author: Erik M. Bray -Date: Tue Mar 5 12:39:27 2013 -0500 - - Yet another Python 2.5 fix; I really ought to just set up my own 2.5 installation - -commit e8a1c1abb6a4137ac52aba7a2db2c5dac1f962d6 -Author: Erik M. Bray -Date: Tue Mar 5 12:24:28 2013 -0500 - - multiprocessing doesn't exist in Python 2.5 - -commit 06e151665e0f021a6f944a4c73e13bb0791e22ce -Author: Erik M. Bray -Date: Tue Mar 5 12:05:01 2013 -0500 - - Adds six.py and makes the necessary tweaks to improve support for using d2to1 natively across Python versions - -commit a44c84b90ac254d74235c0d2327c17f542c5fcbe -Author: Erik M. Bray -Date: Tue Mar 5 11:03:34 2013 -0500 - - Fix 'except as' statements that were breaking things in Python 2.5 - -commit 45ed5ce389e14f3963e1d0cdecbb4ef347e0ff1e -Author: Erik M. Bray -Date: Tue Mar 5 09:57:37 2013 -0500 - - Somehow neglected to include extra-file.txt used in the test for #15. Also moved the info log message that was causing othere tests to fail to only appear when commands are run that actually affect the manifest generation - -commit 8537ef5f9e1d32a9b5e2ee6aecb070c7fc1544ff -Merge: b00d8f9 6e82602 -Author: Jenkins -Date: Mon Mar 4 14:19:38 2013 +0000 - - Merge "Don't log a traceback on rpc call timeout." - -commit 738616c4a87cf372614f53d2d942c50e3d6ab60f -Author: Erik M. Bray -Date: Wed Feb 27 13:43:28 2013 -0500 - - Adds support for the tests_require keyword from setuptools. Tested by eating our own dogfood -- ./setup.py test now works for d2to1's own setup. - -commit 912865b41f1817a9be34840629696bbb22ff27e8 -Author: Thomas Grainger -Date: Wed Feb 6 23:23:33 2013 +0000 - - support test suite and test tests-require - - Fixes #8 - -commit b00d8f947594bec861522c0e04442d35f588b8f3 -Merge: fd75bc2 275e439 -Author: Jenkins -Date: Fri Mar 1 21:43:27 2013 +0000 - - Merge "Add simple in-memory cache from nova." - -commit fd75bc257588915f64d0e4195e8522f00ec0155f -Merge: 38100e5 6e82602 -Author: Jenkins -Date: Fri Mar 1 21:22:22 2013 +0000 - - Merge "Redis-based matchmaker" - -commit 9c3a9b834255e9e8cfb33978317dbb77b6f84ab9 -Author: Erik M. Bray -Date: Thu Feb 28 18:35:35 2013 -0500 - - Patch manifest_maker to support extra_files--this is really the only way I can see to do this at all sensibly - -commit ea2e44ffc729fb7d5e27b6771f7191e94b9e1c66 -Author: Erik M. Bray -Date: Wed Feb 27 15:19:04 2013 -0500 - - This is a test that should really work to test this feature - -commit 38100e5e8c97e7693307d58134b7cc61f7bd66a9 -Merge: b41b9ac e0cc5f8 -Author: Jenkins -Date: Mon Feb 25 22:25:26 2013 +0000 - - Merge "openstack.common.setup: fails to get version from git" - -commit 79c7c67fb4fc71206bc5cf9e77a95ae887d69d7e -Author: Erik Bray -Date: Mon Feb 25 19:52:45 2013 +0000 - - Merge branch 'master' into svn - - Conflicts: - d2to1/util.py - setup.cfg - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@23437 fe389314-cf27-0410-b35b-8c050e845b92 - -commit b41b9ac0601bad65713616691ff43a50f5d2a8f2 -Merge: d4d5d94 c36e378 -Author: Jenkins -Date: Mon Feb 25 19:32:05 2013 +0000 - - Merge "Decode / Encode string utils for openstack" - -commit d4d5d9470ab4beeb22a874f27927dfdb2896b50d -Author: Jenkins -Date: Mon Feb 25 15:50:11 2013 +0000 - - Merge "Clean up sqlalchemy exception code" - -commit e0cc5f8ab979e04bf4a9151245d4a496d383ea7e -Author: Davanum Srinivas -Date: Mon Feb 18 07:21:23 2013 -0500 - - openstack.common.setup: fails to get version from git - - quantum run_tests.py fails because - openstack.common.setup._get_version_from_git fails. It is because - quantum unit tests run under quantum/tests/unit instead of git root dir. - So the function should check parent dirs for .git. - cinder folks seem to have hit this bug (1125416). - - ERROR: test_network_gateway_update (quantum.tests.unit.nicira.test_networkgw.NetworkGatewayExtensionTestCase) - ---------------------------------------------------------------------- - Traceback (most recent call last): - File "quantum/quantum/tests/unit/nicira/test_networkgw.py", line 70, in setUp - config.parse(args=args) - File "quantum/quantum/common/config.py", line 99, in parse - version='%%prog %s' % quantum_version.release_string()) - File "quantum/quantum/openstack/common/version.py", line 63, in release_string - self.release = self._get_version_from_pkg_resources() - File "quantum/quantum/openstack/common/version.py", line 56, in _get_version_from_pkg_resources - return setup.get_version(self.package) - File "quantum/quantum/openstack/common/setup.py", line 334, in get_version - raise Exception("Versioning for this project requires either an sdist" - Exception: Versioning for this project requires either an sdist tarball, or access to an upstream git repository. - - Change-Id: I2e24c00b5ba8f35381cac081ff72d86ea0d75d19 - Fixes: bug #1131162 and bug #1125416 - Signed-off-by: Isaku Yamahata - -commit 6e82602dcc62f38886b6ac89b71608dcc525e47a -Author: Jenkins -Date: Thu Feb 21 00:59:29 2013 +0000 - - Merge "Revert "Implement replay detection."" - -commit d51a486248452898c7704c3941ade9dcbb766407 -Merge: c36e378 b993f3a -Author: Jenkins -Date: Wed Feb 20 21:17:02 2013 +0000 - - Merge "Move DB thread pooling to DB API loader" - -commit c36e378c545230dddd8de3d28afe93fff0a31826 -Author: Jenkins -Date: Wed Feb 20 04:03:02 2013 +0000 - - Merge "Fix IPC direct topic routing." - -commit 878dc64fc1cd2c4bd31599ebd59df1bdcb6f94bd -Merge: 3f394c3 275e439 -Author: Jenkins -Date: Wed Feb 20 01:38:37 2013 +0000 - - Merge "Fix "DirectConsumer needs mirrored queue support"" - -commit 3f394c3294a8b75edf498e408713377c842d5ad2 -Merge: eb770bd b993f3a -Author: Jenkins -Date: Wed Feb 20 01:31:53 2013 +0000 - - Merge "Fast serialization of RPC envelopes for Kombu" - -commit eb770bd82fce80dbb409d836faa77cb6c87a16e0 -Merge: 6766d93 b993f3a -Author: Jenkins -Date: Wed Feb 20 01:31:50 2013 +0000 - - Merge "Implement replay detection." - -commit 6766d93a0f5253b1c3d00e038cf6d94aabb39612 -Merge: e9a41cf b993f3a -Author: Jenkins -Date: Tue Feb 19 22:27:46 2013 +0000 - - Merge "Add function for listing native threads to eventlet backdoor" - -commit e9a41cfc0f1fc90aa267f448f022ac49db73f986 -Author: Jenkins -Date: Tue Feb 19 16:48:36 2013 +0000 - - Merge "Add ConfigFilter wrapper class" - -commit b993f3a66a4f6b5aca544c14fdc03d3f55578e45 -Author: Mark McLoughlin -Date: Sun Feb 17 15:22:44 2013 +0000 - - Use oslo-config-2013.1b3 - - The cfg API is now available via the oslo-config library, so switch to - it and remove the copied-and-pasted version. - - Add the 2013.1b3 tarball to tools/pip-requires - this will be changed - to 'oslo-config>=2013.1' when oslo-config is published to pypi. This - will happen in time for grizzly final. - - Remove the 'deps = pep8==1.3.3' and 'deps = pyflakes' from tox.ini as - it means all the other deps get installed with easy_install which can't - install oslo-config from the URL. - - Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc - -commit ba9731f371893ccaab60029587519ef41b58b44c -Author: Robert Myers -Date: Fri Feb 15 14:32:07 2013 -0600 - - Change the check for the existence of .git directory. - - In common setup the check for the .git directory is too - restrictive. Instead of checking that it is a directory just - check to see if it exists. That way if the project is part - of a submodule it will continue to work correctly. - - Change-Id: If6b6531ab5778ac17537e3f18bde1844620c8316 - Fixes: bug 1126416 - -commit ad8a8de3c938069f78985ceb118fb0ce9ae074e8 -Author: Davanum Srinivas -Date: Fri Feb 15 10:46:18 2013 -0500 - - returncode for Popen is valid only after communicate call - - Found when testing a bug in cinder (1125416), code - relying on throw_on_error won't work because returncode - is None if checked before the communicate() method is - called - - Change-Id: I8c9dd00396346ec3ad7bbe1dc17643c385da8d6f - -commit 5ad695d521cb5f03f34c0028a4d30c830af4c79a -Author: Jenkins -Date: Thu Feb 14 17:11:10 2013 +0000 - - Merge "Fix Lack of reconnecting operation when using rabbitmq mirrored queue" - -commit 275e439a231e66e7b4ccb1fe40808e5b09f7afe3 -Merge: 2c185ee b5f8bad -Author: Jenkins -Date: Wed Feb 13 12:52:14 2013 +0000 - - Merge "sort options to make --help output prettier" - -commit b5f8bad0469456b27864468592010a749c1c40da -Author: YAMAMOTO Takashi -Date: Wed Feb 13 14:01:46 2013 +0900 - - sort options to make --help output prettier - - explicitly sort options when adding them to argparse. - it's a bit silly to print them in a dict iteration order. - - Change-Id: Id508331d7ee3b24e76be7fa958d27d29905bd3d2 - Signed-off-by: YAMAMOTO Takashi - -commit 2c185ee7003b308d9f8a99ced7e2680d611af9d8 -Merge: bedeaa3 57a9474 -Author: Jenkins -Date: Mon Feb 11 02:32:04 2013 +0000 - - Merge "Allow running test in uninstalled source tree." - -commit bedeaa3fac18d1d3a36e486a4b2c279b0f452d46 -Merge: b01f822 00adcb1 -Author: Jenkins -Date: Mon Feb 11 02:31:30 2013 +0000 - - Merge "Support testing args for LocalhostMatchMaker." - -commit b01f822cfe0929a2db9ef1f8f1366d37519f101b -Merge: e99aa3c c8c632c -Author: Jenkins -Date: Mon Feb 11 02:29:20 2013 +0000 - - Merge "Add a fixture for dealing with mock patching." - -commit 57a947452cc86a22d87727ffed80c87d73359a04 -Author: Monty Taylor -Date: Sun Feb 10 04:19:30 2013 -0600 - - Allow running test in uninstalled source tree. - - It was pointed out that we missed the use-case that running tests - in a fresh tree checkout should work - and we missed that by - reaching too far into the setup module interface. Shame on us. - - Change-Id: Ic0056a3113b308f063d927484e1e4a44c9316a2d - -commit e99aa3c20827afa6d7130202124f86f788b3ce2a -Merge: 25f9035 3e7ce9d -Author: Jenkins -Date: Sat Feb 9 19:00:19 2013 +0000 - - Merge "Implements import_group" - -commit 25f903593e9406ece1f67eee4535e1fc4dfece66 -Merge: ac3aa70 00adcb1 -Author: Jenkins -Date: Sat Feb 9 18:25:11 2013 +0000 - - Merge "Update HACKING.rst per recent changes" - -commit ac3aa70ae876052e25a075c3040ee48a17b03b04 -Merge: ce5a97e 70433bf -Author: Jenkins -Date: Fri Feb 8 15:58:59 2013 +0000 - - Merge "Exchanges should return directed topics." - -commit ce5a97ea53d946a93c5df66de5aa3807df8946dd -Merge: 9a1497e 3b460ba -Author: Jenkins -Date: Fri Feb 8 02:47:30 2013 +0000 - - Merge "Allow to_primitive to ignore datetimes" - -commit 9a1497efdaac53c2eab1e49bb2d1032e86e0cb1b -Author: Mark McLoughlin -Date: Mon Feb 4 16:40:01 2013 +0000 - - Remove openstack.common.db.common - - Since this only contains exceptions that are either used in session.py - or utils.py (not both), it seems sensible to move them into the modules - where they are used. - - Also, remove the use of the Invalid base exception class since we don't - seem to be making use of the base class anywhere by catching it rather - than the more specialized exceptions. - - Change-Id: Ib05bb2e0a9494e1dc60c60b8eee0e76b5d2ee555 - -commit dd5dbdab796771384d3d9c6394b8e857de1048fd -Author: Mark McLoughlin -Date: Mon Feb 4 16:32:06 2013 +0000 - - Add missing DBDuplicateEntry - - The session.py part of nova's 8835866 was imported, but not the newly - added exception. - - Change-Id: I0d79a8536f0c8f14cb062dc61c5fce100b63fd64 - -commit c8c632c902a21e30d0833f4fdf72b1f7016aaf5c -Merge: a5587f3 70433bf -Author: Jenkins -Date: Wed Feb 6 15:05:33 2013 +0000 - - Merge "timeutils: considers that now is soon" - -commit a5587f3e367c565eef9c91f5ea57b0b015e30da3 -Merge: a0d35de 3b460ba -Author: Jenkins -Date: Wed Feb 6 14:46:50 2013 +0000 - - Merge "Emit a warning if RPC calls made with lock." - -commit a0d35dee43bb0edf2a3dd604eb6e90ad707db2b0 -Merge: 7da7ba4 916c243 -Author: Jenkins -Date: Wed Feb 6 14:41:47 2013 +0000 - - Merge "Be explicit about set_default() parameters" - -commit 7da7ba4c194efe7b4b48428c3d8c63bfc1dc8e59 -Merge: 4679ff3 916c243 -Author: Jenkins -Date: Wed Feb 6 14:41:45 2013 +0000 - - Merge "Remove duplicate DB options" - -commit 4679ff3f6059e907118acc6bdbde6f2ca02cb6e8 -Merge: ee5122d 916c243 -Author: Jenkins -Date: Wed Feb 6 14:41:43 2013 +0000 - - Merge "Eliminate gratuitous DB difference vs Nova" - -commit ee5122dc668415cacac36e168c8af9b7f61a0cba -Merge: 3b460ba 916c243 -Author: Jenkins -Date: Wed Feb 6 14:41:16 2013 +0000 - - Merge "Import sqlalchemy session/models/utils" - -commit 3b460ba9e748729b07a92dec1adfaf23a1daad73 -Merge: 1329c1f 00adcb1 -Author: Jenkins -Date: Tue Feb 5 16:26:21 2013 +0000 - - Merge "Mark password config options with secret" - -commit 1329c1f983af9a4e36995ce64d5c8728def55d93 -Merge: 3a5b277 70433bf -Author: Jenkins -Date: Tue Feb 5 16:23:23 2013 +0000 - - Merge "Only unpack replies on caller." - -commit 3a5b27702948c76b79f7cce486d17f07b7671be2 -Merge: 00adcb1 70433bf -Author: Jenkins -Date: Tue Feb 5 16:23:20 2013 +0000 - - Merge "Use bytes instead of str" - -commit 916c243678af9c2943da213ba63d542f56329dc4 -Author: Eric Windisch -Date: Tue Dec 4 10:40:10 2012 -0500 - - Import sqlalchemy session/models/utils - - Bring in session, base model, utilities, and tests for sqlalchemy - from Nova. - - Add sqlalchemy to pip-requires and and python-mysql to test-requires. - - Partially implements blueprint common-db - - Change-Id: I3e0065cdac87e10c4e0742d66c293c72bb3acbb2 - -commit 00adcb1ca6becbdc564f46ff9975a23a83a140ec -Merge: 2a6e9d0 3960362 -Author: Jenkins -Date: Sat Feb 2 16:52:24 2013 +0000 - - Merge "Support for SSL in wsgi.Service" - -commit 2a6e9d0b52ddc3532427bf8389e3e6d29bc2a017 -Merge: f994f32 70433bf -Author: Jenkins -Date: Sat Feb 2 16:42:39 2013 +0000 - - Merge "Add _FATAL_EXCEPTION_FORMAT_ERRORS global." - -commit f994f3277bcdc00f9644512cbdc04b9db7cb39ba -Merge: cb9d643 70433bf -Author: Jenkins -Date: Sat Feb 2 16:22:58 2013 +0000 - - Merge "Use importutils for matchmaker import." - -commit cb9d643d0b4bee0b52be1a46bd5fbcc426b2d6b7 -Merge: 70433bf 0d8a4a8 -Author: Jenkins -Date: Sat Feb 2 16:21:56 2013 +0000 - - Merge "Dict args safe processing." - -commit 3e7ce9dca141a8e149a50d9f5a56798242aea779 -Author: Zhongyue Luo -Date: Wed Jan 30 22:27:51 2013 +0800 - - Implements import_group - - Created import_group method in cfg.py - Added testcases - - Fixes bug #1107843 - - Change-Id: I427d4069dacbb6e586687370adbb08b5d50f7b63 - -commit 70433bf4faa537dfbf5f4f2ffcc895791c3ef775 -Merge: 3960362 0d8a4a8 -Author: Jenkins -Date: Wed Jan 30 07:14:41 2013 +0000 - - Merge "Support running uninstalled in a tarball dir." - -commit 396036269446e4bcc76305fec74197d65a010958 -Merge: 2871b3b 1c5721c -Author: Jenkins -Date: Tue Jan 29 07:41:13 2013 +0000 - - Merge "Default lockutils to using a tempdir" - -commit 2871b3b409df1091246c59311a238eb7e038fae9 -Merge: 1c5721c 2d5afe9 -Author: Jenkins -Date: Tue Jan 29 07:38:56 2013 +0000 - - Merge "Fix Pep8 Warning" - -commit 2d5afe991fa3089e12e6f1e7d81919d779be68c6 -Author: Dirk Mueller -Date: Mon Jan 28 18:17:35 2013 +0100 - - Fix Pep8 Warning - - Fixes - E271 multiple spaces after keyword "return _run_shell_command(" - - Change-Id: Ic6b2c88a0b7cabd04341d073ef837a13c1bb7a29 - -commit 1c5721c9694777c7416296bde00b3502c3a8ddf6 -Merge: 437857e aeebbc2 -Author: Jenkins -Date: Mon Jan 28 12:42:41 2013 +0000 - - Merge "Fixes "is not", "not in" syntax usage." - -commit 437857ec3644923aa8835401ede90d267b54d910 -Merge: 25cd932 74a0633 -Author: Jenkins -Date: Mon Jan 28 07:55:57 2013 +0000 - - Merge "Use testtools as test base class." - -commit 25cd93245dba3d6a55fe333dfbd34a8257ea25b7 -Merge: d220011 6ceaef0 -Author: Jenkins -Date: Mon Jan 28 07:55:56 2013 +0000 - - Merge "Start adding reusable test fixtures." - -commit aeebbc248dce5c00c31739e44ecda3eba2cc5b2b -Author: Zhongyue Luo -Date: Mon Jan 28 14:35:49 2013 +0800 - - Fixes "is not", "not in" syntax usage. - - Replaced "not ... is" to "is not" - Replaced "not ... in" to "not in" - Removed a redundant parenthesis - - Change-Id: I9564ab1207ccdcb32d7c2bb9e8f29658b2232ff9 - -commit d220011329ad7153db3c98da94cb34113e4a519b -Author: Mark McLoughlin -Date: Fri Jan 25 14:01:14 2013 +0000 - - setup: count revs for revno if there are no tags - - We currently use 'git describe --always' to figure out the number of - commits there have been leading up to the HEAD commit. - - However, if there are no tags in the repo, git-describe just returns - the sha hash of HEAD and we fail. - - In that case, use 'git rev-list HEAD | wc -l' so we can be #winning. - - Change-Id: I345e0ee32189504276b3dfd3367057ce1d4a2b06 - -commit 74a0633f99fa44d4965cc2bfa461fb443744ecf8 -Author: Monty Taylor -Date: Tue Jan 22 19:54:57 2013 -0500 - - Use testtools as test base class. - - On the path to testr migration, we need to replace the unittest base classes - with testtools. - Replace tearDown with addCleanup, addCleanup is more resilient than tearDown. - The fixtures library has excellent support for managing and cleaning - tempfiles. Use it. - Replace skip_ with testtools.skipTest - - Part of blueprint grizzly-testtools. - - Change-Id: I45e11bbb1ff9b31f3278d3b016737dcb7850cd98 - -commit 0d8a4a8419b1cc55af6929abd13983ea6b0f8793 -Merge: 6ceaef0 6a5e5db -Author: Jenkins -Date: Wed Jan 23 22:02:03 2013 +0000 - - Merge "UTC ISO8601 from timestamp" - -commit 6ceaef00aa86fd91480fe583684fbc53a9698910 -Merge: 38faaa9 642a479 -Author: Jenkins -Date: Mon Jan 21 23:48:54 2013 +0000 - - Merge "Move logging config options into the log module" - -commit 642a479597be03e3c2dd40e13ca3e47e2ec38682 -Author: Mark McLoughlin -Date: Mon Jan 21 14:13:59 2013 +0000 - - Move logging config options into the log module - - We learned a lesson in Nova - it's best to declare and use config - options within a single module if possible. Globally declared and - use config options grow like weeds and it becomes harder to find out - if, where and how individual options are used. - - Strangely, in cfg itself, we randomly declare a bunch of logging options - which are only used within the openstack.common.log module - let's move - the options there and remove the CommonConfigOpts class before they - become part of the API we commit to when oslo-config is released. - - A minor detail in the patch - the logfile and logdir options are already - deprecated in favour of log_file and log_dir, but we never got around to - removing all other traces of the deprecated options. - - Change-Id: I3913ea54465658d93dc56e014dfe5d911b0541d6 - -commit 38faaa9045de9453959e4529eb07fbd9ce17d72f -Author: Monty Taylor -Date: Thu Jan 17 12:56:31 2013 -0500 - - Use revno and git sha for pre-release versioning. - - In discussions with ttx and zul, it became clear that the git describe info - for our intra-release case wasn't providing any value and was providing - confusion. Additionally, plain git sha's are not providing enough info. - - So, the scheme settled on that breaks the least amount of things and yet - still reduces complexity is: - - if pre-version: # server projects - try: - use current tag - except: - use pre-version+revcount+gitsha - else: - use git describe | s/-/./ - - Additionally, we'll use a as a prefix for the revcount, b as the prefix for - the milestone portion of a milestone tag, and rc as the prefix for rc's, so - that for our releases, python version sorting works as expected. - - Change-Id: I6f0fe029d225afa8f435bc83216fc144c2402ae0 - -commit 6059356043be3dcd13a6f5f0c47423d122a6d7a2 -Author: Monty Taylor -Date: Thu Jan 17 11:57:21 2013 -0500 - - Add env var version override for packagers. - - Fixes bug 1100805. - - Change-Id: I8c8ba8610ed2d9093e188c1412e9689314560015 - -commit 6a5e5db464fd1817d77dfbb84112245f02997fc9 -Author: Steven Hardy -Date: Fri Jan 18 10:59:03 2013 +0000 - - trivial pep whitespace fix - - Fix multiple spaces after keyword pep8 error, causes our pep8 - gate to fail (pep8 1.3.4) - - Change-Id: I67ab86ce17a1a91f8dab61efb18b83b22d2e1488 - Signed-off-by: Steven Hardy - -commit 1ba2dd7a02c1b50d74cb5bd249183e93a9711a33 -Merge: fed75fb fd843b2 -Author: Jenkins -Date: Fri Jan 18 07:13:47 2013 +0000 - - Merge "Remove write_requirements" - -commit fed75fbb00687b143afb22cb439b62a910db2c00 -Merge: f17885f 918a430 -Author: Jenkins -Date: Fri Jan 18 06:33:48 2013 +0000 - - Merge "ThreadGroup remove unused name parameters" - -commit f17885f3cb85a305795a519102266613c3679b28 -Merge: 11b1f61 1773f0b -Author: Jenkins -Date: Thu Jan 17 13:12:18 2013 +0000 - - Merge "use regexp to parse the mailmap" - -commit fd843b2e8beca1f1ca1536e14258d5dfe55fe20c -Author: Monty Taylor -Date: Wed Jan 16 18:27:09 2013 -0500 - - Remove write_requirements - - Everyone hated this, so we decided to get rid of it at the last summit. - Actually, come to think of it, I think we decied to get rid of it in San Fran. - - Change-Id: I7d93af1eb98a37ff018730669731a7ee22516279 - -commit 948efaf0af40ad2e1f8ce42f6e93f34ed2f1b3e8 -Author: Erik Bray -Date: Wed Jan 16 20:31:03 2013 +0000 - - Rolling back to previous version of resolve_name; it's possible this can fail in the presence of a broken namespace package, but I want to make sure that's the case before trying to fix it. - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21583 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 11b1f61cfccacc5efe122c79c40250d6b7bc79b7 -Author: Johannes Erdfelt -Date: Wed Jan 16 18:05:50 2013 +0000 - - Stop using no longer valid -E option for pip - - Fixes bug 1100403 - - Version 1.1 of pip dropped the -E option. It's not necessary anyway since - running pip in a correctly setup virtualenv will automatically do the right - thing. - - Change-Id: Ifec9f27b8dc169d594125a0808126abe77ed42e7 - -commit e23024a3ebd3a3813b86d549d46e1bcc9a62e270 -Author: Mark Sienkiewicz -Date: Wed Jan 16 16:50:58 2013 +0000 - - oops - now compatible with python 3 - - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21578 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 1773f0b17ad6ebbcdb16c56bc8c70545e14d7420 -Author: Ionuț Arțăriși -Date: Wed Jan 16 15:06:00 2013 +0100 - - use regexp to parse the mailmap - - this also makes parse_mailmap() work with the swift .mailmap and should - be more readable - - Change-Id: I3abb2a18d655e507bee5f621ebc64421d943cf0b - -commit 918a4304114436085b20a951123fd19394683356 -Merge: 5b411ce 2a32cec -Author: Jenkins -Date: Tue Jan 15 20:41:40 2013 +0000 - - Merge "Make tox run doctests" - -commit 5b411cec986a60194cfb0b6076f68c4c7b9cfcf6 -Merge: b14aee1 f45c20e -Author: Jenkins -Date: Tue Jan 15 20:40:15 2013 +0000 - - Merge "Allow rpc drivers to always be imported" - -commit b14aee11ab4b6a3131e149a93de3ca1eed7fc70b -Merge: 756fb8c f45c20e -Author: Jenkins -Date: Tue Jan 15 20:37:05 2013 +0000 - - Merge "Rework zmq setup and cleanup" - -commit 756fb8ccc2735576936c1fd14bd9544bcdef9144 -Merge: f45c20e 29ddcae -Author: Jenkins -Date: Tue Jan 15 18:05:56 2013 +0000 - - Merge "Fix zmq socket.close() with eventlet 0.9.17" - -commit 2a32cec380b78f123150138f5a0780ac2a3799be -Author: Mark McLoughlin -Date: Mon Jan 14 08:38:17 2013 +0000 - - Make tox run doctests - - Use 'nosetests --with-doctests' to run any doctests found. We currently - only use doctests in a handful of places, but we may as well run them - to ensure they work. - - Make the cfg doctests avoid using the global CONF since we would need - to reset its state between each doctest. - - Fix the cliutils doctests to actually pass. - - Use 'nosetests --exclude-dir=tests/testmods' to avoid loading the - modules from this dir while discovering doctests. The cfg unit tests - rely on these modules not having been previously loaded. - - Change-Id: I19ad70767fa5c8352b994dc963b5d3a7c9d9eb95 - -commit f45c20e0edfd4fe9c88fd7ba35b32293d03e87f1 -Merge: 647d6ba 29ddcae -Author: Jenkins -Date: Tue Jan 15 09:23:19 2013 +0000 - - Merge "Add missing parameter to impl_fake notify function." - -commit 647d6ba97e433d65d82244b649b970f0feddee04 -Merge: 983d059 29ddcae -Author: Jenkins -Date: Tue Jan 15 08:17:12 2013 +0000 - - Merge "Implement importutils.try_import." - -commit 983d059bff34681951c7e00b17347c6c6a9307d4 -Merge: fe9cb69 29ddcae -Author: Jenkins -Date: Tue Jan 15 07:53:38 2013 +0000 - - Merge "reusable ZmqProxy service initialization" - -commit fe9cb696c7062cc52731825421d64d4c052a3dea -Merge: 29ddcae f687ccd -Author: Jenkins -Date: Tue Jan 15 07:46:57 2013 +0000 - - Merge "call() to accept serialize and force_envelope" - -commit 29ddcaeb23611246ecd16cfbfc734f9375a0519c -Merge: 84da9ea 823a874 -Author: Jenkins -Date: Sun Jan 13 00:25:04 2013 +0000 - - Merge "Verbose should not enable debug level logging" - -commit 84da9ead187a27af026a9d0b37cf8c3bffeb84ef -Merge: 2f494ad f687ccd -Author: Jenkins -Date: Sat Jan 12 12:01:11 2013 +0000 - - Merge "zmq-receiver msg forwarding in greenthreads" - -commit 2f494ad80d835aef3d7ed1f7e449521245f620e1 -Merge: 283b528 fe444f0 -Author: Jenkins -Date: Sat Jan 12 10:12:02 2013 +0000 - - Merge "Improve millisecond logging" - -commit 283b52829c9e5ee457e0285658328574efe9e160 -Merge: 9664e72 fe444f0 -Author: Jenkins -Date: Sat Jan 12 10:11:42 2013 +0000 - - Merge "Log when release file lock" - -commit 9664e72d7194ece7684cce974a4d7df3a5ef39eb -Merge: f1f6b71 b298424 -Author: Jenkins -Date: Sat Jan 12 10:11:08 2013 +0000 - - Merge "Fix pep8 E125 errors." - -commit 823a874ec68ae5d01ff815a85859df29b00aa611 -Author: Davanum Srinivas -Date: Thu Dec 13 22:42:33 2012 -0500 - - Verbose should not enable debug level logging - - Fixes LP #989269 - - Currently setting --verbose in will still allow DEBUG level - message to be logged to python logger object. we need to check - for --debug first (set DEBUG level), then --verbose (set INFO - level) and if neither is set then set default to WARNING - - DocImpact - - Change-Id: Ic9e3cb5979b2d7283552ad3a461870373f45a239 - -commit b2984246de38c27feccf38996062f6bd18b2599e -Author: Monty Taylor -Date: Fri Jan 11 12:01:42 2013 +0100 - - Fix pep8 E125 errors. - - Caesar's wife must be above reproach. - - Change-Id: Iac85a57e71d403360f1567c07c8699057f0772fb - -commit f1f6b71d75d651f2c4e25d244934b52dab2beb7a -Author: Monty Taylor -Date: Thu Jan 3 09:22:00 2013 -0800 - - Simplify version processing. - - In response to the cessation of per-commit tarballs produced by the CI - systems, simplify the version processing code. We did many many many - complicated things to support producing release artifacts that were not - actually supported release artifacts. After a bunch of issues emerged, it was - determined that the best way forward was to stop producing quasi-not-really - non-release tarballs. If people want to consume versions of openstack that - are not released versions, the git repos are always available. - - Additionally, this patch removes versioninfo and just uses PKG-INFO and - pkg_resources to handle version processing. - - Change-Id: I5c799f3520adb2ba5288d852543706d81a92f8a1 - -commit 1f8b82c3047388352ebf59623cdd780d967991a2 -Author: Mark Sienkiewicz -Date: Fri Jan 11 18:40:34 2013 +0000 - - Any exception that escapes from a hook gets reported along with a stack trace. - - I added d2to1.util.nop_hook (prints that it was called) and d2to1.util.exception_hook (raises an exception) for debug/test use. - - - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21534 fe389314-cf27-0410-b35b-8c050e845b92 - -commit f687ccdbb291c3dbd9df2e1b654fb6b4b2f204f7 -Author: Mark McLoughlin -Date: Tue Jan 8 21:48:11 2013 +0000 - - Revert "Support lookup of value using "group.key"" - - This reverts commit 525ac47. - - There are already two ways to reference an option in a group: - - CONF.group.key - CONF[group].key - - Adding a third variant doesn't seem ideal. Also, for the specific case - of LazyPluggable in Nova, we can easily just pass an optional config - group name to the constructor. - - Change-Id: I1a29a18d90e8af3ce2563bd1b3eeb64422140016 - -commit fe444f05a7b53c5af63f9c98b3fbc32ce868c6b4 -Merge: 168e9f6 68aa539 -Author: Jenkins -Date: Tue Jan 8 19:27:55 2013 +0000 - - Merge "Use package for writing versioninfo." - -commit 168e9f6570a944938c55ef8261a1311ba8669179 -Merge: dd51a8a f87d0b6 -Author: Jenkins -Date: Tue Jan 8 19:20:12 2013 +0000 - - Merge "JSONDictSerializer encode objects to unicode" - -commit dd51a8a15090ce783ece7878bf7eac91819447dd -Merge: 39f1c86 f87d0b6 -Author: Jenkins -Date: Tue Jan 8 19:06:17 2013 +0000 - - Merge "rpc method arguments should be dict, not list" - -commit 39f1c861f9c0e55749040b6eecf17264f45eeaad -Merge: f50296a 1790bad -Author: Jenkins -Date: Tue Jan 8 13:30:18 2013 +0000 - - Merge "Support lookup of value using "group.key"" - -commit f50296a6b90de4d0b78696bbbd85bc7f5612f7c7 -Merge: 6feb536 b985d2e -Author: Jenkins -Date: Mon Jan 7 20:00:31 2013 +0000 - - Merge "Close kombu.connection.BrokerConnection correctly" - -commit 6feb536881f23f6115f9d42a11a8641620518750 -Merge: e72c23c 68aa539 -Author: Jenkins -Date: Mon Jan 7 19:53:06 2013 +0000 - - Merge "Add common base weigher/weigher handler for filter scheduler" - -commit e72c23c49a637c787b19a58dffc7c351cfbe13a3 -Merge: 14713ed 68aa539 -Author: Jenkins -Date: Mon Jan 7 19:52:36 2013 +0000 - - Merge "Add common filter/filter handler for filter scheduler" - -commit 1a106546e4626bb34327c6fae4e84cc287fb4b1f -Author: Mark Sienkiewicz -Date: Mon Jan 7 16:55:24 2013 +0000 - - remove debugging - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21386 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 14713ed5971e17edd6462a37223bdf032d618b34 -Merge: af03148 322214d -Author: Jenkins -Date: Mon Jan 7 14:39:24 2013 +0000 - - Merge "Add a latex command to our sphinx builders." - -commit af03148c107342fbd87f309b1c27498348899a91 -Merge: 9038bd1 68aa539 -Author: Jenkins -Date: Mon Jan 7 06:37:33 2013 +0000 - - Merge "Enable millisecond logging by default" - -commit 9038bd169363d8e98b8a38897c802c0c80f05363 -Merge: b3e7bd3 b985d2e -Author: Jenkins -Date: Sun Jan 6 19:27:59 2013 +0000 - - Merge "Fix debug message in multicall of rpc.amqp" - -commit b3e7bd368fe9fdbb84d201de3a699594a4a555ad -Merge: 25d120c 68aa539 -Author: Jenkins -Date: Sun Jan 6 05:55:28 2013 +0000 - - Merge "Optionally add message envelope to notifications." - -commit 25d120ca3429d7f58de8dfc4e71ad3a55e85477c -Merge: 5a847f4 b985d2e -Author: Jenkins -Date: Sat Jan 5 00:47:26 2013 +0000 - - Merge "Ensure proxy callback threads exit during tests" - -commit 322214d03a8fbe5351ff655eaf3638915e73adbc -Author: Monty Taylor -Date: Fri Jan 4 11:36:29 2013 -0500 - - Add a latex command to our sphinx builders. - - The libra project added this locally and use it for some docs they make. It - seemed like something we could add what we provide globally. - - Change-Id: I219829693568362bbe01354a8f477a10031754c4 - -commit 5a847f45a8cc321dd36a1aa3f4a15d87aa6b7906 -Author: Jenkins -Date: Fri Jan 4 15:48:59 2013 +0000 - - Merge "Make time comparison functions accept strings" - -commit 68aa539b83a560d67f9981f719cf8f5fc2e855d4 -Merge: 1d36af8 b985d2e -Author: Jenkins -Date: Thu Jan 3 14:43:38 2013 +0000 - - Merge "Add a rpc envelope format version number." - -commit 1d36af85f3044b8525862cfcd6f41e35c8636f1a -Merge: 423d3f7 b985d2e -Author: Jenkins -Date: Thu Jan 3 08:38:56 2013 +0000 - - Merge "Move rootwrap code to openstack.common" - -commit 423d3f7d4bc376a166e1211e657c492c534cb2a1 -Merge: 9fbf4e7 b985d2e -Author: Jenkins -Date: Thu Jan 3 08:06:09 2013 +0000 - - Merge "Don't use exclusive queues for fanout and direct" - -commit 9fbf4e73b4ed7067c14672472ea08fd581ca1bd8 -Author: Jenkins -Date: Thu Jan 3 07:48:48 2013 +0000 - - Merge "fix intermittent failures with deferred version test" - -commit 1790bad694726e83cc50e36d4819a7c9953980a6 -Author: Davanum Srinivas -Date: Wed Dec 26 22:50:35 2012 -0500 - - Support lookup of value using "group.key" - - Let us check if the opt_name has a '.', if it does then split it - into a group/key and try lookup using that combination. Since - LazyPluggable uses "CONF[self.__pivot]" if we just add this - capability to cfg, we get "LazyPluggable doesn't support - option groups" for free. - - Fixes LP #1093043 - - Change-Id: I9cedcf22014038e9fe4ed5e66ca5427aa99b5091 - -commit 1d14f14987ba5ce32c7b6ee5d9be98c66ecf137b -Author: Mark Sienkiewicz -Date: Fri Dec 28 21:24:23 2012 +0000 - - debugging auto builds - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21160 fe389314-cf27-0410-b35b-8c050e845b92 - -commit e5b049f72d9591b49640ca739bba6a31e55bb2f7 -Author: Mark Sienkiewicz -Date: Fri Dec 28 21:12:57 2012 +0000 - - debugging auto builds - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21159 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 237c3493b5a30972b17972c4a4ac39b61633eaf6 -Author: Mark Sienkiewicz -Date: Fri Dec 28 18:24:50 2012 +0000 - - fix up importer; clean hook name before search - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21150 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 8e535f638847706e4cd8f7a43ea07b5b06951d03 -Author: Mark Sienkiewicz -Date: Fri Dec 28 15:41:07 2012 +0000 - - show traceback when a hook encounters an exception - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@21145 fe389314-cf27-0410-b35b-8c050e845b92 - -commit b985d2ecefa2fd4033c0ef4f229178995b2f861f -Merge: f87d0b6 0395a60 -Author: Jenkins -Date: Tue Dec 18 00:35:27 2012 +0000 - - Merge "Register the control_exchange RPC option" - -commit f87d0b6db14d8e454d92e398da2a0bdcd5656b57 -Merge: 0395a60 2f9d3a8 -Author: Jenkins -Date: Wed Dec 12 20:48:58 2012 +0000 - - Merge "Make wsgi.Server comply with service.Launcher interface" - -commit 0395a604b8e558126630858a2fefa1470e12d736 -Merge: 51c2397 1a538df -Author: Jenkins -Date: Sat Dec 8 08:17:41 2012 +0000 - - Merge "Add deprecated --logdir common opt" - -commit 51c2397ccae00d5b1dbd4cb9e9d3114e37a31982 -Merge: 68c2884 1f80d96 -Author: Jenkins -Date: Sat Dec 8 08:15:53 2012 +0000 - - Merge "Allow remote stdlib exceptions to be deserialized" - -commit 68c2884a06f5c426db0dc4e15c5ea323b39643fc -Merge: 1779f9d acc7644 -Author: Jenkins -Date: Fri Dec 7 06:53:06 2012 +0000 - - Merge "Add deprecated --logfile common opt." - -commit 1a538dfd495ee9d84feaf4fc9c4fc144b0f2774a -Author: Mark McLoughlin -Date: Fri Dec 7 06:44:13 2012 +0000 - - Add deprecated --logdir common opt - - --logfile and --logdir are aliases Nova has for the --log-file and - --log-dir. If we're to support --logfile as a deprecated common - option, we should do the same for --logdir. - - Change-Id: I16485a93070d9ad7789a287d5b035c6f270ffead - -commit 1779f9d6c9f23803c693500c7be2e7553bb61b27 -Merge: a254ae3 2876287 -Author: Jenkins -Date: Thu Dec 6 23:40:47 2012 +0000 - - Merge "Change Exception MissingArgs's string" - -commit a254ae3249baba22518d6c0dd963fa688e2b2c64 -Merge: 31c071f 1c283f6 -Author: Jenkins -Date: Thu Dec 6 23:36:17 2012 +0000 - - Merge "Allow nova and others to override some logging defaults" - -commit 31c071f1858f5dd0d9b2e849fb7fb7e2d9c70c55 -Merge: 002d39d 1f80d96 -Author: Jenkins -Date: Thu Dec 6 19:43:04 2012 +0000 - - Merge "Allow exceptions to pass over RPC silently" - -commit acc7644965d2ed40138ac5386855580789068fa0 -Author: Dan Prince -Date: Thu Dec 6 10:40:36 2012 -0500 - - Add deprecated --logfile common opt. - - This adds a deprecated common options for --logfile which - is an alias for --log_file. This resolves some backwards compatability - issues with the most recent oslo common code where --logfile - was no longer a valid opt. - - Change-Id: I17b1277da94a2d81ae439d650a6d7321420dfe14 - -commit 002d39dc92b5e617479a835a7f47394a70b88918 -Merge: 2876287 2f9d3a8 -Author: Jenkins -Date: Thu Dec 6 12:42:02 2012 +0000 - - Merge "Fixing the trim for ListOp when reading from config file" - -commit 1c283f6b696b23a188dc4521f9d554680b1b2e9f -Author: Davanum Srinivas -Date: Wed Dec 5 16:11:48 2012 -0500 - - Allow nova and others to override some logging defaults - - - In log.py, indicate that logging module allows tweaking - of just logging_context_format_string option - - In cfg.py, add a method that can alter the default given - the options and new default - - add testcases for log.set_defaults and cfg.set_defaults - - Fixes LP #1083218 - - Change-Id: Iefdbce8505eb7a07f2b59d4ed7564b0146f1b0cd - -commit 2876287992916d5b1e9d4f536424821d8f59a5af -Merge: 3e47a1d 1f80d96 -Author: Jenkins -Date: Wed Dec 5 22:36:14 2012 +0000 - - Merge "Fix qpid cast_to_server regression." - -commit 2f9d3a84fc5274aaee85bbf257774aaeb67271d7 -Author: Michael Basnight -Date: Wed Dec 5 16:00:11 2012 -0600 - - Fixing the trim for ListOp when reading from config file - - Fixes Bug 1087018 - - Change-Id: I1c2d34166ae85add86daab6a7483b63297d00f66 - -commit 3e47a1d1d0d49d0ae49968bb2c326c0a4deab0b5 -Author: Jenkins -Date: Wed Dec 5 21:16:32 2012 +0000 - - Merge "Fix broken --version command" - -commit 1f80d963834ccd03c26c2e47aea1944197bd57a0 -Merge: faea47a 5e312cb -Author: Jenkins -Date: Tue Dec 4 09:44:31 2012 +0000 - - Merge "Add a CLI argument validation utility" - -commit faea47ab3a6ff9931fa42512e755b5fb01123846 -Merge: 04bcb6e 2542dfc -Author: Jenkins -Date: Mon Dec 3 20:01:43 2012 +0000 - - Merge "Fixing modulename so eventlet will log properly." - -commit 04bcb6e8b6c8877a44a263d136cc77f20ea10a85 -Merge: 23880de 34ce78b -Author: Jenkins -Date: Mon Dec 3 17:44:10 2012 +0000 - - Merge "Fix set_default() with boolean CLI options" - -commit 23880deca38ff538ace33c28a20c84f5fae3d5bb -Merge: 225c7e1 eb7e14e -Author: Jenkins -Date: Mon Dec 3 17:44:08 2012 +0000 - - Merge "Improve cfg's argparse sub-parsers support" - -commit 225c7e101f0fd0d91888434ec187d337c0921f41 -Merge: 2542dfc 6555e2d -Author: Jenkins -Date: Mon Dec 3 17:43:03 2012 +0000 - - Merge "Rename utils.py to strutils.py" - -commit 34ce78b65199452a507a93c54175d0bbccf2498a -Author: Mark McLoughlin -Date: Mon Nov 26 06:47:52 2012 +0000 - - Fix set_default() with boolean CLI options - - Porting to argparse broke set_default() with boolean CLI options. The - new test case shows this borkage. - - The issue is that, by default, argparse differs subtly from optparse in - its handling of defaults for boolean options. Compare: - - >>> p = optparse.OptionParser() - >>> p.add_option('--foo', action='store_true') - >>> p.add_option('--bar', action='store_true', default=False) - >>> p.parse_args([]) - (, []) - - to: - - >>> p = argparse.ArgumentParser() - >>> p.add_argument('--foo', action='store_true') - >>> p.add_argument('--bar', action='store_true', default=False) - >>> p.add_argument('--blaa', action='store_true', default=None) - >>> p.parse_args([]) - Namespace(bar=False, blaa=None, foo=False) - - i.e. unless you specify a default for a boolean option, optparse - defaults to None whereas argparse defaults to False. To get the - same optparse behaviour with argparse, you need default=None. - - Change-Id: Ifc92a834c4ba59e939d80ac5de24d7051232f5b5 - -commit 6555e2dc7aa13fbf15fae3f0e1c8f92d361bc5e2 -Author: Zhongyue Luo -Date: Wed Nov 28 14:04:11 2012 +0800 - - Rename utils.py to strutils.py - - Fixes bug #1083956 - - Change-Id: I681227e9428778adb7824a1930a33cfa5ffa13a1 - -commit 2542dfc43271581ef4de94e30325aa572de6fa5a -Merge: 4ae5017 25dda0f -Author: Jenkins -Date: Thu Nov 29 23:06:13 2012 +0000 - - Merge "Provide i18n to those messages without _()" - -commit eb7e14e25222691e29c00d9d4c5d2ac0734d88b0 -Author: Mark McLoughlin -Date: Fri Nov 23 15:50:04 2012 +0000 - - Improve cfg's argparse sub-parsers support - - In order for sub-parsers to be useful, you need some way of knowing - which sub-parser was chosen during argument parsing. It's pretty obvious - from the current sub-parsers test case that we don't have a convenient - interface for this. - - One way of doing it is to use the 'dest' argument when adding - sub-parsers: - - >>> subparsers = parser.add_subparsers(dest='cmd') - >>> subparsers.add_parser('a') - >>> subparsers.add_parser('b') - >>> parser.parse_args(['a']) - Namespace(cmd='a') - - The most sensible way to map this into cfg concepts is to register - sub-parsers as an Opt. This way, we can make name and argument values - of the sub-parser as an attribute on the ConfigOpts object: - - >>> def add_parsers(subparsers): - ... a = subparsers.add_parser('a') - ... a.add_argument('id') - ... b = subparsers.add_parser('b') - ... - >>> CONF.register_cli_opt(SubCommandOpt('cmd', handler=add_parsers)) - True - >>> CONF(['a', '10']) - >>> CONF.cmd.name, CONF.cmd.id - ('a', '10') - - The handler method is a bit awkward, but each time cfg is to parse - command line args it takes all the registered opts and creates a new - argparse parser. So we need to be able to re-add the sub-parsers each - time. - - Change-Id: I01bfd01bf8853cf57a9248b1663eb3da142366a4 - -commit 4ae5017bc68ccd1eeaff9bf6811c3dbc747bbeb8 -Merge: 71d602a e582e3f -Author: Jenkins -Date: Thu Nov 29 17:01:46 2012 +0000 - - Merge "Use Service thread group for WSGI request handling" - -commit 71d602a656c1f450e494cc7f0352f317002a9ecd -Merge: 8c8eb26 25dda0f -Author: Jenkins -Date: Thu Nov 29 16:50:20 2012 +0000 - - Merge "Qpid H/A cluster support" - -commit 8c8eb26e195dd651b12c06ba1e5b1cf2d2c83db1 -Merge: 71d8c5f b5619f1 -Author: Jenkins -Date: Thu Nov 29 16:49:34 2012 +0000 - - Merge "Hide the GroupAttr conf and group attributes" - -commit 71d8c5f0089b8ca911b648cf9dd501b06dee6a41 -Merge: e582e3f 4eb2aa9 -Author: Jenkins -Date: Thu Nov 29 16:36:04 2012 +0000 - - Merge "Fix regression with cfg CLI arguments" - -commit e582e3fcca5ebe236672a8d85ee05a7c4790874e -Merge: 3bd1e02 5e312cb -Author: Jenkins -Date: Thu Nov 29 14:52:09 2012 +0000 - - Merge "Fixes import order" - -commit 3bd1e02d4f5c4a176d267920e4ca0f6987fc6465 -Merge: 25dda0f b230af6 -Author: Jenkins -Date: Thu Nov 29 14:48:55 2012 +0000 - - Merge "Fix broken --help with CommonConfigOpts" - -commit 25dda0f3496323a367ca7035a199b75ede92ee79 -Author: Monty Taylor -Date: Wed Nov 21 10:53:18 2012 -0800 - - Make project pyflakes clean. - - Added both a tox test-env for pyflakes and fixed the current pyflakes errors. - This did actually fix a couple of bugs. - - The CI team has started using pyflakes on its projects and also has started - using oslo for things, so ignoring pyflakes warnings on the oslo code was - starting to get old. However, additionally, pyflakes is pretty solid, so we - should maybe consider gating on it across the board. (% locals() is the - biggest thing that we do that it doesn't like) - - Change-Id: Iac1ca62db301892b7863711162fcbc74807eb24f - -commit 4eb2aa93c304c9014b171f360a1748bfce8858a9 -Author: Mark McLoughlin -Date: Fri Nov 23 08:09:12 2012 +0000 - - Fix regression with cfg CLI arguments - - Fixes bug #1082279 - - Only options registered using register_cli_opt() should be available via - the CLI, but since e42276a all options are added to the CLI. - - Also modify one of the existing unit tests to catch this problem. - - Change-Id: I742a4ae4e0fc17cd9ae5e4424c2edd38e2bc50a2 - -commit 5e312cb4014fcc1f932f1baefd6808656e4ad4a4 -Author: Davanum Srinivas -Date: Sat Nov 24 08:54:20 2012 -0500 - - Fix ListOpt to trim whitespace - - - throw in an extra strip() in the list parsing code - - add a test case to verify that it works! - - Fixes LP #1079299 - - Change-Id: I4f0864c72ecd2569d0461c301acda395c87a93e0 - -commit 9bb500ee1be9c1d9350d1f50dcb5e6b2fdff5500 -Merge: 17b57e8 bb734e1 -Author: Jenkins -Date: Sat Nov 24 02:44:33 2012 +0000 - - Merge "raise_on_error parameter shouldn't be passed to task function" - -commit b5619f1453eb22f07501be29c5464fb85b415c46 -Author: Mark McLoughlin -Date: Fri Nov 23 15:12:12 2012 +0000 - - Hide the GroupAttr conf and group attributes - - There's no reason why an option group shouldn't have options called - 'group' or 'conf'. - - Add a test case which would have failed because the 'conf' attribute - would have been a ConfigOpts instance and fix it by making those - attributes private. - - Change-Id: Ic3e41a546c0d1b7b6aae04e1dbac2933ac661f57 - -commit b230af65c59b5e226c281f88b559202fe4f82576 -Author: Mark McLoughlin -Date: Fri Nov 23 11:45:04 2012 +0000 - - Fix broken --help with CommonConfigOpts - - Since we switched to argparse, the way help strings are interpolated - have changed and broken --help with the options registered by - CommonConfigOpts. - - Fix and add a new test case which would catch the issue. - - Change-Id: I10e42efe4721e22ff41d0efbf390c805ccb9a6a0 - -commit 17b57e8ab0c9614b11cf0135e91c2243176e8e7a -Merge: b690249 49187c9 -Author: Jenkins -Date: Fri Nov 23 04:25:41 2012 +0000 - - Merge "Account for tasks duration in LoopingCall delay" - -commit b6902499f91425bab35c3a9ac07556ff3b673482 -Merge: bb734e1 49187c9 -Author: Jenkins -Date: Fri Nov 23 04:25:20 2012 +0000 - - Merge "Convenience wrapper for datetime.timedelta.total_seconds()" - -commit bb734e1813d7af3aa821020c9a8d178bf1371071 -Merge: 648004c 7056d66 -Author: Jenkins -Date: Thu Nov 22 13:56:11 2012 +0000 - - Merge "update deprecated stanza" - -commit 648004c913b55db8b9e77bbc8d9073be0e131138 -Merge: 0b7f3d7 2c86539 -Author: Jenkins -Date: Tue Nov 20 23:05:28 2012 +0000 - - Merge "updating sphinx documentation" - -commit 0b7f3d778bd1bc8ca1733836ed531ec0eaa9b359 -Merge: 9c802d8 eb7f6d4 -Author: Jenkins -Date: Mon Nov 19 04:41:21 2012 +0000 - - Merge "Use the ThreadGroup for the Launcher" - -commit 2c865399e06e20e3b76c3a83ebc6bd7c1facc307 -Author: Joe Heck -Date: Sun Nov 11 21:00:42 2012 +0000 - - updating sphinx documentation - - * adding openstack theming (copied from keystone project theme) - * updating .gitignore to ignore generated API docs - * updated formatting in index.rst page - * updaed openstack/common/processutils.py to match hacking docstring - * updated docstrings to resolve sphinx warnings - - Change-Id: Ie89afe20eeab1efd2daf440fc65ccdf90f723c51 - -commit 9c802d85b153733b2e4da3eda740139f7d7b723b -Merge: 49187c9 eb7f6d4 -Author: Jenkins -Date: Fri Nov 16 18:14:50 2012 +0000 - - Merge "Change RPC cleanup ordering" - -commit 49187c9ac80711f2bf453fdf5f69a11945ddc816 -Author: Mark McLoughlin -Date: Mon Nov 12 16:26:08 2012 -0500 - - Don't reference argparse._StoreAction - - This is a private implementation detail of argparse, so we don't want - to rely on it. Just sub-class Action instead. - - Change-Id: Icfcc782cc334d1bc1d4940bec23af48ead692a9d - -commit 53d6149783ee7fe693a794d612ff5fe99eff2136 -Author: Mark McLoughlin -Date: Mon Nov 12 16:26:02 2012 -0500 - - Fix minor coding style issue - - Use the same style of exception handling used everywhere else. - - Change-Id: I5436de1996f69ea6210f48c11ef231eb950ad21d - -commit 6b88aa5f0fe8b2b205d8c29dfa191dcc7bfa35d7 -Author: Mark McLoughlin -Date: Mon Nov 12 16:26:00 2012 -0500 - - Remove ConfigCliParser class - - This sub-class of ArgumentParser isn't really justified anymore. - - Change-Id: I705224b6e18e4609a8e2deba283767233b0bd578 - -commit 4ca6f7283231c0e18203e605e8dded1affe14b18 -Author: Mark McLoughlin -Date: Mon Nov 12 16:25:59 2012 -0500 - - Add support for positional arguments - - argparse makes it awkward to implement the current cfg API where we - simply return the leftover arguments to the caller. - - Very few cfg users actually rely on this functionality and for those - cases it probably makes more sense for them to explicitly register - positional arguments or sub-parsers. - - Add support for positional arguments via a 'required' Opt attribute: - - opt = StrOpt('foo', positional=True) - conf.register_cli_opt(opt) - conf(['bar']) - conf.foo == 'bar' - - Change-Id: Iea746d710237e1ea26c1ef4871643941d1df09bd - -commit 63e57ac7c8cec065604394868b5f51a92da991e3 -Author: Mark McLoughlin -Date: Mon Nov 12 16:25:58 2012 -0500 - - Use stock argparse behaviour for optional args - - optparse would print "Options" but argparse prints "optional arguments". - - The default argparse behaviour is fine, let's stick with that. - - Change-Id: Ib53a2581af9d776e9a7c1cd90eebe89b70034e57 - -commit 49aa2aecd95a0a3af62a5a1f5c297c58ed5fdf92 -Author: Mark McLoughlin -Date: Mon Nov 12 16:25:57 2012 -0500 - - Use stock argparse --usage behaviour - - optparse would substitute the program name for %prog, but argparse - requires %(prog)s. Also, optparse would print 'Usage:' whereas - argparse prints 'usage:'. - - Neither optparse behaviour that's worth retaining, let's just use - the default argparse behaviour. - - Change-Id: Ied2acb37c366f1a45aed72b6b76f11e2de23828e - -commit 9506364b8212bd524b8fff9b4226f0d04b86970e -Author: Mark McLoughlin -Date: Mon Nov 12 16:25:55 2012 -0500 - - Use stock argparse --version behaviour - - optparse prints the version to stdout, argparse prints the version to - stderr. - - There's no need to preserve the old optparse behaviour, let's just stick - with argparse behaviour. - - Change-Id: Ie141c72112a63149d098afa9db55a95a309e79d7 - -commit 26bfa158d60013f7abf8e69b445d9cfc1e13a99d -Author: Mark McLoughlin -Date: Mon Nov 12 16:25:54 2012 -0500 - - Remove add_option() method - - argparse just has an add_argument() method, so there's no reason for us - to keep add_option() around. - - Change-Id: I6f4be089ceaf0fd8c4c99565af392b445916172e - -commit 22b989cdc151b382091535e698e97b7474dc33ff -Merge: 7056d66 7c50c13 -Author: Jenkins -Date: Thu Nov 15 19:12:02 2012 +0000 - - Merge "Completely remove cfg's disable_interspersed_args()" - -commit 7056d663ce65164cf8bdae7e8725d16e45cfeb66 -Merge: 94839ee 959e707 -Author: Jenkins -Date: Thu Nov 15 11:50:59 2012 +0000 - - Merge "argparse support for cfg" - -commit 7c50c13d7400cda4633d1fa026395ff0d689b10c -Author: Mark McLoughlin -Date: Mon Nov 12 16:25:52 2012 -0500 - - Completely remove cfg's disable_interspersed_args() - - The use case for disable_interspersed_args() is that nova-manage - needs to be able to parse sub-commands. We now have a - add_cli_subparsers() method which better supports this use case. - - Change-Id: I1fcd15889745fe4ddff0ac4bacf385004f9b61af - -commit 94839ee4d45ca70493527f3e29810bb53f755a50 -Author: Jenkins -Date: Thu Nov 15 09:45:59 2012 +0000 - - Merge "Adjust the logging_context_format_string." - -commit 959e70780670c2aa30c48f9255ff59f25ae1c116 -Author: Laurence Miao -Date: Sat Oct 6 21:08:14 2012 +0800 - - argparse support for cfg - - * openstack/common/cfg.py - Optparse is fading out since python 2.7, this - patch will help openstack/common work on more - advanded version of python(argparse). - Now, disable_interspersed_args() has no effect. - Added new method add_cli_subparsers, return - argparse subparser, for usages such as - subcommand. - - * tests/unit/test_cfg.py - SubcommandTestCase added. - Disabled test_disable_interspersed_args test entry - for happiness of tox, temporarily. - Modified test_help for port of argparse. - - * tools/pip-requires - include argparse module for python 2.6 - - Change-Id: Ie5cbde1a92a92786d64dea0ddfcfbf288c29f960 - -commit 272909167565d55418cdff6de98d16473eaeeef9 -Merge: 3869809 eb7f6d4 -Author: Jenkins -Date: Tue Nov 13 06:57:19 2012 +0000 - - Merge "threadgroup : greethread.cancel() should be kill()" - -commit 38698098401110cbc8a7e77d2096402212599aca -Merge: eb7f6d4 0c1ef26 -Author: Jenkins -Date: Tue Nov 13 06:49:41 2012 +0000 - - Merge "Fix QPID reconnect issues" - -commit eb7f6d40948f75e3e7d5912bfad27387459421e8 -Author: Jenkins -Date: Mon Nov 12 00:39:37 2012 +0000 - - Merge "Add generate_uuid to uuidutils." - -commit 0c1ef267ad869cb3b5faf93a374846ef3f76b79f -Merge: eba8129 0b1f6f3 -Author: Jenkins -Date: Mon Nov 5 21:29:16 2012 +0000 - - Merge "Use spawn_n when not capturing return value" - -commit eba812933a22b0e9598e6f67a8fa5adc9149cce2 -Author: Jenkins -Date: Mon Nov 5 21:24:05 2012 +0000 - - Merge "Tweak rpc.queue_get_for to deal with host=None." - -commit a94bfd5e8c801a74ba3850940720d164a21e1770 -Merge: 043582c 0b1f6f3 -Author: Jenkins -Date: Mon Nov 5 17:52:09 2012 +0000 - - Merge "Remove unused greenthread import in lockutils" - -commit 043582c1f21de43b4c708c4bdf37d7905cd0ee48 -Author: Russell Bryant -Date: Tue Oct 23 23:33:10 2012 -0400 - - Remove openstack.common.config and extensions. - - Remove the config module. All core openstack projects are using the cfg - module instead so no further development will be done on this module. - - Also remove the extensions module. This code was imported but there has - been no attempt to get any projects to use it. - - Change-Id: I4a974ba1ea25e94fd55cad243cde5f1ef6a17289 - -commit b86571bbd55fd0536eb5687b99a15638fe5e68b4 -Merge: 9924a77 86773da -Author: Jenkins -Date: Mon Nov 5 06:50:50 2012 +0000 - - Merge "Log CONF from ProcessLauncher.wait, like ServiceLauncher" - -commit 9924a77372431579a423c8d6bcf67c2873c82340 -Merge: 3587e1d 7ed6125 -Author: Jenkins -Date: Mon Nov 5 06:45:27 2012 +0000 - - Merge "Creates uuidutils module" - -commit 3587e1d175f2f3a60f5618671f9a4d80f8689f3b -Author: Yaguang Tang -Date: Sat Nov 3 18:15:55 2012 +0800 - - Fixes setup compatibility issue on Windows - - Fixes Bug #1052161 - - "python setup.py build" fails on Windows due to a hardcoded shell path: - /bib/sh. - - Change-Id: Iee0a1fcbdabfd469e92fa73002763d419e75ec27 - -commit 441afb006b428e7d40c38f75ade7d6726d5213a0 -Merge: 7ed6125 b118ea7 -Author: Jenkins -Date: Fri Nov 2 13:28:59 2012 +0000 - - Merge "Make ThreadGroup derived from object to make mocking possible" - -commit 7ed6125c43e0a58f97087c052adcac232108bcb1 -Merge: 6c698e4 df8eaa2 -Author: Jenkins -Date: Thu Nov 1 21:42:25 2012 +0000 - - Merge "kombu's fanout_cast_to_server was calling wrong method" - -commit 6c698e42e89438fb133091bb26fb5d7cd2af6078 -Author: Michael Still -Date: Thu Nov 1 13:41:32 2012 +0100 - - Move utils.execute to its own module. - - Also move the exceptions raised to being local to the executils - module. - - Change-Id: Ibb2445f92840b9ce4b52373b0b09adb3d6a4a897 - -commit df8eaa2de7ea3651b8c76c019228c1075b10578e -Merge: acc690b b118ea7 -Author: Jenkins -Date: Thu Nov 1 12:07:11 2012 +0000 - - Merge "Don't log exceptions for GreenletExit and thread_done" - -commit acc690b8ddeccff75c4019dd2205680e376672c3 -Merge: b118ea7 86773da -Author: Jenkins -Date: Thu Nov 1 00:17:02 2012 +0000 - - Merge "Removes redundant string cast" - -commit b118ea7b41da66581f41f0f3b4e77e8f5051c37e -Merge: 4ff8d88 01de195 -Author: Jenkins -Date: Wed Oct 31 21:31:17 2012 +0000 - - Merge "move nova.common.deprecated to openstack-common" - -commit 4ff8d889ab9bac4f27bebd91641494e6154fcab9 -Author: David Ripton -Date: Wed Oct 31 13:14:52 2012 -0400 - - Add a missing comma in a docstring. - - Change-Id: I1f75c7da1ab1543637198ecbb80a81b39ad35fde - -commit 86773da58cb0a826a1be12821262ef0837f31123 -Merge: 76331bc 01de195 -Author: Jenkins -Date: Tue Oct 30 22:16:24 2012 +0000 - - Merge "Use queue_arguments for fanout consumers too." - -commit 76331bccaae3cf9b498097fad2108ea5466db65e -Merge: cf31dc1 0e4cb8a -Author: Jenkins -Date: Tue Oct 30 21:40:05 2012 +0000 - - Merge "Import order clean-up" - -commit cf31dc13f92f0bbcfdd4706e779cd56a60e16300 -Merge: 0b1f6f3 07120fa -Author: Jenkins -Date: Tue Oct 30 21:38:30 2012 +0000 - - Merge "Fix a logic error in stable version calculation." - -commit 0e4cb8abcec5386cece3ce13e74e434b110ad065 -Author: Zhongyue Luo -Date: Mon Oct 29 14:19:19 2012 +0800 - - Import order clean-up - - Reorder imports by full module path - - Change-Id: If619b4b50aa052401f7fa65df57b74d4ad1b65a6 - -commit 07120fad9145fdf30a7afca74f54ffdae28f29ba -Author: Monty Taylor -Date: Fri Oct 26 11:07:26 2012 -0400 - - Fix a logic error in stable version calculation. - - Milestone information in blank for stable branches, so there is no milestone - prefix. However, we were blindly concatenating the milestone version - prefix onto the datestamp. - - Fixes bug 1059634. - - Change-Id: I6cff4ee7f6c1dc970397b66fd2d15fa22b0a63a3 - -commit 0b1f6f39443740d3737f96c3b6c7fffff61171ce -Author: Julien Danjou -Date: Fri Oct 26 16:55:17 2012 +0200 - - cfg: fix required if option has a dash - - If an option has a dash in it and is required, the check fails because it - tries to self._get() on the name (with dash) rather than the dest (with - underscore). - - Change-Id: I6448019f70f98bc2e58a325d0cf9ce88b8bb085b - Signed-off-by: Julien Danjou - -commit 01de1955dc1467f1792bba2f0c7b35ffa582bb41 -Author: David Ripton -Date: Wed Oct 17 10:35:59 2012 -0400 - - Fix a couple of file handle leaks, using with statements. - - In practice unclosed file handle leaks are not a huge deal in CPython code, - because reference counting means they get closed automatically in a timely - manner. But they're bad style, and they can become a real problem if the - code is run with a version of Python that doesn't use reference counting. - - Change-Id: Ie54b979e26ffc9dd405871ee07c50b304cb36c67 - -commit c558e93480736a2e98d80696498c30c8d81af2bf -Merge: a7b2bea 83528e5 -Author: Jenkins -Date: Tue Oct 16 14:51:50 2012 +0000 - - Merge "Revert "fanout subscriptions in impl_zmq"" - -commit a7b2bea5bd8b3ebd29ab2417f98266c84c491f4e -Merge: 02b183c 83528e5 -Author: Jenkins -Date: Tue Oct 16 14:46:56 2012 +0000 - - Merge "Revert "Support declare_topic_consumer in impl_zmq"" - -commit 02b183ceed30c9741dc10ba2c750cfa7da39fefa -Merge: e424a8a 83528e5 -Author: Jenkins -Date: Fri Oct 12 18:07:36 2012 +0000 - - Merge "Revert "Add support for finer-grained policy decisions"" - -commit e424a8a70e256d1b1d0a6cccd30f166d8ef814a1 -Author: Jenkins -Date: Thu Oct 11 15:25:43 2012 +0000 - - Merge "Added is_newer_than function" - -commit 83528e5ea25005fbcfd348f7a2b0477887a2c3d8 -Author: Jenkins -Date: Tue Oct 2 15:54:04 2012 +0000 - - Merge "Fix missing import of `rpc.dispatcher` in `rpc.service`" - -commit e43a70a236a47cf9ecaca8af21d62e503517b992 -Author: Doug Hellmann -Date: Fri Sep 28 15:55:14 2012 -0400 - - Ignore the stackforge jenkins email address - - Update generate_authors to ignore the email address - for the stackforge jenkins as well as the main openstack - jenkins, to ignore commits in the history of projects - that were on stackforge before moving over to the - main server (such as ceilometer). - - Change-Id: I86d93ba0f358d5d33278847ba8de039642dd54b7 - Signed-off-by: Doug Hellmann - -commit 50da12ff8625b4f7f7493bad2e69404d61bbab87 -Merge: a603294 4c23e04 -Author: Jenkins -Date: Thu Sep 27 21:14:57 2012 +0000 - - Merge "Log config on startup" - -commit a603294afe24ef0f0c49fe1b855c841af5cc9109 -Merge: 25f8124 4c23e04 -Author: Jenkins -Date: Thu Sep 27 21:13:41 2012 +0000 - - Merge "Integrate eventlet backdoor" - -commit 25f8124472deb75f9855082d8fa3135535f81c52 -Merge: 0364c86 4c23e04 -Author: Jenkins -Date: Thu Sep 27 21:13:24 2012 +0000 - - Merge "Add the rpc service and delete manager" - -commit 0364c868380c50c956376d29b918c42f9989cc76 -Author: Eugene Kirpichov -Date: Wed Sep 26 18:23:40 2012 +0000 - - Extracted parse_host_port into network_utils. - - Change-Id: I77bcbf03a18659cfa62e99da9ba2136f8348022b - -commit 4c23e04eef7b1a3e1386fd7ad81f2794cee8310c -Author: Angus Salkeld -Date: Tue Sep 11 15:43:33 2012 +1000 - - Add the rpc service and delete manager - - Part of blueprint service-infrastructure - - Change-Id: Ie00efcb1c974d699ac6b2a38285abef1b295f3ce - -commit c6c07e81187e64df9dc0e0db7f005d56bc38e349 -Merge: 4863161 e67bd1b -Author: Jenkins -Date: Tue Sep 25 14:53:57 2012 +0000 - - Merge "Don't deprecate rabbit_host and rabbit_port" - -commit 48631614f478386432c9b1d96a190c9fcf8938f5 -Merge: d66d703 e67bd1b -Author: Jenkins -Date: Tue Sep 25 14:53:14 2012 +0000 - - Merge "DRY up mirrored Rabbit queue declaration" - -commit d66d703cdc3c1e18ea3bf4aa18abc63d5a94b365 -Merge: d0897e5 e67bd1b -Author: Jenkins -Date: Tue Sep 25 10:56:03 2012 +0000 - - Merge "Support for several HA RabbitMQ servers." - -commit 88239e17bd1500b7cc6d877f136b7273c9ebc48b -Author: Erik Bray -Date: Mon Sep 17 20:27:48 2012 +0000 - - Some changes I made weeks ago but forgot to commit - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@19550 fe389314-cf27-0410-b35b-8c050e845b92 - -commit d0897e5241620dd6e2da0a20dd58c73852822d98 -Merge: 626e7de e67bd1b -Author: Jenkins -Date: Mon Sep 17 17:45:53 2012 +0000 - - Merge "Normalize_time() always return naive object" - -commit 96d6850b337700e669101b5350c411e37bad03c6 -Author: Erik Bray -Date: Fri Sep 14 21:23:01 2012 +0000 - - Merge branch 'master' of github.com:iguananaut/d2to1 - - Conflicts: - README - d2to1/util.py - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@19547 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 626e7de40047e5d380eac73bdb5958df47d90a5d -Author: Jenkins -Date: Fri Sep 14 05:10:39 2012 +0000 - - Merge "Change the qpid_heartbeat default to 60 seconds." - -commit e67bd1ba013c712ee7a45ae3f592fbb90a209a4e -Merge: 79ec8d4 3184bcb -Author: Jenkins -Date: Wed Sep 12 13:47:52 2012 +0000 - - Merge "Make projects define 'control_exchange'." - -commit 79ec8d42f0a24ca4facbfb83516e7047877af971 -Merge: c59c1bf 3184bcb -Author: Jenkins -Date: Tue Sep 11 20:03:53 2012 +0000 - - Merge "Improve logging of process id" - -commit c59c1bf5e888c0881f2d6301e3f100074fc770f5 -Author: Eugene Kirpichov -Date: Fri Sep 7 22:56:34 2012 +0000 - - Added a method for parsing host:port pairs. - - The method works correctly with ipv6. - An alternative way would be to use urlparse, but urlparse - only works correctly starting with Python 2.7, so to be - compatible, we have to reimplement this part. - - The method will be used for parsing Glance API server - addresses, RabbitMQ addresses and perhaps other things. - - Change-Id: Ie5014891c6abcd80681a370d5dd94cb0406f7f61 - -commit 3184bcb7716bee4b2841cfbab0fc54097a36e61a -Author: Jenkins -Date: Fri Aug 31 13:26:08 2012 +0000 - - Merge "Update zmq context cleanup to use term." - -commit 3d8761484c065ee3663c48d127cd93efa9a6daa7 -Author: Angus Salkeld -Date: Tue Aug 14 10:27:06 2012 +1000 - - Add basic periodic task infrastructure. - - So the idea is Manager will inherit from PeriodTasks - and create a timer to call run_periodic_tasks(). - - Part of blueprint service-infrastructure - - Signed-off-by: Angus Salkeld - Change-Id: I822b8501ad184d0e5885cada1a3d7a847e2ca12c - -commit 71ca83e9196c45e4ae293c14e4081f6042a89f9f -Merge: b053836 d1ba9a9 -Author: Jenkins -Date: Mon Aug 20 08:47:58 2012 +0000 - - Merge "Basic service launching infrastructure" - -commit b05383652752877cb2beac83d44c2b5f93a672bf -Merge: 1868a9d d1ba9a9 -Author: Jenkins -Date: Mon Aug 20 08:47:46 2012 +0000 - - Merge "Move manager.py and service.py into common." - -commit 1868a9deef82376837cfd6c09846067f9e8ca430 -Author: Jenkins -Date: Mon Aug 20 06:28:18 2012 +0000 - - Merge "Fix spelling typos" - -commit d1ba9a945894703bedf75844785f46895eb42639 -Author: Angus Salkeld -Date: Sat Aug 11 11:14:43 2012 +1000 - - Move manager.py and service.py into common. - - - Just start with the skeleton classes. - - Part of blueprint service-infrastructure - - Change-Id: I90fbff3805455d9d82aacf43257d74e4cb443042 - Signed-off-by: Angus Salkeld - -commit 47a357880b956b3c0e71813a2d81e7b8c2e607e4 -Merge: fb83b95 bebafee -Author: Jenkins -Date: Tue Aug 14 17:36:56 2012 +0000 - - Merge "Rename FLAGS to CONF; Remove self.conf" - -commit fb83b952fcb31a3637d3fac0645134e8d55400f0 -Merge: 1287c5d 7ca6504 -Author: Jenkins -Date: Mon Aug 13 14:39:54 2012 +0000 - - Merge "cfg: clean up None value handling" - -commit 1287c5d2bdb7f084c2285095246e6750946d31e7 -Merge: baf890c 262c65f -Author: Jenkins -Date: Mon Aug 13 12:29:40 2012 +0000 - - Merge "Allow set_default and set_override to use None" - -commit 7ca65044c1fff7a749187b787b3092b69cf68253 -Author: Mark McLoughlin -Date: Mon Aug 13 11:35:25 2012 +0100 - - cfg: clean up None value handling - - Remove the need for an internal NoneValue class by making the existence - of the 'default' or 'override' keys signify whether a default or - override is set. - - Change-Id: Iacf49553df5ba8414307904a3ee334c7b8c55758 - -commit 262c65febfec814e08452f6a38039a623ccc0b0a -Author: Vishvananda Ishaya -Date: Fri Aug 10 14:28:59 2012 -0700 - - Allow set_default and set_override to use None - - The current implementation interprets set_default('foo', None) and - set_override('foo', None) as 'clear the existing default or override', - which makes it impossible to override a value with None. - - This patch adds support for overriding with a None value by adding - a special internal class. set_override('foo', None) will now override - the existing value with None. This is a slight change to the existing - behavior, so this patch adds two calls for the old functionality of - clearing defaults and overrides. Example syntax for the new calls - are shown below: - - conf.clear_default('foo') - conf.clear_override('foo') - - The patch also updates the tests to reflect the change in functionality - and adds new tests to verify the new functionality. - - Fixes bug 1035478 - - Change-Id: Iee5e20e44da9bef6b86e0483ab0b48b625fe503c - -commit baf890c641bed5a836001dfee7ad87fbab39935d -Author: Mark McLoughlin -Date: Sat Aug 11 12:21:51 2012 +0100 - - Tilde expansion for --config-file and --config-dir - - Fixes bug #1012671 - - Allow a filename starting with ~ or ~user to be passed for - --config-file or --config-dir. - - Change-Id: I67705401ed1c35c0cc2161095e36616552740aba - -commit 7551ce390f654d3861c47f10cf0b09bca98a0287 -Merge: bebafee 51b0f04 -Author: Jenkins -Date: Fri Aug 10 16:55:46 2012 +0000 - - Merge "Add import_opt() method to ConfigOpts" - -commit bebafeeb0a9cb5277771eb8456b71acadd0eebe9 -Author: Andrew Bogott -Date: Thu Jul 19 03:34:31 2012 -0500 - - Add multiple-driver support to the notifier api. - - Move all of the functionality previously provided by the list_notifier - into the basic notifier api. Move and restructure tests accordingly. - - Remove the list_notifier file and test file. - - For bug 1025820 - - Change-Id: Idf7cb975dd78e9951188781622a4d10ca466b154 - -commit e33c738a98d74750ec14a918bbb022e5fa0bb40e -Merge: 42ee5c9 9a000d1 -Author: Jenkins -Date: Thu Aug 2 16:13:33 2012 +0000 - - Merge "Install a qualified except hook." - -commit 42ee5c91a6528b5ed66942191c81636b38099269 -Merge: d1c33dd b8d7064 -Author: Jenkins -Date: Thu Aug 2 07:30:59 2012 +0000 - - Merge "Copy eventlet_backdoor into common from nova." - -commit d1c33dd26a71f811ba605c85bd6438089e924b8d -Merge: b8d7064 4713c9b -Author: Jenkins -Date: Thu Aug 2 07:20:53 2012 +0000 - - Merge "Fix errors reported by pyflakes." - -commit b8d7064336f957ed183d849391cf2e2f061097a2 -Merge: 59b6b3b 9a000d1 -Author: Jenkins -Date: Wed Aug 1 19:13:51 2012 +0000 - - Merge "Remove bogus conf argument from create_consumer()" - -commit 59b6b3bbfb27d38e1a4eccb8204caae0b5ed952a -Merge: 9a000d1 50e6025 -Author: Jenkins -Date: Wed Aug 1 16:59:16 2012 +0000 - - Merge "Use function registration for policy checks" - -commit 4713c9b53c91c81280331a7cb6487bd955f67477 -Author: Bhuvan Arumugam -Date: Thu Jul 26 08:19:18 2012 -0700 - - Fix errors reported by pyflakes. - - * openstack/common/setup.py - get_reqs_from_files(): Remove unused variable. - get_reqs_from_files(): Use local variables in a conventional - way, to prevent errors like: - local variable 'datestamp' is assigned to but never used. - - Change-Id: I44e137d383b96e1601b7bded1e36e84ff14a8f68 - -commit 9a000d1850a88d7545d8ead64b1d8d214138872d -Author: Jenkins -Date: Tue Jul 31 20:58:50 2012 +0000 - - Merge "Remove code to clear basicConfig root log handlers" - -commit 51b0f04aad8acf0c15af2f373a5b61092058c919 -Author: Mark McLoughlin -Date: Tue Jul 31 12:16:28 2012 +0100 - - Add import_opt() method to ConfigOpts - - Related to blueprint cfg-global-object - - When using the global config object pattern, you often have modules - which define options that are referenced in other options. - - So, for example if module A defined option 'foo' and module be needed - to reference that option, you might do: - - import A - print CONF.foo - - However, this makes it entirely unclear to the casual reader why - module A was imported. - - Nova has a flags.DECLARE() function that helps with this problem - by allowing you to do: - - flags.DECLARE('foo', 'A') - - The function simply imports module A and checks that the 'foo' - option is now defined in the global config object. - - This is fine, but it is also implicit that this function applies - to the global config object. Instead, let's do the following: - - CONF.import_opt('foo', 'A') - - Change-Id: I7b98f5be71068bbde70cc0eab991eaebb577de52 - -commit 50e6025c6d081ccb66c81bc16cc8e6d85a2f37fb -Author: Jenkins -Date: Mon Jul 30 15:23:27 2012 +0000 - - Merge "don't throw exceptions if %(color)s tag is used" - -commit 222c95ef75a0ef8bdd0faadf6bbfc1501db97423 -Author: Joe Gordon -Date: Thu Jul 26 11:50:20 2012 -0700 - - Remove unused imports - - Change-Id: Ia2900e50263950ba40ba86e685640cacaa2137a7 - -commit e3e9342453568a147855147fa5aff47e6be121de -Author: Giampaolo Lauria -Date: Fri Jul 20 16:41:45 2012 -0400 - - Modifies _is_opt_registered fcn to check for duplicate opts - - This change fixes bug 999307 - - Currently, the check for duplicate options is done by checking - whether they are the same object. The proposed fix is to check whether - all the object fields have the same value. - - Change-Id: I2b72d630a0c8821df1d81e25d316d8d9195be492 - -commit 81f527e8e56b7deef058713007914552a268e6b1 -Author: Jenkins -Date: Mon Jul 23 15:01:11 2012 +0000 - - Merge changes I536e1ca0,Ifb878368,Ie1d71b85 - - * changes: - Add missing convert_instances arg. - Track to_primitive() depth after iteritems(). - Update iteritems test case to actually test iteritems. - -commit 65d70c4f1c459e1186d13e442666d6544149dfec -Author: Yaguang Tang -Date: Sat Jun 30 02:13:05 2012 +0800 - - fix bug lp:1019348,update openstack-common to support pep8 1.3. - - also,this patch turns off pep8 E125 check. - - Change-Id: I22d2a94d89530586d614af39af17ae542c5e0cbf - -commit b1aac5dd6e32acc7fc48ae1586fca76ef74b5f27 -Author: Mark McLoughlin -Date: Tue Jul 17 05:52:51 2012 +0100 - - cfg: allow empty config values - - Fixes bug #1025522 - - Commit 83044a7 caused this to stop working in Quantum: - - api_extensions_path = - - and could only be worked around with: - - api_extensions_path = "" - - Change-Id: I8c1a57225a2c135e6baf567b8e71d61e974da4e2 - -commit 1f888e3f83aed66a067d2c45c477df04c4b50f7f -Merge: 88463f9 c8ea903 -Author: Jenkins -Date: Mon Jul 16 13:31:05 2012 +0000 - - Merge "Add additional usage info on rpc_zmq_host flag" - -commit 88463f96d7816db94dcb2685629eeea2d92f078d -Merge: b6c2c5e c8ea903 -Author: Jenkins -Date: Mon Jul 16 13:29:46 2012 +0000 - - Merge "Restore register_opts on impl_zmq module load" - -commit b6c2c5ee5b88bf3a656683c547369047474276f0 -Merge: b912907 99b8a47 -Author: Jenkins -Date: Sun Jul 15 19:10:09 2012 +0000 - - Merge "Minor pep8 cleanup in rpc." - -commit b912907c97af359820f5ff29bded29c85ed623d2 -Merge: c8ea903 99b8a47 -Author: Jenkins -Date: Sun Jul 15 19:06:13 2012 +0000 - - Merge "pep8 cleanup in the plugin code" - -commit c8ea903532b6f39915ccbc9b911f461e16a1cddc -Merge: 621ee29 3561459 -Author: Jenkins -Date: Fri Jul 13 15:13:44 2012 +0000 - - Merge "Add SKIP_GENERATE_AUTHORS option to setup.py" - -commit 356145981b7f9ca08d850f97deb2bd23a91340bd -Author: Dan Prince -Date: Fri Jul 13 09:49:00 2012 -0400 - - Add SKIP_GENERATE_AUTHORS option to setup.py - - Updates the generate_authors function in setup.py so that - it will skip generation of the authors file if the - SKIP_GENERATE_AUTHORS env variable is set. - - Authors doesn't currently take that long to generate but having - the option to explicitly skip it (regardless of whether .git is there) - seems like a good addition. - - Change-Id: Ie18064d2450cecc86f18d0b10e1ce473253d1a51 - -commit 621ee29407c64dc2cfc40ceda97b58a9fd859a5b -Author: Dan Prince -Date: Fri Jul 13 09:38:59 2012 -0400 - - Add SKIP_WRITE_GIT_CHANGELOG option to setup.py - - Updates the write_git_changelog function in setup.py so that - it will skip changelog generation if the SKIP_WRITE_GIT_CHANGELOG - env variable is set. - - The motivation for this change is to speed up running sdist which - gets executed at the begining of a tox run. Some projects (like Nova) - can take between 10-20 seconds to generate a changelog in this fashion. - - Change-Id: I2e75060d303bc8fae784129e8e42f09922a8b09e - -commit 2ce3f88692d985e9ab91ebad3ad84e5d821d9b0a -Author: Eric Windisch -Date: Thu Jun 28 00:32:52 2012 -0400 - - Fix missing gettextutils in several modules. - - Fixes bug 1021453. - - Change-Id: I05771a588746a0e43fec0078c5c7152dd9d33b9f - -commit fa39ef307ad41ac5aa1324f649b6b75918bc3ec8 -Merge: d9ffeb2 c531139 -Author: Jenkins -Date: Wed Jul 11 22:46:08 2012 +0000 - - Merge "Fix line length for pep8 compliance after cloning into other projects" - -commit d9ffeb27b377955070a999e4ec4ec6151cb50134 -Merge: c95a8a8 fde38d1 -Author: Jenkins -Date: Wed Jul 11 22:38:13 2012 +0000 - - Merge "Add 'filedecoder' method to the jsonutils wrapper module." - -commit c95a8a87669f4e952a5c6d02014a5513528273de -Merge: 1fce9ce 4f66e61 -Author: Jenkins -Date: Wed Jul 11 22:38:12 2012 +0000 - - Merge "cfg: Fix typo in documentation" - -commit 1fce9ce0edf2fbcffce7994071d8aa8dab2c26e2 -Merge: e748286 46545d4 -Author: Jenkins -Date: Wed Jul 11 22:38:11 2012 +0000 - - Merge "Fix import order." - -commit e74828633fd69e600dd05747bff7dd7e2a943ca2 -Merge: 99b8a47 9ceab54 -Author: Jenkins -Date: Wed Jul 11 22:38:10 2012 +0000 - - Merge "Improve exception from importutils.import_class()." - -commit 99b8a475b0f75223ab6e038d04246c4f4eb4dc62 -Author: Jenkins -Date: Wed Jul 11 21:02:48 2012 +0000 - - Merge "Add common plugin framework." - -commit c5311396b8534b35d7d4d587b3ef7d476aee0b11 -Merge: 4ae0a34 81378b6 -Author: Jenkins -Date: Tue Jul 10 14:15:39 2012 +0000 - - Merge "Switch common files to using jsonutils." - -commit 4ae0a34c6214dd11869b6382264983001cf3142b -Author: Monty Taylor -Date: Sun Jul 8 11:07:07 2012 -0500 - - Fix up pre-versioning based on testing in glance. - - Change-Id: I137fee43509f079cb4b2def452cf23b6705cdda5 - -commit 4f66e61b9778dc4cc2b926a0bbe8552240f57504 -Author: Vincent Untz -Date: Thu Jul 5 14:51:26 2012 +0200 - - cfg: Fix typo in documentation - - with with -> with - - Change-Id: I7a524c024b05639ec7ab4d57b6a52f70a95d2235 - -commit 81378b67f693d8828ea89347fda146e6d12c47a0 -Merge: 46545d4 a608eaf -Author: Jenkins -Date: Mon Jul 2 16:40:03 2012 +0000 - - Merge "Fix missing RPCException from raise" - -commit 46545d45e8174b418e1f366ad7d7b05ceb0c8867 -Merge: 8bb4c38 9096290 -Author: Jenkins -Date: Mon Jul 2 13:38:05 2012 +0000 - - Merge "Pass in stream as positional argument to StreamHandler." - -commit 8bb4c38cce5862a67b824a83049cf9a9f4c5c37d -Author: Joe Gordon -Date: Thu Jun 28 15:55:31 2012 -0700 - - Fix mailmap. - - Mailmap was broken in 01cec1dcb1a0b8d6a0ba098f8e18ab3c0f7cabab - - Revert offending line only to get unit tests passing again. - - Change-Id: I33e8d5d3587b429d44ae60f34ca2f132ce233793 - -commit a608eaf4d47c3e58eae2c62fe7a393cb5c28ca35 -Author: Monty Taylor -Date: Tue Jun 26 14:18:00 2012 -0500 - - Split read_versioninfo into a method. - - Change-Id: Iec1f9776b6e6fcccdc21b2e67754fff1da23458a - -commit 9096290d7de869b0db475015f6def65cfb1f33c8 -Merge: fde38d1 ce998ec -Author: Jenkins -Date: Tue Jun 26 18:59:20 2012 +0000 - - Merge "Add common logging and notification." - -commit fde38d1ecb1dc20b4dec09a4515b2e915014db85 -Merge: 65efad1 c295d24 -Author: Jenkins -Date: Mon Jun 25 23:55:16 2012 +0000 - - Merge "Add missing gettextutils imports" - -commit ce998ecf6ba546f8fd962cf526e7f95309909771 -Author: Andrew Bogott -Date: Wed Jun 13 22:46:28 2012 -0500 - - Add common logging and notification. - - This code is migrated from Nova, and will soon replace it. - - Change-Id: I2dacac3ef251d419c7049154f6aaf0c18fdb9bb4 - -commit 65efad1deca35e383b63cad795f6cff43cbae305 -Author: Monty Taylor -Date: Tue Jun 19 16:02:34 2012 -0700 - - Add support for tag based versioning. - - Versions driven by git. - If the current revision is tagged, then that's the version cut. - If not, for post-versioning, the current version is the tag plus an count of the - revs since the tag. - For pre-versioning, it's the logic that's in create-tarball.sh. - Additionally, a versioninfo file is added to the tree so that pkg-resources - can find out what the version is. - - Change-Id: I5991345735fa14666305538c556b519160b02b4b - -commit 83daa0490e8d271d03731726f9c71af4c5f13ac2 -Merge: c295d24 e2ff92c -Author: Jenkins -Date: Fri Jun 22 19:31:15 2012 +0000 - - Merge "Skip argparse when injecting requirements." - -commit c295d24036f570f1eae862c13a2b1a4f96ff4667 -Author: Jenkins -Date: Thu Jun 21 21:19:16 2012 +0000 - - Merge "Added dictify() and uuids to the common request context." - -commit e2ff92ca48dc292c29dce7956be73a38c961db6f -Author: Dan Prince -Date: Wed Jun 20 12:39:51 2012 -0400 - - Skip argparse when injecting requirements. - - Also adds some unit tests parse_requirements. - - Change-Id: I3d8625d4627c7933d73059a63f96e19f8d9647ab - -commit 9ceab54d6146e44537e7f3667c7b70d823ccd18a -Merge: 6b4fb7f 04c8190 -Author: Jenkins -Date: Tue Jun 19 17:38:30 2012 +0000 - - Merge "Fix nova.rpc references in comments." - -commit 6b4fb7fd488a3e6f9e69171ebe845055faf48d21 -Merge: 3ba9339 04c8190 -Author: Jenkins -Date: Mon Jun 18 21:48:23 2012 +0000 - - Merge "add import_object_ns function" - -commit 3ba9339accebae1bdabe6921390e8ea15403e28d -Merge: 6d231af 04c8190 -Author: Jenkins -Date: Mon Jun 18 15:33:49 2012 +0000 - - Merge "rpc: Update rpc_backend handling." - -commit 6d231af56529fa012ab9a0185fd8a897ccf457a1 -Author: Gary Kotton -Date: Sun Jun 17 04:05:37 2012 -0400 - - Update common code to support pep 1.3. - bug 1014216 - - Change-Id: I3f8fa2e11c9d3f3d34fb20f65ce886bb9c94463d - -commit 8d170204dbf71dd2d63b64f45de64027b518b854 -Merge: 2bc00f1 04c8190 -Author: Jenkins -Date: Fri Jun 15 13:13:36 2012 +0000 - - Merge "Add missing ack to impl_qpid." - -commit 2bc00f150d28de8be54d93af3309a67b9758ec5d -Author: Monty Taylor -Date: Thu Jun 14 13:54:30 2012 -0400 - - Add autodoc generation to the build_sphinx command - - The logic is pulled from the nova code, but has been abstracted - from being nova specific. It allows us to duplicate less info, - because we know a lot of the meta information in setup.py anyway. - - Once this is in, we'll get autodoc module information everywhere - pretty much for free, and we can delete the doc/ext dir and the - doc/*sh from nova. (thanks to bcwaldon for pushing things to be - better) - - Change-Id: I4c55c370ea6c3790958b5412e21e3378f4474104 - -commit 04c8190981c98600c59a5a83234166833a55d68d -Merge: 43b2f3d 860f31b -Author: Jenkins -Date: Tue Jun 12 22:20:36 2012 +0000 - - Merge "Add impl_zmq to rpc." - -commit 43b2f3ddc9d5ea7649026e152829a015cf13644a -Merge: 860f31b 07966ce -Author: Jenkins -Date: Tue Jun 12 22:07:28 2012 +0000 - - Merge "Fix utcnow_ts to return UTC timestamp" - -commit 860f31b622f021cb0f9d8616d59fca0ea02b43e0 -Merge: 07966ce df98700 -Author: Jenkins -Date: Mon Jun 11 15:01:18 2012 +0000 - - Merge "Use 'is not None' instead of '!= None'" - -commit df98700ea30fb65d2a15aa361eca69b58898402c -Author: Johannes Erdfelt -Date: Fri Jun 8 17:08:14 2012 +0000 - - Use 'is not None' instead of '!= None' - - Fixes bug 1010570 - - pep8 suggests the former over the latter - - Change-Id: Ice3a3b1cc2eea9228fffb4ee40fc360ff79054a3 - -commit 07966ce35963b8c62a3dacb62649c82181b2ddc6 -Merge: b42e9e4 93e7795 -Author: Jenkins -Date: Fri Jun 8 14:28:54 2012 +0000 - - Merge "Add nova time util functions to timeutils" - -commit b42e9e4974dbdb27b293d0e59e356b3b1d1c33dd -Merge: a099021 e426b4e -Author: Jenkins -Date: Fri Jun 8 14:25:08 2012 +0000 - - Merge "Add support to include config aliases" - -commit a099021d887db41cbc682a5655b73eb247f48b27 -Merge: 4a11546 93e7795 -Author: Jenkins -Date: Thu Jun 7 14:26:32 2012 +0000 - - Merge "Add rpc to openstack-common." - -commit 4a115467c3911d1d79b4be8a1b29aeb01dfe197b -Author: Vishvananda Ishaya -Date: Wed Jun 6 11:26:18 2012 -0700 - - Adds support for bol and eol spaces to ini files - - * Fixes bug 1009639 - * Adds tests - - Change-Id: Id00563dfcc6f143c3e86ec380d66cffc967b8c48 - -commit e426b4ed4fda15e358f751c21cdb2951b3490332 -Author: Joe Gordon -Date: Mon May 21 18:17:35 2012 -0700 - - Add support to include config aliases - - Implements blueprint config-aliases - - * Supports loading deprecated aliased options from a config file - * Supports using deprecated aliased CLI options - * For MultiStrOpt Can use mix of name and alias - - Change-Id: I04678880bc8ee1f85335f5656367bd1437245c6e - -commit 93e77956044b6c9dbd951299320aa1c050688bbe -Merge: 2502947 fca5b5c -Author: Jenkins -Date: Tue Jun 5 12:10:26 2012 +0000 - - Merge "Create testutils with skip decorators." - -commit fca5b5c2e75f58da9a1f98dd4b0c0995f9cef731 -Author: Russell Bryant -Date: Mon Jun 4 15:24:27 2012 -0400 - - Create testutils with skip decorators. - - This patch creates openstack.common.testutils which includes some - decorators used to conditionally skip tests. This is needed for the - rpc unit tests. - - Change-Id: Ic6bc8d58f7dfcd9eb3acd2749c475b9d760b9578 - -commit 25029477009c93e75664a0d897718ae191604b0f -Author: Mark McLoughlin -Date: Tue May 29 08:27:05 2012 +0100 - - cfg: add a global CONF object - - Implements blueprint cfg-global-object - - Add an instance of the CommonConfigOpts class to the cfg module's - global namespace. - - The usage pattern is: - - from openstack.common import cfg - - opts = [ - cfg.StrOpt('foo', default='blaa'), - cfg.StrOpt('bar', default='blaa'), - ] - - CONF = cfg.CONF - CONF.register_opts(opts) - - def do_something_later(): - print CONF.foo, CONF.bar - - def main(): - CONF(project='pulsar') - - Change-Id: I77e87b1e186c243b2638a4b1c202f865249dafce - -commit 43cf68a86ccbcdf3eedad3f72cd05f8dc4a679dc -Author: Mark McLoughlin -Date: Tue May 29 08:27:05 2012 +0100 - - cfg: add generators for iterating over all options - - We have a few places now where we do: - - for opt in self.opts: - foo(opt) - - for group in self.groups: - for opt in group.opts: - foo(opt, group) - - Use generators to turn this into simply: - - for opt, group in self.all_opts(): - foo(opt, group) - - Change-Id: I7a32779c20caeb1bacb85528d7e36c3c18c6c16a - -commit 1a0e96f7bc91d30e3fc03eca0544ba4cb2850736 -Author: Mark McLoughlin -Date: Tue May 29 08:27:05 2012 +0100 - - cfg: move constructor args to __call__() args - - In order to effectively use a global ConfigOpts object, you - need to be able to initialize the global object with none of - the information we currently require at construction. - - By moving those constructor args to the __call__() method, - we enable the global object usage model but also make the API - generally more flexible. For example, you can now reset the - object and re-use it for parsing a different set of config - files with the same options. - - There are a couple of other minor behavior changes as a - result: - - - print_usage() and print_help() no longer works before - the object has been called to parse options - - - registration of duplicate short options are no longer - detected until the options are parsed - - - the --config-file and --config-dir options aren't - registered until just before parsing the options since - the default set of config files can be specified at - that time - - - find_file() can't be used until after the options have - been parsed, again because of the late registration - of --config-file and --config-dir - - Finally, an unregister_opt() method is added to support - the re-registeration of the --config-file and --config-dir - options. - - Change-Id: I650d8e299e92cbc5d10da47a7ce1b73ca8066bd0 - -commit 4572286e398b21fdd64e7e33e2df54e3b02efd6d -Author: Monty Taylor -Date: Fri May 25 11:39:00 2012 -0400 - - Added support for proper bare URLs. - - If we want to use github zipballs as a source of depends sometimes - (which we do) - we need to have the pip-requires parsing understand - that lines starting with http:// or https:// are urls and should go - to dependency_links. - - Change-Id: I9218159872d6edfebd4b820e6db912e9aabdf7d7 - -commit eb2bbadebb081abfb6378aa7e43d658c28888916 -Author: Zhongyue Luo -Date: Sat May 19 01:20:14 2012 +0800 - - Backslash continuation removal (common folsom-1) - - Fixes bug #1001361 - - Removes backslash continuations - - Change-Id: I86fbb950b48a7681b3c1a010b0d0007cd2f12632 - -commit 6a0c1729a5052edbd163424f02a7cd69839c7634 -Author: Joe Gordon -Date: Mon May 14 13:36:42 2012 -0700 - - Alphabetize imports in openstack/common/cfg.py - - In preparation for enabling alphabetized import checking in Nova - - Change-Id: I709fca6a121ba44df193757e5ad838de710c2f15 - -commit 064ac0a6c7df2c082a204ad0fe290d1d4cf62f03 -Author: Mark McLoughlin -Date: Sat May 12 11:52:53 2012 +0100 - - cfg: make reset() clear defaults and overrides - - Fixes bug #998396 - - Both Nova and Keystone need to clear the overrides on their config - object between test runs. It's reasonable to expect the reset() - method would do this, so let's make it so. - - Also add a clear() method with the old behaviour. - - Change-Id: I192c5bb07e81f0fb844fa2fd429dc2e7133800de - -commit 8699502a5af976b96082735c95aca22c8174bef3 -Merge: 201c091 886b676 -Author: Jenkins -Date: Thu May 10 14:28:38 2012 +0000 - - Merge "cfg: automatically create option groups" - -commit 201c09120e2788f98b521e501351dc1265372383 -Merge: 4960099 3a321ef -Author: Jenkins -Date: Thu May 10 14:25:25 2012 +0000 - - Merge "cfg: allow options to be marked as required" - -commit 886b676a2bafcce3745f3c059f131132a77c158b -Author: Mark McLoughlin -Date: Thu May 10 14:25:19 2012 +0100 - - cfg: automatically create option groups - - Implements blueprint cfg-auto-create-groups - - Remove the restriction that groups must be explicitly created. Often - you only need a group to have a name (not e.g. a title or help string) - so we can easily just auto-create groups for that case. - - Change-Id: I150ab3900e3aad0068b93487c8d396d21d26cfea - -commit 3a321ef76374c19f549e67f20dfe9f1d18c127c9 -Author: Mark McLoughlin -Date: Thu May 10 14:25:19 2012 +0100 - - cfg: allow options to be marked as required - - Implements blueprint cfg-required-options - - Add a 'required' flag to option schemas: - - StrOpt('foo', required=True) - - which causes a RequiredOptError exception to be raised if the - user fails to supply a value for the option on the CLI or in - a config file. - - Change-Id: Ied7bb25f0c1582c4991d0f212f4871b9358b73fb - -commit 49600999740fac41e60427df0d376c8eab0e658d -Author: Mark McLoughlin -Date: Thu May 10 14:25:19 2012 +0100 - - cfg: use a list comprehension instead of map() - - Change-Id: Iaccb71d83d957aae77fa0f6bc71952b899d3a159 - -commit 03893be94bdb95b051a00412357adce6ddec1322 -Author: Monty Taylor -Date: Sat May 5 12:01:18 2012 -0700 - - Encapsulate common sdist actions into a cmdclass. - - The pattern of running generate_authors and write_git_changelog - at sdist time is (and should be) repeated in all project's setup.py. - Instead of copying the creation of the two classes and injection - of them into a cmdclass dict, we can do it here and have it - be consistent. - - Related to bug 986462. - - Change-Id: I0b7b44d58685551482f874b2a6091dec29e6bed6 - -commit 51c2ee33fe1388536526015acbef51cf5899b3d0 -Author: Bhuvan Arumugam -Date: Fri May 4 22:20:09 2012 -0700 - - Truly handle mailmap entries for all combinations. - - Bug: 994957 - - Mailmap might contain mapping with full name. This commit fixes - it to handle these combinations: - Foo ZZ Bar YY - Foo Bar - - - This is inline with mailmap convention described here: - http://man.github.com/git/git-shortlog.html - - * openstack/common/setup.py - parse_mailmap(): Pull out canonical and alias email addresses. - - Change-Id: Iabe9612efecbd18f7a5b0725de7d2515ab24125d - -commit fad4cc5ce6474e8dd3da50e1015b9afb0c835187 -Merge: ce425b3 d78d538 -Author: Jenkins -Date: Wed May 2 16:37:02 2012 +0000 - - Merge "Add save_and_reraise_exception()." - -commit ce425b39b9a2d84f52f009553dacc1d73f994b00 -Merge: 070b392 d78d538 -Author: Jenkins -Date: Wed May 2 16:36:17 2012 +0000 - - Merge "Remove common.exception from common.importutils." - -commit 070b3923e53ef450bed1d81345d42a240df56ab5 -Merge: d78d538 34b06d4 -Author: Jenkins -Date: Wed May 2 14:57:45 2012 +0000 - - Merge "New ConfigOpts.find_file() for locating conf files" - -commit 34b06d4226582a8f6117a09462d721a85916eb82 -Author: Mark McLoughlin -Date: Tue May 1 08:59:18 2012 +0100 - - New ConfigOpts.find_file() for locating conf files - - Most services have the need to locate files like api-paste.ini or - policy.json. - - This new method attempts to find these files by looking alongside - the config files already parsed by ConfigOpts and, failing that, - falls back to a standard set of directories. - - Change-Id: I95897816485b88f78854df194cab7872d7c5452a - -commit d78d53859ab9db6dabbdc603d657867aa42e1936 -Merge: 8fb52b1 22b2e9a -Author: Jenkins -Date: Tue May 1 15:05:27 2012 +0000 - - Merge "Support for directory source of config files" - -commit 8fb52b16ab299a66fd5242a7eb614885a8a1588b -Merge: a50701f 8b22726 -Author: Jenkins -Date: Mon Apr 30 19:33:08 2012 +0000 - - Merge "Update exception from importutils.import_class()." - -commit a50701f91afb6c50ed36a9886cb8f7f15353294a -Author: Bhuvan Arumugam -Date: Fri Apr 27 12:29:36 2012 -0700 - - Handle authors existed before VCS was around. - - Bug: 976267 - - The list of such authors are stored in AUTHORS.in file. When - auto generating AUTHORS file, include them as well. - - * openstack/common/setup.py - __doc__: For all methods, remove space and include period. - generate_authors(): If AUTHORS.in file exist, append the - content to AUTHORS file. - - Change-Id: I05da1e561383cc151e7ef34e75a4600e3afdda6e - -commit 22b2e9a4a60c3b8b6eb42efa304dba81913bd867 -Author: Eoghan Glynn -Date: Mon Apr 23 21:06:56 2012 +0100 - - Support for directory source of config files - - Implements bp cfg-config-dir - - Allow multiple config files to be pulled in from a config directory, - as opposed to individual config files being explicitly enumerated. - - This logic is enabled using the --config-dir=/path/to/config CLI option, - causing config to be retrived from all matching /path/to/config/*.conf - files. - - Sections may be re-opened across config files, and all config items - must reside in an explicitly specified section (i.e. it does not default - to [DEFAULT]). This behavior is unchanged. - - Change-Id: Ia29dffe82dfb4742dcf3e8d36b376d906a2492cf - -commit 8b22726c33fe8c2f83bdd5f810b16cfc7b8aee08 -Author: Brian Waldon -Date: Wed Apr 25 16:11:45 2012 -0700 - - Provide file extension when when looking for files - - * Allow an extension to be passed to find_config files, defaulting to '.conf' - - Change-Id: I022a3b28d9067158e9ed0da741a5e72cb73af167 - -commit d4551e39efbca4e9215cea0812e29b4e181c21a3 -Author: Mark McLoughlin -Date: Tue Apr 24 14:56:07 2012 +0100 - - Some refactoring of the cfg cache - - A fairly misc bunch of changes: - - - init cache before registering config-file and just let - register_cli_opt() clear the empty cache - - - use @__clear_cache on set_default() and set_override() since - these are just used by the unit tests and doing so allows us - to kill _remove_from_cache() - - - use @__clear_cache on reset() too - - - remove recursion from _get() and the substitute param - - - just use (group_name, opt_name) as the cache key - - Change-Id: I66934e748eca9ec03e44d7f80a7e10d96a77d8eb - -commit 43cdeb1b0e0f3e2a26326a73b0f827c233368e55 -Author: Yuriy Taraday -Date: Sat Apr 14 01:16:35 2012 +0400 - - Add caching to openstack.common.cfg - - Speedup of 'nova list' benchmark by up to 40%, eliminates 3 lines in - top-10 cProfile methods. - - Change-Id: I2d4636f94d88b4a7e38d1565fdd4d1b8a89e560e - -commit 0417e9f0ca13d36a8e6d03e539e5a93a8e9c9eab -Author: Bhuvan Arumugam -Date: Thu Apr 12 09:05:11 2012 -0700 - - Add AUTHORS generation function. - - Change-Id: I0adbf0755a0191c7b68af9ca2f6e50c787ee7043 - -commit ad006f4dce7ddd98ea2c06afc73516c3713354bc -Author: Russell Bryant -Date: Tue Apr 3 17:05:37 2012 -0400 - - Change behavior in utils.import_object(). - - Fix bug 972859. - - Prior to this patch, utils.import_object(foo) and - utils.import_class(foo) would return the same thing if foo was the path - to a class. This patch changes utils.import_object() to return an - instance of the class, instead, also allowing you to pass in arguments - to the constructor. - - This patch also removes the odd behavior of import_object() to be able - to also import a module. Instead, a new function import_module() has - been added. - - Finally, the three import helpers have been moved to a new module, - importutils. - - Change-Id: Ia2ea64c965692f8c3a29adec332dd93a83980070 - -commit d1e6b10c907cadf51e5cf24b46a23e70bb813f39 -Author: Russell Bryant -Date: Wed Apr 4 10:04:34 2012 -0400 - - Move auth_str_equal() to a new authutils module. - - This patch moves auth_str_utils() to a new module, authutils, for - helper functions related to authentication. - - Change-Id: I83f174486269701deed3500f890832a71ff3e315 - -commit 5f19b8155e2f8ca411cb53e36bacba3d4b6eb04f -Merge: 0252f70 dd09447 -Author: Jenkins -Date: Wed Apr 11 06:21:20 2012 +0000 - - Merge "Create openstack.common.timeutils." - -commit 0252f70dae1bac48e05132886b5280b8f2b4359c -Merge: 87397ee b6f8119 -Author: Jenkins -Date: Wed Apr 4 15:50:16 2012 +0000 - - Merge "Add generic PasteDeploy app and filter factories" - -commit dd09447b04d792d816fac544e03cd7f8871d9e99 -Author: Russell Bryant -Date: Wed Apr 4 10:40:42 2012 -0400 - - Create openstack.common.timeutils. - - Split time related utility functions out of openstack.common.utils into - a new module, timeutils. - - Change-Id: Ic09952cd48e0b4548e410926cc456cbd515a4e56 - -commit 87397eefb324e06bb95d120b6527e37ef1dea73a -Merge: d036e5e b6f8119 -Author: Jenkins -Date: Wed Apr 4 02:13:12 2012 +0000 - - Merge "Add greenthread local storage model from nova" - -commit d036e5e28c482a84b6748f5057c6268ab86183c7 -Merge: e2e7c5a 328d46f -Author: Jenkins -Date: Fri Mar 30 08:35:32 2012 +0000 - - Merge "Make 'yes' also a true boolean" - -commit e2e7c5a7a72201a1a569fe28ef52301bdeb4b689 -Author: Rick Harris -Date: Thu Mar 29 04:51:09 2012 +0000 - - Typofix, OptionGroup should be OptGroup. - - Change-Id: I67473bb847759ce719876e08f8a894e000f11bb3 - -commit 6dbef4b1edf7a9fcb9d51ec963e5663853a32238 -Author: Rick Harris -Date: Wed Mar 28 18:37:16 2012 +0000 - - Use absolute import for iniparser. - - Fixes bug 967400 - - Change-Id: I0c028f6b5285cd641dedbcea3132224e404b004e - -commit 328d46f661ea66c3aca0562b020fc6b1fe062ae8 -Author: Sean Dague -Date: Thu Mar 22 17:32:31 2012 -0400 - - Make 'yes' also a true boolean - - Adds yes, Yes, and all other capitalizations as a true boolean. - Updated unit tests to test for these. - - Change-Id: I97915f870dd6bba612f74f0ceb78f2399fd81a93 - -commit b31e155bc88f14b66fd787f0e0b51e44a7f847d3 -Merge: 06faf31 7245d7c -Author: Jenkins -Date: Thu Mar 22 18:53:43 2012 +0000 - - Merge "Finish implementing MultiStrOpt" - -commit 06faf319f634d2adb2dd4afaede6dcd77094740b -Merge: 6fe1f6e d5cd2c5 -Author: Jenkins -Date: Thu Mar 22 18:49:18 2012 +0000 - - Merge "Avoid leaking secrets into config logging." - -commit 7245d7ce196d8ac2031afde82713d45b039c748a -Author: Johannes Erdfelt -Date: Wed Mar 14 22:24:14 2012 +0000 - - Finish implementing MultiStrOpt - - Fixes bug 955308 - - Previously only multiple string options from the CLI were supported. - This change adds support for config files too and merges the results - from both CLI and config files. - - Change-Id: I642408c03ed295fac050105fd4380940e876f228 - -commit d5cd2c56ede09793636148f5cd29123f7bde4118 -Author: Eoghan Glynn -Date: Thu Mar 22 16:54:26 2012 +0000 - - Avoid leaking secrets into config logging. - - Implements bp cfg-password-options - - Allow options to be declared secret so that their value is - obfuscated before logging. - - Change-Id: Ie2168d218b029d9c12fa5b48342cd5b17b2cc77a - -commit 6fe1f6e43b88c9436b7f06464c5a6a50c094dae7 -Author: Russell Bryant -Date: Mon Mar 19 17:07:24 2012 -0400 - - Add auth_str_equal() to common utils. - - This function provides a constant-time string comparison. Its primary - use case is for authentication to avoid timing vulnerabilities. Similar - functions currently exist in keystone, nova, and swift. The three - diverged in slight ways immediately after going in. This version comes - from keystone, which I consider the "best" version to promote to - openstack-common. - - Change-Id: I39537a21be8a402e34e526466f6b90188344a35d - -commit b6f8119c95132d516b6ceb238e20be3226ddc523 -Author: Joe Gordon -Date: Tue Mar 13 17:25:19 2012 -0700 - - Fix bug 954488 - - Change-Id: I99b764310c575e70aff4a6790e8ba8f55e43deeb - -commit cb73172d4e3437419e803edc0e3bbdf30b6b5aaa -Author: Doug Hellmann -Date: Fri Mar 9 11:11:16 2012 +0000 - - fix restructuredtext formatting in docstrings - - blueprint sphinx-doc-cleanup - bug 94516 - - - Correct parameter declarations, list formatting, cross-references, etc. - - We don't need "let" in generate_autodoc_index.sh since we aren't doing math. - - Change conf.py to not prefix class and function names with full namespace - in generated output to save width on the screen. - - Change-Id: I9adc8681951913fd291d03e7142146e9d46841df - -commit 27d7597d5ff1877bc25af9d30bcda83f1ba26d12 -Author: Mark McLoughlin -Date: Wed Feb 22 16:29:59 2012 +0000 - - Add ConfigOpts.print_help() - - Keystone uses this optparse method. - - Change-Id: Ic840b2fb2234a12cd94ca671a8d90cd2affe3a5e - -commit 080f59d9dd4870aff01bcfdada98a80ec58544b8 -Author: Erik Bray -Date: Mon Feb 20 23:24:49 2012 +0000 - - Fixes a bug where entry_points in a setup.py are blanked out if there are no entry points defined in setup.cfg. - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@15185 fe389314-cf27-0410-b35b-8c050e845b92 - -commit ac336d9f8bcdfad76577d7b17939e03a720025ed -Author: Eoghan Glynn -Date: Mon Feb 20 09:57:04 2012 +0000 - - Promote more complete support for ISO 8601 time. - - Support for ISO 861 time representation is now duplicated in nova: - - https://github.com/openstack/nova/commit/c30193fbf - - and in glance: - - https://github.com/openstack/glance/commit/f8f9f171 - - Note this patch introduces a new dependency on python-iso8601, which - has already been packaged for Fedora, EPEL and Ubuntu/Debian. - - Change-Id: I87c32effa97d3b7a8d869522b62c0c6fb31bcef8 - -commit cf5f2a5ecbda8213b9577f9338c1f08befd55f7f -Author: Zhongyue Luo -Date: Fri Jan 20 01:10:58 2012 -0500 - - cfg: fix a small comment typo - - Change-Id: I2646d7e674ef3d1759558e820f051cc5e7f3b4ae - -commit 8c24ce0ad318bda5d93ae39575ba6d3ad3843261 -Merge: 0a36dcf 2a6be97 -Author: Jenkins -Date: Mon Feb 20 06:32:09 2012 +0000 - - Merge changes I71d99f00,Ib91b5af0 - - * changes: - Add git changelog method. - Add git vcsversion method. - -commit f6fe1e026ea1c9750244662fb6e248bca3598f33 -Author: Erik Bray -Date: Fri Feb 17 20:53:46 2012 +0000 - - Several changes that I accidentally committed to d2to1's old repository. See the changes to the changelog for more details. - - git-svn-id: https://svn.stsci.edu/svn/ssb/stsci_python/d2to1/trunk@15173 fe389314-cf27-0410-b35b-8c050e845b92 - -commit 0a36dcf2c8d02fcdc7b93650b66a22aefcb0952c -Author: Zhongyue Luo -Date: Sun Feb 12 16:04:21 2012 +0800 - - cfg: unneeded multiple inheritance - - Fixed bug #927650 - - In python=<2.6, collections.Mapping inherits from - collections.Sized, collections.Iterable, and collections.Container - which are also subclasses of object. - - Change-Id: I6238c683324127abd9fb637748a10b6bdb2961e0 - -commit b1639c73086b4b6a9cd6ae811be6d234ce4629ee -Author: Zhongyue Luo -Date: Sat Feb 11 20:18:08 2012 +0800 - - PEP8 cleanup (openstack-common) - - Fixes bug #930625 - - Remove backslash continuations in openstack-common. - Fix type checking taboos. - - Change-Id: I49ddb9ff5fa5af760dcfccb52cb4793b71e02f19 - -commit cf63c6756497d987753aaf6510ca5cf03bdc5375 -Merge: 17fa572 1455e35 -Author: Jenkins -Date: Fri Feb 10 17:32:00 2012 +0000 - - Merge "Disable ConfigParser interpolation (lp#930270)" - -commit 17fa57250f4372e9d0257c265d1ebf9eac6d8d73 -Author: Zhongyue Luo -Date: Fri Feb 10 17:21:32 2012 +0000 - - Backslash continuations (misc.) - - Fixes bug #925166 - - This patch for packages which have few backslash continuations. - - Follow up patches will be for packages network, scheduler, virt, - db/sqlalchemy, tests, and api/openstack. - - Change-Id: I4200010b47b33fa8b9115b5d379b543200f6668d - -commit 1455e35257fa240a4c4cc1a9f8d52ac385476345 -Author: Mark McLoughlin -Date: Fri Feb 10 17:14:52 2012 +0000 - - Disable ConfigParser interpolation (lp#930270) - - This breaks e.g. - - volume_name_template=volume-%08x - instance_name_template=instance-%08x - - and is not part of the API contract anyway. We use $opt based value - interpolation. - - Change-Id: I7ba566ae7c9a77322b52c67c5e1ffbffb760f0fc - -commit 2a6be979018944a2e7dc27cdbb71f682c6874bfe -Author: Monty Taylor -Date: Tue Feb 7 10:02:45 2012 -0800 - - Add git changelog method. - - Change-Id: I71d99f00b2154bf151a1521016118ba6bd088f79 - -commit 225107526bf157d5034bfe72e4c2b76ee20b6212 -Author: Monty Taylor -Date: Mon Feb 6 07:14:02 2012 -0800 - - Add git vcsversion method. - - Leaving in the branch_nick for now - I think we need to go through the - projects using this code and ensure that they aren't going to get screwed - before we remove it. - - Change-Id: Ib91b5af050244f44cd811ca47cb6e2c53ef74ddb - -commit fbaefc8bcb27feea1fc3d43c1a3fe7dea4c9d946 -Author: Monty Taylor -Date: Mon Feb 6 09:49:09 2012 -0500 - - Updated tox config for multi-python testing. - - Change-Id: Ib1f768c6783db0e63cb51dfc767ae5a31a295c76 - -commit a0da360499aec576b3c075aec0817da5000a604d -Author: Monty Taylor -Date: Mon Feb 6 08:40:50 2012 -0500 - - Split functions to avoid eventlet import. - - Some of these functions are used in setup.py. In a virtualenv - based workflow, python setup.py sdist is called to create a - tarball which is then installed into the virtualenv. These - functions need to be in a separate file so that they can be - imported by setup.py without eventlet needing to be installed. - - Change-Id: I6f7dc9614895b8c91135c62373b98afe55e1fc7d - -commit 9cad74b293221b0273fdc0c67175fdf6bee35aac -Author: Anthony Young -Date: Thu Feb 2 23:28:24 2012 +0000 - - Implements blueprint separate-nova-volumeapi - - [...] - ** Removes flag osapi_extension and replaces with osapi_compute_extension and osapi_volume_extension - [...] - - Change-Id: I4c2e57c3cafd4e1a9e2ff3ce201c8cf28326afcd - -commit f63e4a52159482c7c30ef41f36432affab286ee6 -Author: Vishvananda Ishaya -Date: Thu Feb 2 23:25:53 2012 +0000 - - Makes common/cfg.py raise AttributeError - - * fixes bug 915039 - * includes test - - Change-Id: I67b886be3b5af3763f52fffe54085975d61d61eb - -commit a1652e99c784fe45f3f1ba862a98701a5277fd6d -Author: lzyeval -Date: Thu Feb 2 23:24:46 2012 +0000 - - PEP8 type comparison cleanup - - Fixes bug #910295 - - The None, True, and False values are singletons. - - All variable *comparisons* to singletons should use 'is' or 'is not'. - All variable *evaluations* to boolean should use 'if' or 'if not'. - - "== None", "== True", "== False", and "!= None" comparisons in sqlalchemy's - where(), or_(), filter(), and_(), and select() functions should not be changed. - - Incorrect comparisons or evaluations in comments were not changed. - - Change-Id: I087f0883bf115b5fe714ccfda86a794b9b2a87f7 - -commit 523fb9f9dadfc2a5664ee87c16e0efdd77f32d78 -Author: Mark McLoughlin -Date: Fri Jan 27 20:01:39 2012 +0000 - - Add the Mapping interface to cfg.ConfigOpts - - Implements blueprint cfg-mapping interface - - With cfg, option values are accessed via attributes on ConfigOpts - objects e.g. - - conf = ConfigOpts() - conf.register_opt(StrOpt('foo')) - conf() - print conf.foo - - One use case that isn't easily supported with option values represented - this way is iterating over all the registered options. Standard - interfaces for listing attributes on an object aren't suitable because - they will list more than just the options. - - For this use case alone, it's worth having ConfigOpts implement the - mapping interface. That way we can do e.g. - - for opt, value in conf.items(): - print "Option %s = %s" % (opt, value) - - It's interesting to compare argparse's approach to this problem - option - values are attributes on a Namespace object which has no attributes or - methods to pollute the namespace of option names. This is a nice - approach, but would mean that we would be passing around both a - ConfigOpts object and a Namespace object. That's a bit too much overhead, - and the mapping interface provides a usable workaround where there is a - conflict. - - Change-Id: Ic113919a20291048f962999229c76884ebdd5ad8 - -commit 725beefda1b26c259c59c956d32a27ad83ae913a -Author: Mark McLoughlin -Date: Mon Jan 23 10:42:07 2012 +0000 - - Add support to cfg for disabling interspersed args - - Implements blueprint cfg-disable-interspersed-args - - Nova currently relies on cfg being implemented with optparse because it - uses optparse's disable_interspersed_args() - - The use case for this is if you do: - - $> nova-manage --verbose create --project foo --user bar - - you want invoking ConfigOpts() to return: - - ['create', '--project', 'foo', '--user', 'bar'] - - as the "extra" args rather than aborting when it doesn't recognize the - --project arg. - - This is a reasonable use case for cfg to support and it should just have - {disable,enable}_interspersed_args() methods. - - If we ever switch from optparse to argparse, we'll do something like this: - - parser.add_argument('--verbose') - ... - parser.add_argument( - 'extra_args', - nargs=argparse.REMAINDER if disable_interspersed_args else '*') - ... - ns = parser.parse_args(...) - extra_args = ns.extra_args - - i.e. we will need an 'extra_args' multi-value positional argument in any - case and we'll just pass nargs=REMAINDER if we want trailing options to - be included in the extra args. - - Change-Id: I3ecb7dc18230327cf5aaaa7d832224e64aafa40c - -commit 35b2da87efaa9ae2e3f214754297bae27a6a1911 -Author: Mark McLoughlin -Date: Tue Jan 10 20:51:49 2012 +0000 - - Add new cfg module - - As described here: - - http://wiki.openstack.org/CommonConfigModule - - The module implements an API for defining configuration options and - reading values for those options that a user may have set in a config - file or on the command line. - - The module is successfully in use in both Nova and Glance. Some work - remains in Nova to switch from using it under a gflags compatible - shim layer, but Glance is using it fully. - - There doesn't appear to be any blockers to other projects moving over - to it fairly easily. Swift would perhaps be the next project to tackle. - - Just to go through potential future compatibility concerns: - - - Nova (the scroundrel) hackily uses the private ConfigOpts::_oparser - in order to disable interspersed args. This was just for nova-manage - and can probably be resolved some other way. In any case, Nova - shouldn't switch to openstack-common's cfg API until it removes this - hack. - - - the CommonConfigOpts subclass set of logging related options is - perhaps assuming too much about what configuration options should - be common across all the projects. However, it seems a fairly sane - set and the worst that can happen is that projects avoid using it. - - - the parameters to the Opt constructor fairly closely mirror - optparse, but they're fairly generic and shouldn't prevent us from - switching to e.g. argparse - - - stuff like %prog expansion in the ConfigOpt's usage ctor param is a - similar concern, but it's a very minor concern. - - - find_config_files() search path is perhaps too much policy for - openstack-common; however, it is probably as generic as it could - be and projects which need a different policy can just not use - the function - - On the whole, I think we're in good shape wrt future compatibility. - - Change-Id: I279a9db7806d80aff3b9b085b4a9e4fb193662f9 - -commit c4c76bee45d20106ac1a0e41846a64bf86cc7377 -Author: Jason Kölker -Date: Fri Dec 2 13:17:43 2011 -0600 - - import should not return an instance of the class - -commit b07d1b73c3b3bdee8af53b544009b0de8ef436ac -Author: Jason Kölker -Date: Thu Dec 1 17:21:38 2011 -0600 - - use isinstance and types.* - -commit 93b5aa2a5437f0cb7e54a3bc0d4f5017a7438731 -Author: Jason Kölker -Date: Thu Dec 1 10:55:57 2011 -0600 - - make fix_path a real function so it can be mock'd - -commit d774e434e54c11228c80c329dc2d54ed6c95efd4 -Author: Jason Kölker -Date: Thu Dec 1 10:54:08 2011 -0600 - - remove unused imports - -commit b66713ebe7aeee998b14777b71dbacf53291b140 -Merge: 141201b 6adb4c5 -Author: Jason Kölker -Date: Tue Nov 1 13:26:51 2011 -0500 - - Merge commit '99b2c6c202b1ec450e5f7bc1c4080f8c36773376' - -commit 141201b4f268db8f2de29123ea0b62e86f24d0e6 -Merge: 3a3dd51 0e505a2 -Author: Jason Kölker -Date: Tue Nov 1 13:26:41 2011 -0500 - - merge in upstream - -commit 3a3dd514285f5a9487937b72cb8c9b47516e605d -Author: Jason Kölker -Date: Wed Sep 28 11:28:22 2011 -0500 - - port execute and utcnow functions from nova - -commit 523270d77852b33cd3e19d1448783fa3ad87ab24 -Author: Jason Kölker -Date: Tue Sep 27 17:20:40 2011 -0500 - - pull parse_mailmap str_dict_replace from nova - -commit 0b8851877848b5898d2be8ee9a3145f4b7553fa2 -Merge: c3dc191 a5640c7 -Author: Jason Kölker -Date: Tue Sep 27 13:44:51 2011 -0500 - - Merge openstack-skeleton into templates - -commit c3dc19148263681df5babac68ced6e80f165c5d5 -Author: Jason Kölker -Date: Tue Sep 27 13:21:47 2011 -0500 - - reog from import merge - -commit 5dddd388c0546c24750d78bb5eedb478b61bd785 -Author: Jason Kölker -Date: Tue Sep 27 13:19:33 2011 -0500 - - Merge branch 'master' of /home/jkoelker/openstack-skeleton - -commit 6adb4c51708194b61599cc01aff62be25b538175 -Author: Rajaram Mallya -Date: Fri Sep 9 11:56:02 2011 +0530 - - Rajaram/Vinkesh|Default xmlns for extension serialization can be overriden, added default factory for extension middleware - -commit 0e505a28b5e6676b70d6bf7e1b453a1a30127a1d -Author: Rajaram Mallya -Date: Thu Sep 8 18:29:40 2011 +0530 - - Rajaram/Vinkesh | Copied tests for wsgi from nova. Added default content/accept types in Request which can be overridden by projects. Copied tests for XML serialization of Extension Controller's action from nova - -commit 034693f89de5f183b96e21beb0b93e2f3a184378 -Author: Rajaram Mallya -Date: Wed Sep 7 18:08:28 2011 +0530 - - Rajaram/Vinkesh | Fixed the extension bug where custom collection actions' routes in resource extension were not getting registered - -commit ca21419cdf7ec3fd7f87cb5c2d8f0e825ee82544 -Author: Rajaram Mallya -Date: Wed Sep 7 17:07:19 2011 +0530 - - Vinkesh/Rajaram|Added nova's extension framework into common and tests for it - -commit a5640c757df7dca1cd7776d8ef96f4d0bb8ce280 -Author: Rajaram Mallya -Date: Wed Aug 31 08:29:34 2011 +0530 - - Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback - -commit 6a26798be9d66a58070c9d43c5968bc600cf492a -Author: Rajaram Mallya -Date: Thu Aug 25 10:58:45 2011 +0530 - - Rajaram/Vinkesh | Removed references to Glance in code - -commit 6b7645e121c4584b6d0edb227dc193991ad8b7f9 -Author: Rick Harris -Date: Thu Aug 11 20:27:59 2011 +0000 - - Adding syslog support - -commit b2600720c23f5ffc4965eee018f27b78e04f3111 -Author: Jay Pipes -Date: Tue Jul 26 12:51:10 2011 -0400 - - Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary - -commit 414d12a25f4473d2c5d8e5fd68aa42e7bba80472 -Author: Jay Pipes -Date: Tue Jul 26 09:05:53 2011 -0400 - - Initial skeleton project \ No newline at end of file +* Factor run_cmd out of the base class +* Return the real class in VersionInfo __repr__ +* Fix up some docstrings +* Init sphinx config values before accessing them +* Remove copyright from empty files +* Declare support for Python versions in setup.cfg +* Updated from global requirements +* Remove unused _parse_mailmap() +* Add support for python 3-<3.3 +* Remove tox locale overrides +* Do not force log verbosity level to info + +0.6 +--- + +* package: read a specific Python version requirement file +* Fix typos in documents +* Pin sphinx to <1.2 +* Build mirror using proper requirements +* Use wheels for installation +* show diff between pip installed packages and requirements +* Enable wheel processing in the tests +* Clean up integration script +* Let git do mailmap mapping for us +* Make ChangeLog more condensed +* Make sphinx builders configurable in LocalBuildDoc +* Serve local mirror using apache +* Bump the development status classifier +* Support building wheels (PEP-427) +* Ignore jenkins@openstack.org in authors building +* Communicate to user when we skip a requirement +* Base python 2.7 skip list on parsed names +* Link to the documentation in the readme +* Avoid using 'which' executable for finding git +* Add wheel mirror structure awareness +* Remove pip as an argument from mkvenv +* Use pypi-mirror instead of jeepyb + +0.5.23 +------ + +* Fixed pbr install to not error out and fail if git is not installed + +0.5.22 +------ + +* Move base test case logic out of __init__.py +* Comply with pep440 +* Prevent ordereddict installation on 2.7 +* Do not pass unicode where byte strings are wanted +* Add the semver documentation +* Get rid of PyPI URL override in integration test +* Add a test for command registration +* Switch away from tearDown for BaseTests +* Fix test_changelog when git isn't globally setup +* Rework run_shell_command +* Update tox config to use latest upgrades +* Add a hint for users who don't have git installed +* Add pypy to tox.ini +* Fix python-ldap mirroring +* Stop checking periods in commit messages +* Fixes issue with command escaping on Windows +* Added documentation for packagers +* Update requirements in integration test +* Sync requirements with global requirements +* Fix pep8 error +* Add option to run testr serially + +0.5.21 +------ + +* Replace setuptools_git with a smarter approach +* Clean up some style warnings +* Consume the OpenStack mirror by default +* Correct typo +* Improve AUTHORS file generation +* Ensure _run_shell_command always returns same type +* Hierarchical sphinx API documentation generation +* Add support for classmethod console scripts +* Add skip_pip_install to setup.cfg +* Remove missing_reuqires optimization +* Use the same logic everywhere for requirements files + +0.5.20 +------ + +* Fix .mailmap file search location +* Swap the order of configparser imports +* Install jeepyb and requirements from REPODIR +* Stop trying to install old pip and setuptools +* Add support for globbing in data files +* Revert include_package_data change +* Also patch easy_install script creation +* Loop over test output for better readability +* Add more documentation +* We force installs via pip, we should declare it +* Fix python 3.3 tests +* Replace entry_points console_scripts +* Fix integer_types type under python 3 +* Remove the need to specify the pbr hook +* Move d2to1 more into the source tree +* Set defaults directly in option processing +* Do not assume the tests run as jenkins +* Add libffi-dev +* Ignore project creator while generating AUTHORS + +0.5.19 +------ + +* Add Python 3.3 checking +* Fix some issues in setup.py test +* Put AUTHORS.in at the top of AUTHORS +* Support version override with PBR prefix +* Don't try to install requirements repo +* Allow pip installation to be skipped +* Don't run pip needlessly +* Clean up hacking and path issues with d2to1 +* Support version override with PBR prefix +* Fix some issues in setup.py test +* Add support for namespace packages + +0.5.18 +------ + +* testr: fix Python 3 compatibility +* Allow to override requirement files via environ +* Add importlib to the filter list +* Fix integration script +* Move testrepository to test-requirements.txt +* Make python setup.py test do the right thing +* Add an integration test script + +0.5.17 +------ + +* Fix pip invocation for old versions of pip + +0.5.16 +------ + +* Remove explicit depend on distribute + +0.5.15 +------ + +* Use pip instead of easy_install for installation +* Skip git-checkout related tests when .git is missing +* Refactor hooks file + +0.5.14 +------ + +* Remove jinja pin + +0.5.12 +------ + +* Explicitly install install_requires +* More python3 compatibility +* python3: Use six everywhere +* Add vim and emacs files to .gitignore +* Fix sphinx autodoc module headers +* Handle versioned egg fragments in dependency URLs +* Fix tox.ini to not reference deleted testenv + +0.5.11 +------ + +* Fix author and changelog skipping +* Fix doc autoindexing +* Changed _get_git_directory() to use git itself +* python3: Python3.x compatibility +* Cosmetic doc fixes +* Make parse errors meaningful +* Add missing files to the tarball + +0.5.10 +------ + +* Default to single-version-externally-managed +* Add config for skipping authors and changelog +* Update to d2to1 0.2.10 +* Added some additional zest.releaser hooks to deal with some perpetual annoyances of doing releases +* When catching exceptions from a setup-hook don't throw a traceback up for sys.exit() + +0.5.8 +----- + +* Don't try to smart find packages that aren't there +* Add support for manpages +* Support forcing single-version-externally-managed +* Add more iterations to BuildDoc coverage +* Align Sphinx autodoc options with oslo + +0.5.6 +----- + +* Using __file__ was getting the wrong location +* Add support for configuring pbr sphinx options +* Add support for warnings=errors +* Fix authors generation from co-authored-by +* Ported in Co-authored-by support from oslo +* Fix up the test suite to actually all pass +* Added version code +* Update tox to run hacking +* Make hacking compliant +* Ensure that reuqirements files are shipped +* Add MANIFEST.in + +0.5.0 +----- + +* Update documentation for release +* Rename back to PBR +* Remove extra complexity of six.u wrapper +* Add contributing file +* Fix .gitreview file +* Add docs dir +* Cleaned up stdout capture invocation +* Put stdout capture in the base test class +* Amended README testing instructions +* Update README with test running instructions +* Move setup_requires to setup_requires_dist +* Move sphinx to test-reuqirements +* Deal with Sphinx import ordering +* Add a better todo comment +* Update docs +* Just use d2to1 via hooks mechanism +* Add a few more backwards compatibility options +* Fix exception handling error +* Lower distribute requirement - it's too extreme +* Remove sex requirement, since it's in extern +* Remove version that had been used for testing +* pep8/pyflakes fixes +* Fix things up to work with nova +* Split out oslo.packaging +* Fix two minor style things +* Fixes #20. Make sure the manifest_maker monkeypatch only occurs once and that it gets all its required locals encapsulated. This is why I hate any sort of monkey-patching, but it appears to be the only way to get this feature working +* Fix 'except as' statements that were breaking things in Python 2.5 +* Somehow neglected to include extra-file.txt used in the test for #15. Also moved the info log message that was causing othere tests to fail to only appear when commands are run that actually affect the manifest generation +* Yet another Python 2.5 fix; I really ought to just set up my own 2.5 installation +* multiprocessing doesn't exist in Python 2.5 +* Adds six.py and makes the necessary tweaks to improve support for using d2to1 natively across Python versions +* Fix 'except as' statements that were breaking things in Python 2.5 +* Somehow neglected to include extra-file.txt used in the test for #15. Also moved the info log message that was causing othere tests to fail to only appear when commands are run that actually affect the manifest generation +* Adds support for the tests_require keyword from setuptools. Tested by eating our own dogfood -- ./setup.py test now works for d2to1's own setup +* support test suite and test tests-require +* Patch manifest_maker to support extra_files--this is really the only way I can see to do this at all sensibly +* This is a test that should really work to test this feature +* openstack.common.setup: fails to get version from git +* Use oslo-config-2013.1b3 +* Change the check for the existence of .git directory +* returncode for Popen is valid only after communicate call +* sort options to make --help output prettier +* Allow running test in uninstalled source tree +* Remove openstack.common.db.common +* Add missing DBDuplicateEntry +* Import sqlalchemy session/models/utils +* Implements import_group +* Fix Pep8 Warning +* Fixes "is not", "not in" syntax usage +* setup: count revs for revno if there are no tags +* Use testtools as test base class +* Move logging config options into the log module +* Use revno and git sha for pre-release versioning +* Add env var version override for packagers +* trivial pep whitespace fix +* Remove write_requirements +* Rolling back to previous version of resolve_name; it's possible this can fail in the presence of a broken namespace package, but I want to make sure that's the case before trying to fix it +* Stop using no longer valid -E option for pip +* oops - now compatible with python 3 +* use regexp to parse the mailmap +* Make tox run doctests +* Verbose should not enable debug level logging +* Fix pep8 E125 errors +* Simplify version processing +* Any exception that escapes from a hook gets reported along with a stack trace +* Revert "Support lookup of value using "group.key"" +* remove debugging +* Add a latex command to our sphinx builders +* Support lookup of value using "group.key" +* debugging auto builds +* debugging auto builds +* fix up importer; clean hook name before search +* show traceback when a hook encounters an exception +* Add deprecated --logdir common opt +* Add deprecated --logfile common opt +* Allow nova and others to override some logging defaults +* Fixing the trim for ListOp when reading from config file +* Fix set_default() with boolean CLI options +* Rename utils.py to strutils.py +* Improve cfg's argparse sub-parsers support +* Make project pyflakes clean +* Fix regression with cfg CLI arguments +* Fix ListOpt to trim whitespace +* Hide the GroupAttr conf and group attributes +* Fix broken --help with CommonConfigOpts +* updating sphinx documentation +* Don't reference argparse._StoreAction +* Fix minor coding style issue +* Remove ConfigCliParser class +* Add support for positional arguments +* Use stock argparse behaviour for optional args +* Use stock argparse --usage behaviour +* Use stock argparse --version behaviour +* Remove add_option() method +* Completely remove cfg's disable_interspersed_args() +* argparse support for cfg +* Remove openstack.common.config and extensions +* Fixes setup compatibility issue on Windows +* Move utils.execute to its own module +* Add a missing comma in a docstring +* Import order clean-up +* Fix a logic error in stable version calculation +* cfg: fix required if option has a dash +* Fix a couple of file handle leaks, using with statements +* Ignore the stackforge jenkins email address +* Extracted parse_host_port into network_utils +* Add the rpc service and delete manager +* Some changes I made weeks ago but forgot to commit +* Added a method for parsing host:port pairs +* Add basic periodic task infrastructure +* Move manager.py and service.py into common +* cfg: clean up None value handling +* Allow set_default and set_override to use None +* Tilde expansion for --config-file and --config-dir +* Add multiple-driver support to the notifier api +* Fix errors reported by pyflakes +* Add import_opt() method to ConfigOpts +* Remove unused imports +* Modifies _is_opt_registered fcn to check for duplicate opts +* fix bug lp:1019348,update openstack-common to support pep8 1.3 +* cfg: allow empty config values +* Add SKIP_GENERATE_AUTHORS option to setup.py +* Add SKIP_WRITE_GIT_CHANGELOG option to setup.py +* Fix missing gettextutils in several modules +* Fix up pre-versioning based on testing in glance +* cfg: Fix typo in documentation +* Fix mailmap +* Split read_versioninfo into a method +* Add common logging and notification +* Add support for tag based versioning +* Skip argparse when injecting requirements +* Update common code to support pep 1.3. bug 1014216 +* Add autodoc generation to the build_sphinx command +* Use 'is not None' instead of '!= None' +* Adds support for bol and eol spaces to ini files +* Add support to include config aliases +* Create testutils with skip decorators +* cfg: add a global CONF object +* cfg: add generators for iterating over all options +* cfg: move constructor args to __call__() args +* Added support for proper bare URLs +* Backslash continuation removal (common folsom-1) +* Alphabetize imports in openstack/common/cfg.py +* cfg: make reset() clear defaults and overrides +* cfg: automatically create option groups +* cfg: allow options to be marked as required +* cfg: use a list comprehension instead of map() +* Encapsulate common sdist actions into a cmdclass +* Truly handle mailmap entries for all combinations +* New ConfigOpts.find_file() for locating conf files +* Handle authors existed before VCS was around +* Support for directory source of config files +* Provide file extension when when looking for files +* Some refactoring of the cfg cache +* Add caching to openstack.common.cfg +* Add AUTHORS generation function +* Change behavior in utils.import_object() +* Move auth_str_equal() to a new authutils module +* Create openstack.common.timeutils +* Typofix, OptionGroup should be OptGroup +* Use absolute import for iniparser +* Make 'yes' also a true boolean +* Finish implementing MultiStrOpt +* Avoid leaking secrets into config logging +* Add auth_str_equal() to common utils +* Fix bug 954488 +* fix restructuredtext formatting in docstrings +* Add ConfigOpts.print_help() +* Fixes a bug where entry_points in a setup.py are blanked out if there are no entry points defined in setup.cfg +* Promote more complete support for ISO 8601 time +* cfg: fix a small comment typo +* Several changes that I accidentally committed to d2to1's old repository. See the changes to the changelog for more details +* cfg: unneeded multiple inheritance +* PEP8 cleanup (openstack-common) +* Backslash continuations (misc.) +* Disable ConfigParser interpolation (lp#930270) +* Add git changelog method +* Add git vcsversion method +* Updated tox config for multi-python testing +* Split functions to avoid eventlet import +* Implements blueprint separate-nova-volumeapi +* Makes common/cfg.py raise AttributeError +* PEP8 type comparison cleanup +* Add the Mapping interface to cfg.ConfigOpts +* Add support to cfg for disabling interspersed args +* Add new cfg module +* import should not return an instance of the class +* use isinstance and types.* +* make fix_path a real function so it can be mock'd +* remove unused imports +* merge in upstream +* port execute and utcnow functions from nova +* pull parse_mailmap str_dict_replace from nova +* reog from import merge +* Rajaram/Vinkesh|Default xmlns for extension serialization can be overriden, added default factory for extension middleware +* Rajaram/Vinkesh | Copied tests for wsgi from nova. Added default content/accept types in Request which can be overridden by projects. Copied tests for XML serialization of Extension Controller's action from nova +* Rajaram/Vinkesh | Fixed the extension bug where custom collection actions' routes in resource extension were not getting registered +* Vinkesh/Rajaram|Added nova's extension framework into common and tests for it +* Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback +* Rajaram/Vinkesh | Removed references to Glance in code +* Adding syslog support +* Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary +* Initial skeleton project diff -Nru python-pbr-0.5.23/debian/changelog python-pbr-0.7.0/debian/changelog --- python-pbr-0.5.23/debian/changelog 2014-02-24 11:13:42.000000000 +0000 +++ python-pbr-0.7.0/debian/changelog 2014-03-28 04:21:16.000000000 +0000 @@ -1,8 +1,29 @@ -python-pbr (0.5.23-0ubuntu4~cloud0) precise-icehouse; urgency=low +python-pbr (0.7.0-0ubuntu2~cloud0) precise-icehouse; urgency=medium * New update for the Ubuntu Cloud Archive. - -- Openstack Ubuntu Testing Bot Mon, 24 Feb 2014 06:13:42 -0500 + -- Openstack Ubuntu Testing Bot Fri, 28 Mar 2014 00:21:16 -0400 + +python-pbr (0.7.0-0ubuntu2) trusty; urgency=medium + + * debian/patches/python-3.2-compat.patch: Updated to fix + FTBFS with python3.2. (LP: #1298384) + + -- Chuck Short Thu, 27 Mar 2014 09:30:26 -0400 + +python-pbr (0.7.0-0ubuntu1) trusty; urgency=medium + + * New upstream release. + * debian/patches/drop-pip-requirement.patch: Refreshed + + -- Chuck Short Tue, 18 Mar 2014 11:23:48 -0400 + +python-pbr (0.6-0ubuntu1) trusty; urgency=medium + + * New upstream release. + * debian/patches/python-3.2-compat.patch: Refreshed. + + -- Chuck Short Mon, 17 Mar 2014 18:45:41 -0400 python-pbr (0.5.23-0ubuntu4) trusty; urgency=medium diff -Nru python-pbr-0.5.23/debian/patches/drop-pip-requirement.patch python-pbr-0.7.0/debian/patches/drop-pip-requirement.patch --- python-pbr-0.5.23/debian/patches/drop-pip-requirement.patch 2013-12-04 15:31:56.000000000 +0000 +++ python-pbr-0.7.0/debian/patches/drop-pip-requirement.patch 2014-03-18 15:30:14.000000000 +0000 @@ -1,4 +1,5 @@ ---- a/requirements.txt -+++ /dev/null +diff -Naurp pbr-0.7.0.orig/requirements.txt pbr-0.7.0/requirements.txt +--- pbr-0.7.0.orig/requirements.txt 2014-03-18 10:08:07.000000000 -0400 ++++ pbr-0.7.0/requirements.txt 2014-03-18 11:29:51.219870236 -0400 @@ -1 +0,0 @@ --pip>=1.0 +-pip>=1.4 diff -Nru python-pbr-0.5.23/debian/patches/python-3.2-compat.patch python-pbr-0.7.0/debian/patches/python-3.2-compat.patch --- python-pbr-0.5.23/debian/patches/python-3.2-compat.patch 2013-12-05 07:44:41.000000000 +0000 +++ python-pbr-0.7.0/debian/patches/python-3.2-compat.patch 2014-03-27 13:30:20.000000000 +0000 @@ -1,8 +1,21 @@ Description: Fix python-pbr on python3.2 Author: Chuck Short Forwarded: No ---- a/pbr/tests/test_setup.py -+++ b/pbr/tests/test_setup.py +diff -Naurp pbr-0.7.0.orig/pbr/packaging.py pbr-0.7.0/pbr/packaging.py +--- pbr-0.7.0.orig/pbr/packaging.py 2014-03-18 10:08:07.000000000 -0400 ++++ pbr-0.7.0/pbr/packaging.py 2014-03-27 09:26:56.759481000 -0400 +@@ -280,7 +280,7 @@ def write_git_changelog(git_dir=None, de + + underline = len(tag) * '-' + if not first_line: +- changelog_file.write(u'\n') ++ changelog_file.write('\n') + changelog_file.write( + ("%(tag)s\n%(underline)s\n\n" % + dict(tag=tag, +diff -Naurp pbr-0.7.0.orig/pbr/tests/test_setup.py pbr-0.7.0/pbr/tests/test_setup.py +--- pbr-0.7.0.orig/pbr/tests/test_setup.py 2014-03-18 10:08:07.000000000 -0400 ++++ pbr-0.7.0/pbr/tests/test_setup.py 2014-03-27 09:24:58.139481000 -0400 @@ -17,6 +17,7 @@ # under the License. @@ -11,8 +24,8 @@ import os import sys -@@ -171,10 +172,10 @@ class GitLogsTest(base.BaseTestCase): - self.assertTrue("email@foo.com" in ch_fh.read()) +@@ -145,10 +146,10 @@ class GitLogsTest(base.BaseTestCase): + self.assertNotIn('Merge "', changelog_contents) def test_generate_authors(self): - author_old = u"Foo Foo " @@ -25,4 +38,4 @@ + co_author_by = "Co-authored-by: " + co_author git_log_cmd = ( - "git --git-dir=%s log --format=%%aN <%%aE>" % self.git_dir) + "git --git-dir=%s log --use-mailmap --format=%%aN <%%aE>" diff -Nru python-pbr-0.5.23/doc/source/index.rst python-pbr-0.7.0/doc/source/index.rst --- python-pbr-0.5.23/doc/source/index.rst 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/doc/source/index.rst 2014-03-18 14:08:07.000000000 +0000 @@ -1,6 +1,6 @@ -=================================== - pbr - Python Build Reasonableness -=================================== +================================= +pbr - Python Build Reasonableness +================================= A library for managing setuptools packaging needs in a consistent manner. @@ -32,6 +32,8 @@ version you are working towards, and will generate alpha version strings based on commits since last tag and the current git sha. +The versions are expected to be compliant with :doc:`semver`. + AUTHORS and ChangeLog --------------------- @@ -65,6 +67,21 @@ them into the install_requires and/or tests_require and/or dependency_links arguments to setup. Voila! +You can also have a requirement file for each specific major version of +Python. If you want to have a different package list for Python 3, just drop +a requirements-py3.txt, and it will be used instead. + +The requirement files are tried in that order (N being the Python major +version number used to install the package): + +* requirements-pyN.txt +* tools/pip-requires-py3 +* requirements.txt +* tools/pip-requires + +Only the first file found is used to install the list of packages it +contains. + long_description ---------------- @@ -141,7 +158,7 @@ `packages` is a list of top-level packages that should be installed. The behavior of packages is similar to `setuptools.find_packages` in that it -recurses the python package heirarchy below the given top level and installs +recurses the python package hierarchy below the given top level and installs all of it. If `packages` is not specified, it defaults to the name given in the `[metadata]` section. @@ -191,13 +208,14 @@ `Plain` class in `pbr.cfg.driver` and one called `fancy` which maps to the `Fancy` class in `pbr.cfg.driver`. -Packager Notes -============== +Additional Docs +=============== .. toctree:: :maxdepth: 1 packagers + semver Indices and tables ================== diff -Nru python-pbr-0.5.23/doc/source/semver.rst python-pbr-0.7.0/doc/source/semver.rst --- python-pbr-0.5.23/doc/source/semver.rst 1970-01-01 00:00:00.000000000 +0000 +++ python-pbr-0.7.0/doc/source/semver.rst 2014-03-18 14:08:07.000000000 +0000 @@ -0,0 +1,326 @@ +Linux Compatible Semantic Versioning 3.0.0 +========================================== + +This is a fork of Semantic Versioning 2.0. The specific changes have to do +with the format of pre-release and build labels, specifically to make them +not confusing when co-existing with Linux Distribution packaging. +Inspiration for the format of the pre-release and build labels came from +Python's PEP440. + +Summary +------- + +Given a version number MAJOR.MINOR.PATCH, increment the: + +#. MAJOR version when you make incompatible API changes, +#. MINOR version when you add functionality in a backwards-compatible + manner, and +#. PATCH version when you make backwards-compatible bug fixes. + +Additional labels for pre-release and build metadata are available as +extensions to the MAJOR.MINOR.PATCH format. + +Introduction +------------ + +In the world of software management there exists a dread place called +"dependency hell." The bigger your system grows and the more packages +you integrate into your software, the more likely you are to find +yourself, one day, in this pit of despair. + +In systems with many dependencies, releasing new package versions can +quickly become a nightmare. If the dependency specifications are too +tight, you are in danger of version lock (the inability to upgrade a +package without having to release new versions of every dependent +package). If dependencies are specified too loosely, you will inevitably +be bitten by version promiscuity (assuming compatibility with more +future versions than is reasonable). Dependency hell is where you are +when version lock and/or version promiscuity prevent you from easily and +safely moving your project forward. + +As a solution to this problem, I propose a simple set of rules and +requirements that dictate how version numbers are assigned and +incremented. These rules are based on but not necessarily limited to +pre-existing widespread common practices in use in both closed and +open-source software. For this system to work, you first need to declare +a public API. This may consist of documentation or be enforced by the +code itself. Regardless, it is important that this API be clear and +precise. Once you identify your public API, you communicate changes to +it with specific increments to your version number. Consider a version +format of X.Y.Z (Major.Minor.Patch). Bug fixes not affecting the API +increment the patch version, backwards compatible API additions/changes +increment the minor version, and backwards incompatible API changes +increment the major version. + +I call this system "Semantic Versioning." Under this scheme, version +numbers and the way they change convey meaning about the underlying code +and what has been modified from one version to the next. + +Linux Compatible Semantic Versioning is different from Semantic +Versioning in that it does not employ the use of the hypen in ways that +are ambiguous when used with or adjacent to software packaged with dpkg or +rpm. Instead, it draws from PEP440's approach of indicating pre-releases +with leading characters in the version segment. + +Semantic Versioning Specification (SemVer) +------------------------------------------ + +The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", +"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this +document are to be interpreted as described in `RFC +2119 `__. + +#. Software using Semantic Versioning MUST declare a public API. This + API could be declared in the code itself or exist strictly in + documentation. However it is done, it should be precise and + comprehensive. + +#. A normal version number MUST take the form X.Y.Z where X, Y, and Z + are non-negative integers, and MUST NOT contain leading zeroes. X is + the major version, Y is the minor version, and Z is the patch + version. Each element MUST increase numerically. For instance: 1.9.0 + -> 1.10.0 -> 1.11.0. + +#. Once a versioned package has been released, the contents of that + version MUST NOT be modified. Any modifications MUST be released as + a new version. + +#. Major version zero (0.y.z) is for initial development. Anything may + change at any time. The public API should not be considered stable. + +#. Version 1.0.0 defines the public API. The way in which the version + number is incremented after this release is dependent on this public + API and how it changes. + +#. Patch version Z (x.y.Z \| x > 0) MUST be incremented if only + backwards compatible bug fixes are introduced. A bug fix is defined + as an internal change that fixes incorrect behavior. + +#. Minor version Y (x.Y.z \| x > 0) MUST be incremented if new, + backwards compatible functionality is introduced to the public API. + It MUST be incremented if any public API functionality is marked as + deprecated. It MAY be incremented if substantial new functionality + or improvements are introduced within the private code. It MAY + include patch level changes. Patch version MUST be reset to 0 when + minor version is incremented. + +#. Major version X (X.y.z \| X > 0) MUST be incremented if any + backwards incompatible changes are introduced to the public API. It + MAY also include minor and patch level changes. Patch and minor + version MUST be reset to 0 when major version is incremented. + +#. A pre-release version MAY be denoted by appending a dot + separated identifier immediately following the patch version. + The identifier MUST comprise only a, b, rc followed by non-negative + integer value. The identifier MUST NOT be empty. + Pre-release versions have a lower precedence than the associated normal + version. A pre-release version indicates that + the version is unstable and might not satisfy the intended + compatibility requirements as denoted by its associated normal + version. Examples: 1.0.0.a1, 1.0.0.b99, 1.0.0.rc1000. + +#. A development version MAY be denoted by appending a dot separated + indentifier immediately following the patch version. + The identifier MUST comprise the string dev followed by non-negative + integer value. The identifier MUST NOT be empty. Development versions + have a lower precedence than the associated normal version. A development + version is a completely unsupported and conveys no API promises when + related to other versions. They are more useful as communication + vehicles between developers of a community, whereas pre-releases, while + potentially prone to break still, are intended for externally facing + communication of not-yet-released ideas. Example: 1.0.0.dev1. + +#. git version metadata MAY be denoted by appending a dot separated + identifier immediately following a development version. + The identifier MUST comprise the character g followed by a seven + character git short-sha. The sha MUST NOT be empty. git version + metadata MUST be ignored when determining version precedence. Thus + two versions that differ only in the git version, have the same + precedence. Example: 1.0.0.a1.g95a9beb. + +#. Build metadata MAY be denoted by appending a plus sign and a series + of dot separated identifiers immediately following the patch or + pre-release version. Identifiers MUST comprise only ASCII + alphanumerics [0-9A-Za-z]. Identifiers MUST NOT be empty. Build + metadata MUST be ignored when determining version precedence. Thus + two versions that differ only in the build metadata, have the same + precedence. Examples: 1.0.0.a1+001, 1.0.0+20130313144700, + 1.0.0.b1+exp.sha.5114f85. + +#. Precedence refers to how versions are compared to each other when + ordered. Precedence MUST be calculated by separating the version + into major, minor, patch and pre-release identifiers in that order + (Build metadata does not figure into precedence). Precedence is + determined by the first difference when comparing each of these + identifiers from left to right as follows: Major, minor, and patch + versions are always compared numerically. Example: 1.0.0 < 2.0.0 < + 2.1.0 < 2.1.1. When major, minor, and patch are equal, a pre-release + version has lower precedence than a normal version. Example: + 1.0.0.a1 < 1.0.0. When major, minor, and patch are equal, a development + version as a lower precedence than a normal version and of a pre-release + version. Example: 1.0.0.dev1 < 1.0.0 and 1.0.0dev9 < 1.0.0a1. + Precedence for two pre-release or development versions with + the same major, minor, and patch version MUST be determined by + comparing the identifier to the right of the patch version as follows: + if the alpha portion matches, the numeric portion is compared in + numerical sort order. If the alpha portion does not match, the sort + order is dev < a < b < rc. Example: 1.0.0.dev8 < 1.0.0.dev9 + 1.0.0.a1 < 1.0.0.b2 < 1.0.0.rc1 < 1.0.0. + +Why Use Semantic Versioning? +---------------------------- + +This is not a new or revolutionary idea. In fact, you probably do +something close to this already. The problem is that "close" isn't good +enough. Without compliance to some sort of formal specification, version +numbers are essentially useless for dependency management. By giving a +name and clear definition to the above ideas, it becomes easy to +communicate your intentions to the users of your software. Once these +intentions are clear, flexible (but not too flexible) dependency +specifications can finally be made. + +A simple example will demonstrate how Semantic Versioning can make +dependency hell a thing of the past. Consider a library called +"Firetruck." It requires a Semantically Versioned package named +"Ladder." At the time that Firetruck is created, Ladder is at version +3.1.0. Since Firetruck uses some functionality that was first introduced +in 3.1.0, you can safely specify the Ladder dependency as greater than +or equal to 3.1.0 but less than 4.0.0. Now, when Ladder version 3.1.1 +and 3.2.0 become available, you can release them to your package +management system and know that they will be compatible with existing +dependent software. + +As a responsible developer you will, of course, want to verify that any +package upgrades function as advertised. The real world is a messy +place; there's nothing we can do about that but be vigilant. What you +can do is let Semantic Versioning provide you with a sane way to release +and upgrade packages without having to roll new versions of dependent +packages, saving you time and hassle. + +If all of this sounds desirable, all you need to do to start using +Semantic Versioning is to declare that you are doing so and then follow +the rules. Link to this website from your README so others know the +rules and can benefit from them. + +FAQ +--- + +How should I deal with revisions in the 0.y.z initial development phase? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The simplest thing to do is start your initial development release at +0.1.0 and then increment the minor version for each subsequent release. + +How do I know when to release 1.0.0? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +If your software is being used in production, it should probably already +be 1.0.0. If you have a stable API on which users have come to depend, +you should be 1.0.0. If you're worrying a lot about backwards +compatibility, you should probably already be 1.0.0. + +Doesn't this discourage rapid development and fast iteration? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Major version zero is all about rapid development. If you're changing +the API every day you should either still be in version 0.y.z or on a +separate development branch working on the next major version. + +If even the tiniest backwards incompatible changes to the public API require a major version bump, won't I end up at version 42.0.0 very rapidly? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This is a question of responsible development and foresight. +Incompatible changes should not be introduced lightly to software that +has a lot of dependent code. The cost that must be incurred to upgrade +can be significant. Having to bump major versions to release +incompatible changes means you'll think through the impact of your +changes, and evaluate the cost/benefit ratio involved. + +Documenting the entire public API is too much work! +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +It is your responsibility as a professional developer to properly +document software that is intended for use by others. Managing software +complexity is a hugely important part of keeping a project efficient, +and that's hard to do if nobody knows how to use your software, or what +methods are safe to call. In the long run, Semantic Versioning, and the +insistence on a well defined public API can keep everyone and everything +running smoothly. + +What do I do if I accidentally release a backwards incompatible change as a minor version? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +As soon as you realize that you've broken the Semantic Versioning spec, +fix the problem and release a new minor version that corrects the +problem and restores backwards compatibility. Even under this +circumstance, it is unacceptable to modify versioned releases. If it's +appropriate, document the offending version and inform your users of the +problem so that they are aware of the offending version. + +What should I do if I update my own dependencies without changing the public API? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +That would be considered compatible since it does not affect the public +API. Software that explicitly depends on the same dependencies as your +package should have their own dependency specifications and the author +will notice any conflicts. Determining whether the change is a patch +level or minor level modification depends on whether you updated your +dependencies in order to fix a bug or introduce new functionality. I +would usually expect additional code for the latter instance, in which +case it's obviously a minor level increment. + +What if I inadvertently alter the public API in a way that is not compliant with the version number change (i.e. the code incorrectly introduces a major breaking change in a patch release) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Use your best judgment. If you have a huge audience that will be +drastically impacted by changing the behavior back to what the public +API intended, then it may be best to perform a major version release, +even though the fix could strictly be considered a patch release. +Remember, Semantic Versioning is all about conveying meaning by how the +version number changes. If these changes are important to your users, +use the version number to inform them. + +How should I handle deprecating functionality? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Deprecating existing functionality is a normal part of software +development and is often required to make forward progress. When you +deprecate part of your public API, you should do two things: (1) update +your documentation to let users know about the change, (2) issue a new +minor release with the deprecation in place. Before you completely +remove the functionality in a new major release there should be at least +one minor release that contains the deprecation so that users can +smoothly transition to the new API. + +Does SemVer have a size limit on the version string? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +No, but use good judgment. A 255 character version string is probably +overkill, for example. Also, specific systems may impose their own +limits on the size of the string. + +About +----- + +The Linux Compatible Semantic Versioning specification was modified by +`Monty Taylor `__, member of `The Satori +Group `__, co-founder of OpenStack and Free +Software Hacker. + +It was based on The Semantic Versioning specification, which was +authored by `Tom Preston-Werner `__, +inventor of Gravatars and cofounder of GitHub, with inputs from `PEP +440 `__ which was authored by +`Nick Coughlan `__ who is a core +Python developer and generally a great guy. I don't really know which +things Nick invented or co-founded, and I'm not really sure why we'd +need to list those here, but Tom did, so I figured coding style is +usually about sticking to the style that was there before you showed up. + +If you'd like to leave feedback, please `open an issue on +GitHub `__. + +License +------- + +Creative Commons - CC BY 3.0 http://creativecommons.org/licenses/by/3.0/ diff -Nru python-pbr-0.5.23/pbr/__init__.py python-pbr-0.7.0/pbr/__init__.py --- python-pbr-0.5.23/pbr/__init__.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/__init__.py 2014-03-18 14:08:07.000000000 +0000 @@ -1,14 +0,0 @@ -# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -# implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff -Nru python-pbr-0.5.23/pbr/packaging.py python-pbr-0.7.0/pbr/packaging.py --- python-pbr-0.5.23/pbr/packaging.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/packaging.py 2014-03-18 14:08:07.000000000 +0000 @@ -20,7 +20,10 @@ Utilities with minimum-depends for use in setup.py """ +from __future__ import unicode_literals + import email +import io import os import re import subprocess @@ -37,13 +40,12 @@ from setuptools.command import sdist try: - import cStringIO as io + import cStringIO except ImportError: - import io + import io as cStringIO from pbr import extra_files -log.set_verbosity(log.INFO) TRUE_VALUES = ('true', '1', 'yes') REQUIREMENTS_FILES = ('requirements.txt', 'tools/pip-requires') TEST_REQUIREMENTS_FILES = ('test-requirements.txt', 'tools/test-requires') @@ -56,7 +58,13 @@ files = os.environ.get("PBR_REQUIREMENTS_FILES") if files: return tuple(f.strip() for f in files.split(',')) - return REQUIREMENTS_FILES + # Returns a list composed of: + # - REQUIREMENTS_FILES with -py2 or -py3 in the name + # (e.g. requirements-py3.txt) + # - REQUIREMENTS_FILES + return (list(map(('-py' + str(sys.version_info[0])).join, + map(os.path.splitext, REQUIREMENTS_FILES))) + + list(REQUIREMENTS_FILES)) def append_text_list(config, key, text_list): @@ -69,18 +77,6 @@ config[key] = '\n'.join(new_value) -def _parse_mailmap(mailmap_info): - mapping = dict() - for l in mailmap_info: - try: - canonical_email, alias = re.match( - r'[^#]*?(<.+>).*(<.+>).*', l).groups() - except AttributeError: - continue - mapping[alias] = canonical_email - return mapping - - def _pip_install(links, requires, root=None, option_dict=dict()): if get_boolean_option( option_dict, 'skip_pip_install', 'SKIP_PIP_INSTALL'): @@ -93,28 +89,7 @@ cmd.append(link) _run_shell_command( cmd + requires, - throw_on_error=True, buffer=False) - - -def read_git_mailmap(root_dir=None, mailmap='.mailmap'): - if not root_dir: - root_dir = _run_shell_command( - ['git', 'rev-parse', '--show-toplevel']) - - mailmap = os.path.join(root_dir, mailmap) - if os.path.exists(mailmap): - return _parse_mailmap(open(mailmap, 'r').readlines()) - - return dict() - - -def canonicalize_emails(changelog, mapping): - """Takes in a string and an email alias mapping and replaces all - instances of the aliases in the string with their real email. - """ - for alias, email_address in mapping.items(): - changelog = changelog.replace(alias, email_address) - return changelog + throw_on_error=True, buffer=False, env=dict(PIP_USE_WHEEL="true")) def _any_existing(file_list): @@ -148,29 +123,37 @@ if (not line.strip()) or line.startswith('#'): continue + try: + project_name = pkg_resources.Requirement.parse(line).project_name + except ValueError: + project_name = None + # For the requirements list, we need to inject only the portion # after egg= so that distutils knows the package it's looking for # such as: # -e git://github.com/openstack/nova/master#egg=nova # -e git://github.com/openstack/nova/master#egg=nova-1.2.3 if re.match(r'\s*-e\s+', line): - requirements.append(re.sub(r'\s*-e\s+.*#egg=(.*)$', - egg_fragment, - line)) + line = re.sub(r'\s*-e\s+.*#egg=(.*)$', egg_fragment, line) # such as: # http://github.com/openstack/nova/zipball/master#egg=nova # http://github.com/openstack/nova/zipball/master#egg=nova-1.2.3 elif re.match(r'\s*https?:', line): - requirements.append(re.sub(r'\s*https?:.*#egg=(.*)$', - egg_fragment, - line)) + line = re.sub(r'\s*https?:.*#egg=(.*)$', egg_fragment, line) # -f lines are for index locations, and don't get used here elif re.match(r'\s*-f\s+', line): - pass - elif line in BROKEN_ON_27 and sys.version_info >= (2, 7): - pass - else: + line = None + reason = 'Index Location' + elif (project_name and + project_name in BROKEN_ON_27 and sys.version_info >= (2, 7)): + line = None + reason = 'Python 2.6 only dependency' + + if line is not None: requirements.append(line) + else: + log.info( + '[pbr] Excluding %s: %s' % (project_name, reason)) return requirements @@ -201,7 +184,7 @@ ['git', '--git-dir=%s' % git_dir] + cmd, **kwargs) -def _run_shell_command(cmd, throw_on_error=False, buffer=True): +def _run_shell_command(cmd, throw_on_error=False, buffer=True, env=None): if buffer: out_location = subprocess.PIPE err_location = subprocess.PIPE @@ -209,9 +192,14 @@ out_location = None err_location = None + newenv = os.environ.copy() + if env: + newenv.update(env) + output = subprocess.Popen(cmd, stdout=out_location, - stderr=err_location) + stderr=err_location, + env=newenv) out = output.communicate() if output.returncode and throw_on_error: raise distutils.errors.DistutilsError( @@ -226,7 +214,23 @@ def _git_is_installed(): - return _run_shell_command(['which', 'git']) + try: + # We cannot use 'which git' as it may not be available + # in some distributions, So just try 'git --version' + # to see if we run into trouble + _run_shell_command(['git', '--version']) + except OSError: + return False + return True + + +def _get_highest_tag(tags): + """Find the highest tag from a list. + + Pass in a list of tag strings and this will return the highest + (latest) as sorted by the pkg_resources version parser. + """ + return max(tags, key=pkg_resources.parse_version) def get_boolean_option(option_dict, option_name, env_name): @@ -250,11 +254,44 @@ if git_dir is None: git_dir = _get_git_directory() if git_dir: - changelog = _run_git_command('log', git_dir) - mailmap = read_git_mailmap() - with open(new_changelog, "wb") as changelog_file: - changelog_file.write(canonicalize_emails( - changelog, mailmap).encode('utf-8')) + log_cmd = ['log', '--oneline', '--decorate'] + changelog = _run_git_command(log_cmd, git_dir) + first_line = True + with io.open(new_changelog, "w", + encoding="utf-8") as changelog_file: + changelog_file.write("CHANGES\n=======\n\n") + for line in changelog.split('\n'): + line_parts = line.split() + if len(line_parts) < 2: + continue + # Tags are in a list contained in ()'s. If a commit + # subject that is tagged happens to have ()'s in it + # this will fail + if line_parts[1].startswith('(') and ')' in line: + msg = line.split(')')[1].strip() + else: + msg = " ".join(line_parts[1:]) + + if "tag:" in line: + tags = [ + tag.split(",")[0] + for tag in line.split(")")[0].split("tag: ")[1:]] + tag = _get_highest_tag(tags) + + underline = len(tag) * '-' + if not first_line: + changelog_file.write(u'\n') + changelog_file.write( + ("%(tag)s\n%(underline)s\n\n" % + dict(tag=tag, + underline=underline))) + + if not msg.startswith("Merge "): + if msg.endswith("."): + msg = msg[:-1] + changelog_file.write( + ("* %(msg)s\n" % dict(msg=msg))) + first_line = False def generate_authors(git_dir=None, dest_dir='.', option_dict=dict()): @@ -269,14 +306,14 @@ and not os.access(new_authors, os.W_OK)): return log.info('[pbr] Generating AUTHORS') - ignore_emails = '(jenkins@review|infra@lists)' + ignore_emails = '(jenkins@review|infra@lists|jenkins@openstack)' if git_dir is None: git_dir = _get_git_directory() if git_dir: authors = [] # don't include jenkins email address in AUTHORS file - git_log_cmd = ['log', '--format=%aN <%aE>'] + git_log_cmd = ['log', '--use-mailmap', '--format=%aN <%aE>'] authors += _run_git_command(git_log_cmd, git_dir).split('\n') authors = [a for a in authors if not re.search(ignore_emails, a)] @@ -288,11 +325,6 @@ for signed in co_authors if signed] authors += co_authors - - # canonicalize emails, remove duplicates and sort - mailmap = read_git_mailmap(git_dir) - authors = canonicalize_emails('\n'.join(authors), mailmap) - authors = authors.split('\n') authors = sorted(set(authors)) with open(new_authors, 'wb') as new_authors_fh: @@ -651,7 +683,7 @@ def _sphinx_run(self): if not self.verbose: - status_stream = io.StringIO() + status_stream = cStringIO.StringIO() else: status_stream = sys.stdout confoverrides = {} @@ -662,6 +694,7 @@ if self.today: confoverrides['today'] = self.today sphinx_config = config.Config(self.config_dir, 'conf.py', {}, []) + sphinx_config.init_values() if self.builder == 'man' and len(sphinx_config.man_pages) == 0: return app = application.Sphinx( @@ -714,6 +747,13 @@ else: setup_command.BuildDoc.run(self) + def finalize_options(self): + # Not a new style class, super keyword does not work. + setup_command.BuildDoc.finalize_options(self) + # Allow builders to be configurable - as a comma separated list. + if not isinstance(self.builders, list) and self.builders: + self.builders = self.builders.split(',') + class LocalBuildLatex(LocalBuildDoc): builders = ['latex'] command_name = 'build_sphinx_latex' diff -Nru python-pbr-0.5.23/pbr/tests/base.py python-pbr-0.7.0/pbr/tests/base.py --- python-pbr-0.5.23/pbr/tests/base.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/tests/base.py 2014-03-18 14:08:07.000000000 +0000 @@ -122,12 +122,19 @@ working copy--returns the stdout and stderr streams and the exit code from the subprocess. """ + return _run_cmd([cmd] + list(args), cwd=self.package_dir) - os.chdir(self.package_dir) - p = subprocess.Popen([cmd] + list(args), stdout=subprocess.PIPE, - stderr=subprocess.PIPE) - streams = tuple(s.decode('latin1').strip() for s in p.communicate()) - for line in streams: - print(line) - return (streams) + (p.returncode,) +def _run_cmd(args, cwd): + """Run the command args in cwd. + + :param args: The command to run e.g. ['git', 'status'] + :param cwd: The directory to run the comamnd in. + :return: ((stdout, stderr), returncode) + """ + p = subprocess.Popen( + args, stdout=subprocess.PIPE, stderr=subprocess.PIPE, cwd=cwd) + streams = tuple(s.decode('latin1').strip() for s in p.communicate()) + for content in streams: + print(content) + return (streams) + (p.returncode,) diff -Nru python-pbr-0.5.23/pbr/tests/test_packaging.py python-pbr-0.7.0/pbr/tests/test_packaging.py --- python-pbr-0.5.23/pbr/tests/test_packaging.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/tests/test_packaging.py 2014-03-18 14:08:07.000000000 +0000 @@ -41,7 +41,9 @@ import os import fixtures +import mock +from pbr import packaging from pbr.tests import base @@ -90,7 +92,7 @@ # No commits, nothing should be in the ChangeLog list with open(os.path.join(self.package_dir, 'ChangeLog'), 'r') as f: body = f.read() - self.assertEqual(body, '') + self.assertEqual(body, 'CHANGES\n=======\n\n') class TestPackagingInPlainDirectory(base.BaseTestCase): @@ -109,3 +111,18 @@ # Not a git repo, no ChangeLog created filename = os.path.join(self.package_dir, 'ChangeLog') self.assertFalse(os.path.exists(filename)) + + +class TestPresenceOfGit(base.BaseTestCase): + + def testGitIsInstalled(self): + with mock.patch.object(packaging, + '_run_shell_command') as _command: + _command.return_value = 'git version 1.8.4.1' + self.assertEqual(True, packaging._git_is_installed()) + + def testGitIsNotInstalled(self): + with mock.patch.object(packaging, + '_run_shell_command') as _command: + _command.side_effect = OSError + self.assertEqual(False, packaging._git_is_installed()) diff -Nru python-pbr-0.5.23/pbr/tests/test_setup.py python-pbr-0.7.0/pbr/tests/test_setup.py --- python-pbr-0.5.23/pbr/tests/test_setup.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/tests/test_setup.py 2014-03-18 14:08:07.000000000 +0000 @@ -36,41 +36,6 @@ from pbr.tests import base -class EmailTestCase(base.BaseTestCase): - - def test_str_dict_replace(self): - string = 'Johnnie T. Hozer' - mapping = {'T.': 'The'} - self.assertEqual('Johnnie The Hozer', - packaging.canonicalize_emails(string, mapping)) - - -class MailmapTestCase(base.BaseTestCase): - - def setUp(self): - super(MailmapTestCase, self).setUp() - self.root_dir = self.useFixture(fixtures.TempDir()).path - self.mailmap = os.path.join(self.root_dir, '.mailmap') - - def test_mailmap_with_fullname(self): - with open(self.mailmap, 'w') as mm_fh: - mm_fh.write("Foo Bar Foo Bar \n") - self.assertEqual({'': ''}, - packaging.read_git_mailmap(self.root_dir)) - - def test_mailmap_with_firstname(self): - with open(self.mailmap, 'w') as mm_fh: - mm_fh.write("Foo Foo \n") - self.assertEqual({'': ''}, - packaging.read_git_mailmap(self.root_dir)) - - def test_mailmap_with_noname(self): - with open(self.mailmap, 'w') as mm_fh: - mm_fh.write(" \n") - self.assertEqual({'': ''}, - packaging.read_git_mailmap(self.root_dir)) - - class SkipFileWrites(base.BaseTestCase): scenarios = [ @@ -134,6 +99,18 @@ (self.option_value.lower() in packaging.TRUE_VALUES or self.env_value is not None)) +_changelog_content = """04316fe (review/monty_taylor/27519) Make python +378261a Add an integration test script. +3c373ac (HEAD, tag: 2013.2.rc2, tag: 2013.2, milestone-proposed) Merge "Lib +182feb3 (tag: 0.5.17) Fix pip invocation for old versions of pip. +fa4f46e (tag: 0.5.16) Remove explicit depend on distribute. +d1c53dd Use pip instead of easy_install for installation. +a793ea1 Merge "Skip git-checkout related tests when .git is missing" +6c27ce7 Skip git-checkout related tests when .git is missing +04984a5 Refactor hooks file. +a65e8ee (tag: 0.5.14, tag: 0.5.13) Remove jinja pin. +""" + class GitLogsTest(base.BaseTestCase): @@ -148,27 +125,24 @@ fixtures.EnvironmentVariable('SKIP_WRITE_GIT_CHANGELOG')) def test_write_git_changelog(self): - exist_files = [os.path.join(self.root_dir, f) - for f in (".git", ".mailmap")] - self.useFixture(fixtures.MonkeyPatch( - "os.path.exists", - lambda path: os.path.abspath(path) in exist_files)) self.useFixture(fixtures.FakePopen(lambda _: { - "stdout": BytesIO("Author: Foo Bar " - "\n".encode('utf-8')) + "stdout": BytesIO(_changelog_content.encode('utf-8')) })) - def _fake_read_git_mailmap(*args): - return {"email@bar.com": "email@foo.com"} - - self.useFixture(fixtures.MonkeyPatch("pbr.packaging.read_git_mailmap", - _fake_read_git_mailmap)) - packaging.write_git_changelog(git_dir=self.git_dir, dest_dir=self.temp_path) with open(os.path.join(self.temp_path, "ChangeLog"), "r") as ch_fh: - self.assertTrue("email@foo.com" in ch_fh.read()) + changelog_contents = ch_fh.read() + self.assertIn("2013.2", changelog_contents) + self.assertIn("0.5.17", changelog_contents) + self.assertIn("------", changelog_contents) + self.assertIn("Refactor hooks file", changelog_contents) + self.assertNotIn("Refactor hooks file.", changelog_contents) + self.assertNotIn("182feb3", changelog_contents) + self.assertNotIn("review/monty_taylor/27519", changelog_contents) + self.assertNotIn("0.5.13", changelog_contents) + self.assertNotIn('Merge "', changelog_contents) def test_generate_authors(self): author_old = u"Foo Foo " @@ -177,7 +151,8 @@ co_author_by = u"Co-authored-by: " + co_author git_log_cmd = ( - "git --git-dir=%s log --format=%%aN <%%aE>" % self.git_dir) + "git --git-dir=%s log --use-mailmap --format=%%aN <%%aE>" + % self.git_dir) git_co_log_cmd = ("git --git-dir=%s log" % self.git_dir) git_top_level = "git rev-parse --show-toplevel" cmd_map = { @@ -253,6 +228,39 @@ os.path.exists( "api/fake_package.fake_module.rst") == self.has_autodoc) + def test_builders_config(self): + if self.has_opt: + self.distr.command_options["pbr"] = { + "autodoc_index_modules": ('setup.cfg', self.autodoc)} + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.finalize_options() + + self.assertEqual(2, len(build_doc.builders)) + self.assertIn('html', build_doc.builders) + self.assertIn('man', build_doc.builders) + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.builders = '' + build_doc.finalize_options() + + self.assertEqual('', build_doc.builders) + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.builders = 'man' + build_doc.finalize_options() + + self.assertEqual(1, len(build_doc.builders)) + self.assertIn('man', build_doc.builders) + + build_doc = packaging.LocalBuildDoc(self.distr) + build_doc.builders = 'html,man,doctest' + build_doc.finalize_options() + + self.assertIn('html', build_doc.builders) + self.assertIn('man', build_doc.builders) + self.assertIn('doctest', build_doc.builders) + class ParseRequirementsTest(base.BaseTestCase): @@ -302,6 +310,20 @@ if sys.version_info >= (2, 7): self.assertEqual([], packaging.parse_requirements([self.tmp_file])) + def test_parse_requirements_removes_versioned_ordereddict(self): + self.useFixture(fixtures.MonkeyPatch('sys.version_info', (2, 7))) + with open(self.tmp_file, 'w') as fh: + fh.write("ordereddict==1.0.1") + self.assertEqual([], packaging.parse_requirements([self.tmp_file])) + + def test_parse_requirements_keeps_versioned_ordereddict(self): + self.useFixture(fixtures.MonkeyPatch('sys.version_info', (2, 6))) + with open(self.tmp_file, 'w') as fh: + fh.write("ordereddict==1.0.1") + self.assertEqual([ + "ordereddict==1.0.1"], + packaging.parse_requirements([self.tmp_file])) + def test_parse_requirements_override_with_env(self): with open(self.tmp_file, 'w') as fh: fh.write("foo\nbar") @@ -330,6 +352,22 @@ self.assertEqual(['foobar', 'foobaz'], packaging.parse_requirements([self.tmp_file])) + def test_parse_requirements_python_version(self): + with open("requirements-py%d.txt" % sys.version_info[0], + "w") as fh: + fh.write("# this is a comment\nfoobar\n# and another one\nfoobaz") + self.assertEqual(['foobar', 'foobaz'], + packaging.parse_requirements()) + + def test_parse_requirements_right_python_version(self): + with open("requirements-py1.txt", "w") as fh: + fh.write("thisisatrap") + with open("requirements-py%d.txt" % sys.version_info[0], + "w") as fh: + fh.write("# this is a comment\nfoobar\n# and another one\nfoobaz") + self.assertEqual(['foobar', 'foobaz'], + packaging.parse_requirements()) + class ParseDependencyLinksTest(base.BaseTestCase): diff -Nru python-pbr-0.5.23/pbr/util.py python-pbr-0.7.0/pbr/util.py --- python-pbr-0.5.23/pbr/util.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/util.py 2014-03-18 14:08:07.000000000 +0000 @@ -150,9 +150,6 @@ CSV_FIELDS = ("keywords",) -log.set_verbosity(log.INFO) - - def resolve_name(name): """Resolve a name like ``module.object`` to an object and return it. diff -Nru python-pbr-0.5.23/pbr/version.py python-pbr-0.7.0/pbr/version.py --- python-pbr-0.5.23/pbr/version.py 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/pbr/version.py 2014-03-18 14:08:07.000000000 +0000 @@ -25,6 +25,7 @@ def __init__(self, package): """Object that understands versioning for a package + :param package: name of the python package, such as glance, or python-glanceclient """ @@ -39,11 +40,15 @@ def __repr__(self): """Include the name.""" - return "VersionInfo(%s:%s)" % (self.package, self.version_string()) + return "pbr.version.VersionInfo(%s:%s)" % ( + self.package, self.version_string()) def _get_version_from_pkg_resources(self): - """Get the version of the package from the pkg_resources record - associated with the package. + """Obtain a version from pkg_resources or setup-time logic if missing. + + This will try to get the version of the package from the pkg_resources + record associated with the package, and if there is no such record + falls back to the logic sdist would use. """ try: requirement = pkg_resources.Requirement.parse(self.package) @@ -57,8 +62,9 @@ return packaging.get_version(self.package) def release_string(self): - """Return the full version of the package including suffixes indicating - VCS status. + """Return the full version of the package. + + This including suffixes indicating VCS status. """ if self.release is None: self.release = self._get_version_from_pkg_resources() @@ -83,11 +89,11 @@ version_string_with_vcs = release_string def cached_version_string(self, prefix=""): - """Generate an object which will expand in a string context to - the results of version_string(). We do this so that don't - call into pkg_resources every time we start up a program when - passing version information into the CONF constructor, but - rather only do the calculation when and if a version is requested + """Return a cached version string. + + This will return a cached version string if one is already cached, + irrespective of prefix. If none is cached, one will be created with + prefix and then cached and returned. """ if not self._cached_version: self._cached_version = "%s%s" % (prefix, diff -Nru python-pbr-0.5.23/pbr.egg-info/PKG-INFO python-pbr-0.7.0/pbr.egg-info/PKG-INFO --- python-pbr-0.5.23/pbr.egg-info/PKG-INFO 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/pbr.egg-info/PKG-INFO 2014-03-18 14:08:30.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pbr -Version: 0.5.23 +Version: 0.7.0 Summary: Python Build Reasonableness Home-page: http://pypi.python.org/pypi/pbr Author: OpenStack @@ -30,6 +30,8 @@ 2.0 and other modern Python packaging PEPs come out, `pbr` aims to support them as quickly as possible. + You can read more in `the documentation`_. + Running Tests ============= The testing system is based on a combination of tox and testr. The canonical @@ -54,9 +56,11 @@ will run it in parallel (this is the default incantation tox uses.) More information about testr can be found at: http://wiki.openstack.org/testr + .. _`the documentation`: http://docs.openstack.org/developer/pbr/ + Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta +Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Environment :: OpenStack Classifier: Intended Audience :: Developers @@ -64,3 +68,8 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 diff -Nru python-pbr-0.5.23/pbr.egg-info/requires.txt python-pbr-0.7.0/pbr.egg-info/requires.txt --- python-pbr-0.5.23/pbr.egg-info/requires.txt 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/pbr.egg-info/requires.txt 2014-03-18 14:08:30.000000000 +0000 @@ -1 +1 @@ -pip>=1.0 \ No newline at end of file +pip>=1.4 \ No newline at end of file diff -Nru python-pbr-0.5.23/pbr.egg-info/SOURCES.txt python-pbr-0.7.0/pbr.egg-info/SOURCES.txt --- python-pbr-0.5.23/pbr.egg-info/SOURCES.txt 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/pbr.egg-info/SOURCES.txt 2014-03-18 14:08:30.000000000 +0000 @@ -14,6 +14,7 @@ doc/source/conf.py doc/source/index.rst doc/source/packagers.rst +doc/source/semver.rst doc/source/_templates/.placeholder doc/source/_theme/layout.html doc/source/_theme/theme.conf diff -Nru python-pbr-0.5.23/PKG-INFO python-pbr-0.7.0/PKG-INFO --- python-pbr-0.5.23/PKG-INFO 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/PKG-INFO 2014-03-18 14:08:30.000000000 +0000 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: pbr -Version: 0.5.23 +Version: 0.7.0 Summary: Python Build Reasonableness Home-page: http://pypi.python.org/pypi/pbr Author: OpenStack @@ -30,6 +30,8 @@ 2.0 and other modern Python packaging PEPs come out, `pbr` aims to support them as quickly as possible. + You can read more in `the documentation`_. + Running Tests ============= The testing system is based on a combination of tox and testr. The canonical @@ -54,9 +56,11 @@ will run it in parallel (this is the default incantation tox uses.) More information about testr can be found at: http://wiki.openstack.org/testr + .. _`the documentation`: http://docs.openstack.org/developer/pbr/ + Platform: UNKNOWN -Classifier: Development Status :: 4 - Beta +Classifier: Development Status :: 5 - Production/Stable Classifier: Environment :: Console Classifier: Environment :: OpenStack Classifier: Intended Audience :: Developers @@ -64,3 +68,8 @@ Classifier: License :: OSI Approved :: Apache Software License Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.6 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 diff -Nru python-pbr-0.5.23/README.rst python-pbr-0.7.0/README.rst --- python-pbr-0.5.23/README.rst 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/README.rst 2014-03-18 14:08:07.000000000 +0000 @@ -22,6 +22,8 @@ 2.0 and other modern Python packaging PEPs come out, `pbr` aims to support them as quickly as possible. +You can read more in `the documentation`_. + Running Tests ============= The testing system is based on a combination of tox and testr. The canonical @@ -45,3 +47,5 @@ Running `testr run` will run the entire test suite. `testr run --parallel` will run it in parallel (this is the default incantation tox uses.) More information about testr can be found at: http://wiki.openstack.org/testr + +.. _`the documentation`: http://docs.openstack.org/developer/pbr/ diff -Nru python-pbr-0.5.23/requirements.txt python-pbr-0.7.0/requirements.txt --- python-pbr-0.5.23/requirements.txt 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/requirements.txt 2014-03-18 14:08:07.000000000 +0000 @@ -1 +1 @@ -pip>=1.0 +pip>=1.4 diff -Nru python-pbr-0.5.23/setup.cfg python-pbr-0.7.0/setup.cfg --- python-pbr-0.5.23/setup.cfg 2013-10-30 21:02:56.000000000 +0000 +++ python-pbr-0.7.0/setup.cfg 2014-03-18 14:08:30.000000000 +0000 @@ -8,7 +8,7 @@ home-page = http://pypi.python.org/pypi/pbr requires-python = >=2.6 classifier = - Development Status :: 4 - Beta + Development Status :: 5 - Production/Stable Environment :: Console Environment :: OpenStack Intended Audience :: Developers @@ -16,6 +16,11 @@ License :: OSI Approved :: Apache Software License Operating System :: OS Independent Programming Language :: Python + Programming Language :: Python :: 2 + Programming Language :: Python :: 2.6 + Programming Language :: Python :: 2.7 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.3 [files] packages = @@ -37,6 +42,9 @@ build-dir = doc/build source-dir = doc/source +[wheel] +universal = 1 + [egg_info] tag_build = tag_date = 0 diff -Nru python-pbr-0.5.23/test-requirements.txt python-pbr-0.7.0/test-requirements.txt --- python-pbr-0.5.23/test-requirements.txt 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/test-requirements.txt 2014-03-18 14:08:07.000000000 +0000 @@ -1,10 +1,11 @@ coverage>=3.6 discover -fixtures>=0.3.12 +fixtures>=0.3.14 flake8==2.0 -python-subunit -sphinx>=1.1.2 -testrepository>=0.0.17 -testresources<0.3 -testscenarios>=0.4,<0.5 -testtools>=0.9.32 +mock>=1.0 +python-subunit>=0.0.18 +sphinx>=1.1.2,<1.2 +testrepository>=0.0.18 +testresources>=0.2.4 +testscenarios>=0.4 +testtools>=0.9.34 diff -Nru python-pbr-0.5.23/tools/integration.sh python-pbr-0.7.0/tools/integration.sh --- python-pbr-0.5.23/tools/integration.sh 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/tools/integration.sh 2014-03-18 14:08:07.000000000 +0000 @@ -2,19 +2,38 @@ function mkvenv { venv=$1 - setuptools=$2 - pip=$3 rm -rf $venv - if [ "$setuptools" == 'distribute' ] ; then - virtualenv --distribute $venv - elif [ "$setuptools" == 'setuptools' ] ; then - virtualenv $venv - else - virtualenv $venv - $venv/bin/pip install -v -U $setuptools - fi - $venv/bin/pip install $pip + virtualenv $venv + $venv/bin/pip install -U pip wheel +} + +# This function takes a list of files that contains +# a list of python packages (in pip freeze format) and +# strips the version info from each entry. +# $1 - The files containing python packages (with version). +function gen_bare_package_list () { + set +x + IN_FILES=$1 + for FILE in $IN_FILES + do + while read line; do + if [[ "$line" == "" ]] || [[ "$line" == \#* ]] || [[ "$line" == \-f* ]]; then + continue + elif [[ "$line" == \-e* ]]; then + echo "${line#*=}" + elif [[ "$line" == *\>* ]]; then + echo "${line%%>*}" + elif [[ "$line" == *\=* ]]; then + echo "${line%%=*}" + elif [[ "$line" == *\<* ]]; then + echo "${line%%<*}" + else + echo "${line%%#*}" + fi + done < $FILE + done + set -x } # BASE should be a directory with a subdir called "new" and in that @@ -32,10 +51,11 @@ tmpdownload=$tmpdir/download mkdir -p $tmpdownload -pypidir=$tmpdir/pypi -mkdir -p $pypidir +pypidir=/var/www/pypi +sudo mkdir -p $pypidir +sudo chown $USER $pypidir -jeepybvenv=$tmpdir/jeepyb +pypimirrorvenv=$tmpdir/pypi-mirror sudo touch $HOME/pip.log sudo chown $USER $HOME/pip.log @@ -47,11 +67,11 @@ log = $HOME/pip.log EOF -jeepybsourcedir=$tmpdir/jeepybsourcedir -git clone $REPODIR/jeepyb $jeepybsourcedir +pypimirrorsourcedir=$tmpdir/pypimirrorsourcedir +git clone $REPODIR/pypi-mirror $pypimirrorsourcedir -mkvenv $jeepybvenv setuptools pip -$jeepybvenv/bin/pip install -e $jeepybsourcedir +mkvenv $pypimirrorvenv +$pypimirrorvenv/bin/pip install -e $pypimirrorsourcedir cat < $tmpdir/mirror.yaml cache-root: $tmpdownload @@ -63,6 +83,29 @@ output: $pypidir EOF +# wheel mirrors are below a dir level containing distro and release +# because the wheel format itself does not distinguish +distro=`lsb_release -i -r -s | xargs | tr ' ' '-'` + +# set up local apache to serve the mirror we're about to create +if [ ! -d /etc/apache2/sites-enabled/ ] ; then + echo "Apache does not seem to be installed!!!" + exit 1 +fi + +sudo rm /etc/apache2/sites-enabled/* +cat < $tmpdir/pypi.conf + + ServerAdmin webmaster@localhost + DocumentRoot /var/www + Options Indexes FollowSymLinks + +EOF +sudo mv $tmpdir/pypi.conf /etc/apache2/sites-available/pypi +sudo chown root:root /etc/apache2/sites-available/pypi +sudo a2ensite pypi +sudo service apache2 reload + # PROJECTS is a list of projects that we're testing PROJECTS=$* @@ -70,19 +113,32 @@ git clone $REPODIR/pbr $pbrsdistdir cd $pbrsdistdir -$jeepybvenv/bin/run-mirror -b remotes/origin/master --verbose -c $tmpdir/mirror.yaml --no-process +# Note the -b argument here is essentially a noop as +# --no-update is passed as well. The one thing the -b +# does give us is it makes run-mirror install dependencies +# once instead of over and over for all branches it can find. +$pypimirrorvenv/bin/run-mirror -b remotes/origin/master --no-update --verbose -c $tmpdir/mirror.yaml --no-process --export=$HOME/mirror_package_list.txt +# Compare packages in the mirror with the list of requirements +gen_bare_package_list "$REPODIR/requirements/global-requirements.txt $REPODIR/requirements/dev-requirements.txt" > bare_all_requirements.txt +gen_bare_package_list $HOME/mirror_package_list.txt > bare_mirror_package_list.txt +echo "Diff between python mirror packages and requirements packages:" +grep -v -f bare_all_requirements.txt bare_mirror_package_list.txt > diff_requirements_mirror.txt +cat diff_requirements_mirror.txt -$jeepybvenv/bin/pip install -i http://pypi.python.org/simple -d $tmpdownload/pip/openstack 'pip==1.0' 'setuptools>=0.7' +$pypimirrorvenv/bin/pip install -i http://pypi.python.org/simple -d $tmpdownload/pip/openstack 'pip==1.0' 'setuptools>=0.7' 'd2to1' -$jeepybvenv/bin/pip install -i http://pypi.python.org/simple -d $tmpdownload/pip/openstack -r requirements.txt -$jeepybvenv/bin/python setup.py sdist -d $tmpdownload/pip/openstack +$pypimirrorvenv/bin/pip install -i http://pypi.python.org/simple -d $tmpdownload/pip/openstack -r requirements.txt +$pypimirrorvenv/bin/python setup.py sdist -d $tmpdownload/pip/openstack -$jeepybvenv/bin/run-mirror -b remotes/origin/master --verbose -c $tmpdir/mirror.yaml --no-download +$pypimirrorvenv/bin/run-mirror -b remotes/origin/master --no-update --verbose -c $tmpdir/mirror.yaml --no-download +find $pypidir -type f -name '*.html' -delete find $pypidir + # Make pypi thing -pypiurl=file://$pypidir +pypiurl=http://localhost/pypi +export no_proxy=$no_proxy${no_proxy:+,}localhost cat < ~/.pydistutils.cfg [easy_install] @@ -92,6 +148,7 @@ cat < ~/.pip/pip.conf [global] index-url = $pypiurl +extra-index-url = $pypiurl/$distro extra-index-url = http://pypi.openstack.org/openstack log = $HOME/pip.log EOF @@ -128,7 +185,7 @@ EOF epvenv=$eptest/venv -mkvenv $epvenv setuptools pip +mkvenv $epvenv eppbrdir=$tmpdir/eppbrdir git clone $REPODIR/pbr $eppbrdir @@ -144,11 +201,19 @@ for PROJECT in $PROJECTS ; do SHORT_PROJECT=$(basename $PROJECT) - if ! grep 'pbr' $REPODIR/$SHORT_PROJECT/requirements.txt >/dev/null 2>&1 + if ! grep 'pbr' $REPODIR/$SHORT_PROJECT/setup.py >/dev/null 2>&1 then # project doesn't use pbr continue fi + if [ $SHORT_PROJECT = 'pypi-mirror' ]; then + # pypi-mirror doesn't consume the mirror + continue + fi + if [ $SHORT_PROJECT = 'jeepyb' ]; then + # pypi-mirror doesn't consume the mirror + continue + fi if [ $SHORT_PROJECT = 'tempest' ]; then # Tempest doesn't really install continue @@ -157,7 +222,8 @@ # requirements doesn't really install continue fi - shortprojectdir=$projectdir/$SHORT_PROJECT + + # set up the project synced with the global requirements sudo chown -R $USER $REPODIR/$SHORT_PROJECT (cd $REPODIR/requirements && python update.py $REPODIR/$SHORT_PROJECT) pushd $REPODIR/$SHORT_PROJECT @@ -165,33 +231,35 @@ git commit -a -m'Update requirements' fi popd - git clone $REPODIR/$SHORT_PROJECT $shortprojectdir - sdistvenv=$tmpdir/sdist + # Clone from synced repo + shortprojectdir=$projectdir/$SHORT_PROJECT + git clone $REPODIR/$SHORT_PROJECT $shortprojectdir # Test that we can make a tarball from scratch - mkvenv $sdistvenv distribute pip + sdistvenv=$tmpdir/sdist + mkvenv $sdistvenv cd $shortprojectdir $sdistvenv/bin/python setup.py sdist - # Test that the tarball installs cd $tmpdir + + # Test that the tarball installs tarballvenv=$tmpdir/tarball - mkvenv $tarballvenv setuptools pip + mkvenv $tarballvenv $tarballvenv/bin/pip install $shortprojectdir/dist/*tar.gz # Test pip installing pipvenv=$tmpdir/pip - mkvenv $pipvenv setuptools 'pip==1.0' - cd $tmpdir - echo $pipvenv/bin/pip install git+file://$REPODIR/$SHORT_PROJECT - $pipvenv/bin/pip install git+file://$REPODIR/$SHORT_PROJECT + mkvenv $pipvenv + $pipvenv/bin/pip install git+file://$shortprojectdir # Test python setup.py install installvenv=$tmpdir/install - mkvenv $installvenv setuptools pip + mkvenv $installvenv + installprojectdir=$projectdir/install$SHORT_PROJECT - git clone $REPODIR/$SHORT_PROJECT $installprojectdir + git clone $shortprojectdir $installprojectdir cd $installprojectdir $installvenv/bin/python setup.py install @@ -199,20 +267,4 @@ if [ $SHORT_PROJECT = 'nova' ]; then find $installvenv | grep migrate.cfg fi - - # TODO(mordred): extend script to do a better job with the mirrir - # easy_install to a file:/// can't handle name case insensitivity - # Test python setup.py develop - # developvenv=$tmpdir/develop - # mkvenv $developvenv setuptools pip - # developprojectdir=$projectdir/develop$SHORT_PROJECT - # git clone $REPODIR/$SHORT_PROJECT $developprojectdir - # cd $developprojectdir - # $developvenv/bin/python setup.py develop - - # TODO(mordred): need to implement egg filtering - # Because install will have caused eggs to be locally downloaded - # pbr can get excluded from being in the actual venv - # test that this did not happen - # $tempvenv/bin/python -c 'import pkg_resources as p; import sys; pbr=p.working_set.find(p.Requirement.parse("pbr")) is None; sys.exit(pbr or 0)' done diff -Nru python-pbr-0.5.23/tox.ini python-pbr-0.7.0/tox.ini --- python-pbr-0.5.23/tox.ini 2013-10-30 21:02:32.000000000 +0000 +++ python-pbr-0.7.0/tox.ini 2014-03-18 14:08:07.000000000 +0000 @@ -7,9 +7,6 @@ usedevelop = True install_command = pip install {opts} {packages} setenv = VIRTUAL_ENV={envdir} - LANG=en_US.UTF-8 - LANGUAGE=en_US:en - LC_ALL=C deps = -r{toxinidir}/requirements.txt -r{toxinidir}/test-requirements.txt commands =