CHANGES
=======

* Updated from global requirements
* Updated from global requirements
* Add a new core recruit tool/template/script
* Updated from global requirements
* tests: remove unused testmods
* Remove deprecated `apiclient'
* Correct a typo
* Add a tool that can extract author information for oslo projects
* Updated from global requirements
* Adjust script to skip tests if directory not present
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Sort keys in table output in print_dict
* Allow specifying a table header for the value column in print_dict
* Improve error messaging for accessing review.o.o
* Add dashboard for the documentation sprint
* Remove quotes from subshell call in bash script
* Change ignore-errors to ignore_errors
* Updated from global requirements
* Updated from global requirements
* Formally deprecate the memorycache module
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Remove openstack/common/report as oslo.reports is graduating
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Remove fileutils
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Remove quota module
* Updated from global requirements
* Fix mock of open() for mock 1.1.0
* Fix couple of env variable usage issues in venv scripts
* prints --insecure if verify=False and debug=True
* Get the team and adding who launchpad links working
* Add tools to clean up namespace package use
* Updated from global requirements
* Cleanup MAINTAINERS
* Remove graduated oslo.service code
* Add oslo service/cache/reports to update.py
* Updated from global requirements
* Get rid of oslo-incubator copy of middleware
* Updated from global requirements
* Add last_request_id only if it is not none
* add mox3 to review dashboards
* Add new core email body generator helper tool
* Updated from global requirements
* Updated from global requirements
* Remove versionutils
* Add new projects to dashboard
* clean up review dashboards for liberty
* Remove local module
* Mark service library as graduating
* Guru Meditation Reports broken without version_string
* Switch from MySQL-python to PyMySQL
* Improve logging to debug invalid "extra_specs" entries
* Add Python 3 classifiers
* Clean up logging to conform to guidelines
* Add gerrit dashboard files
* Updated from global requirements
* Add svg files for team mascot
* Updated from global requirements
* Updated from global requirements
* Updated from global requirements
* Move tools to release-tools
* Bump target release
* Port service to Python 3

2015.1.0
--------

* Test for shutting down eventlet server on signal
* service child process normal SIGTERM exit
* Revert "Revert "Revert "Optimization of waiting subprocesses in ProcessLauncher"""
* Revert "Revert "Optimization of waiting subprocesses in ProcessLauncher""
* Test loopingcall and threadgroup on Python 3
* Fix usage of NotFound exception in apiclient.base
* Revert "Optimization of waiting subprocesses in ProcessLauncher"
* Add requirement for python-memcached
* Drop pylint requirement
* ProcessLauncher: reload config file in parent process on SIGHUP
* Updated from global requirements
* Add check to test__signal_handlers_set
* Move the release_notes.py script to release-tools
* Remove timeutils.strtime() usage
* Store ProcessLauncher signal handlers on class level
* Remove unused validate_ssl_version

2015.1.0b3
----------

* Update tests for optional sslv3
* Fixed ssl.PROTOCOL_SSLv3 not supported by Python 2.7.9
* Add two additional emotions to release_notes
* Add tox env for listing unreleased changes
* Add dates to unreleased change report
* Updated from global requirements
* Prevent update.py from updating policy
* Remove policy from oslo-incubator
* Update projects ignored for unreleased changes
* Inject a bit more emotions to our releases
* Add liberty release name to versionutils
* Expose opts entry point for version_utils
* Handle non-json http exceptions better
* Do not log on missing or empty policy_dirs
* Simplify boolean expression
* Add a few new emotions to release notes
* Updated from global requirements
* Optimization of waiting subprocesses in ProcessLauncher
* Fix the regex for turning project.lib back to oslo.lib
* Remove obsolete comments from tool scripts
* script to list the latest release of each library
* Update release tool for governance change
* Switch from oslo.config to oslo_config
* Update policy.py status in MAINTAINERS
* Have a little fun with release notes
* Adjust release note template whitespace
* Add tox env for running release notes script
* Link hacking guidelines into dev docs

2015.1.0b2
----------

* Use oslo_utils instead of deprecated oslo.utils
* Move test runner scripts to oslotest repository
* Report: Add basic processes section
* Fix spelling of noteables -> notables
* Change oslo.config to oslo_config
* Remove oslo.log code and clean up versionutils API
* Always scan origin/master for release notes
* Refactor graduate.sh
* Add pre_release_tests.py
* Make release notes script work with other tools
* Remove request utils
* switch to oslo_i18n
* Use oslo_middleware instead of deprecated oslo.middleware
* Updated from global requirements
* Updated from global requirements
* Replace mox by mox3
* Remove useless dependencies
* Remove context
* Updated from global requirements
* Fix oslo.middleware deprecation error
* Allow overriding name for periodic tasks
* Separate add_periodic_task from the metaclass __init__
* Upgrade to hacking 0.10
* Remove uuidutils
* switch to oslo_serialization
* Refactor oslo.conf handling for tool scripts
* Updated from global requirements
* Ignore errors uninstalling lib in run_cross_test.sh
* Update run_cross_test.sh to pass extra args to tox
* Remove unnecessary import of eventlet
* Added graceful argument on Service.stop method
* Remove extra white space in log message
* Support non-lowercase uuids in is_uuid_like
* Make sure run_cross_tests.sh installs all files
* Add the ability to skip requirement commits
* Replace the 'release_notes' shell script with a python variant
* Introduce fileutils ensure_dir creation mode parameter
* Prefer delayed %r formatting over explicit repr use

2015.1.0b1
----------

* We shouldn't replace `oslo-incubator` in comments
* Updated from global requirements
* Add a virtual sprint ML template/program
* Delete graduated concurrency files
* Fix update.py to not replace oslo-incubator
* Workflow documentation is now in infra-manual
* Remove requirements-py3
* Curl statements to include globoff for IPv6 URLs
* Add more to the release notes
* Improving docstrings for policy API
* Add ConnectionError exception
* Don't log missing policy.d as a warning
* Add middleware.catch_errors shim for Kilo
* Add rule overwrite flag to Enforcer class
* Improve unreleased change report
* Fixed a problem with neutron http policy check
* Updated from global requirements
* Expanding the help text for policy_dirs
* Reports: Use sig handler traceback for curr thread
* Report: Propagate view_type through collections
* oslo.context is graduating
* Don't set up new repository with namespace package
* fix shell syntax in set_roots
* make COOKIECUTTER_TEMPLATE_REPO configurable
* Updated from global requirements
* Updated from global requirements
* policy: add a missing staticmethod declaration
* ServiceRestartTest: make it more resilient
* threadgroup: don't log GreenletExit
* Updated from global requirements
* deprecate crypto package
* deprecate cache package
* deprecate apiclient package
* Remove unused module funcutils.py
* Report: Support Sequences and Mappings as Data
* Fixes nits in module policy
* Drop hooks
* Make use_syslog=True log to syslog via /dev/log
* Updated from global requirements
* Simplify is_user_context method
* cliutils restore python3 string decode
* Improve documentation of run_tests.sh script
* Remove graduated modules from MAINTAINERS list
* Import PublishErrorsHandler from oslo.messaging
* Updated from global requirements
* Allow tempest to use new log w/o oslo.i18n
* Handle different format of api exception
* Updated from global requirements
* Updated from global requirements
* Switch fileutils to use python logging
* add list_opts to all modules with configuration options
* Add middleware.request_id shim for Kilo
* Correct default rule name for policy.Enforcer
* Minor fixes in policy module
* Use list.pop(0) to keep the code simpler
* Use same mask pattern for reports as mask_password
* Updated from global requirements
* add tool for finding users of deleted modules
* Updated from global requirements
* Mask keystone token in debug output
* Remove middleware
* Split cliutils
* Make list_unlreleased_changes.sh more flexible
* Do not try to show changes of non-master branches
* Change clone_openstack.sh to ignore stackforge by default
* Mask secrets when output conf
* Updated from global requirements
* Drop xmlutils
* Remove config from MAINTAINERS
* Delete graduated serialization files
* remove caching param from prettytable call
* Fix i18n import
* Script to list unreleased changes in all oslo projects
* Script to print a list of the official oslo repos
* Add a script for checking out all OpenStack repos
* Remove code that moved to oslo.i18n
* Remove graduated config modules
* Remove our custom test base class
* Allow dictionary lookup in credentials with dot notation
* Stop testing notifier under python 3
* Clean requirements
* Switch oslo-incubator to use oslo.utils and remove old modules
* Remove graduated test and fixtures libraries
* Updated from global requirements
* Delete graduated db files
* rpc, notifier: remove deprecated modules
* Fix build break - switch from str to hash for lookup
* Delete the token and endpoint on expiry of token of client
* Fix typo to show correct log message
* Fix custom virtualenv directory for tempest

2014.2
------

* Enabled mask_password to handle byte code strings
* Let oslotest manage the six.move setting for mox
* Test formatting errors with log level being emitted
* Stop using intersphinx
* Always log the releasing, even under failure
* Use immutable arg rather mutable arg
* Do not incur the cost of a second method call
* Clarify logging in lockutils
* Add contributing page to docs

2014.2.b3
---------

* Switch to using pbr's autodoc capability
* Use MultiStrOpt for policy_dirs
* Add field_labels parameter to cliutils.print_list
* fix small typo
* Check for namedtuple_as_object support before using it
* Work toward Python 3.4 support and testing
* warn against sorting requirements
* Use file locks by default again
* Mask passwords in exceptions and error messages
* Mark jsonutils as obsolete
* Update list of oslo libs in update.py
* Mark log code as graduating
* Mark middleware as obsolete
* Mark oslo.utils modules obsolete
* Add support for policy configration directories
* Fix response_key parameter usage in BaseManager
* Mark the config generator as obsolete
* Make it possible to get the request_id from python clients
* Mark jsonutils as graduating
* Remove unused/mutable default args
* Mask passwords in exceptions and error messages
* Next version is 2014.2
* add deprecation note to middleware
* log: add missing space in error message
* Updated from global requirements
* Set stevedore log level to WARN by default
* Set python hash seed to 0 in tox.ini
* Specify namedtuple_as_object=False when using simplejson
* Enhance versionutils.deprecated to work with classes
* Make strutils.mask_password more secure
* Add unicode coercion of logged messages to ContextFormatter
* Correct coercion of logged message to unicode
* Make graduate.sh commit filtering more correct
* Centralize bash-completion in Novaclient
* Mark oslo.cocnurrency libs as graduating
* Handle non-openstack errors gracefully
* Updated from global requirements
* Use oslosphinx to generate documentation
* Except socket.error if syslog isn't running
* Fix E126 pep8 errors
* log: make tests portable
* Remove usage of readlines()
* Updated from global requirements
* Use index-filter instead of tree-filter in graduate.sh
* Remove oslo.log from lockutils
* Set keystonemiddleware and routes.middleware to log on WARN level

2014.2.b2
---------

* Updated from global requirements
* Add tests.unit.db.sqlalchemy.test_migrate to py33
* Fix "tests.unit.test_excutils" test with python 3.4
* Inherit MockWithCmp from Mock instead of MagicMock
* Adjust oslo logging to provide adapter is enabled for
* Add Kilo release name to versionutils
* lockutils: split tests and run in Python 3
* Fix tests.unit.reports.* with python3.4
* Make logging_context_format_string optional in log.set_defaults
* cfgfilter has graduated, remove it
* log: make set_defaults() tests clean up properly
* Allow deprecated decorator to specify no plan for removal
* Add JUNO as a target to versionutils module
* Fix deletion of cached file for policy enforcer
* Fix tests.unit.reports.test_base_report with python3.4
* Add default log level for websocket
* Fix exception message in openstack.common.processutils.execute
* Backport code for i18n to check lazy at runtime
* Updated from global requirements
* Added missing jsonutils.dump() function
* Ability to customize default_log_levels for each project
* Python 3: enable tests/unit/test_log.py
* Delete 'deprecated' directory
* Allow test_lockutils to run in isolation
* Allow test_service to run in isolation
* Mark gettextutils obsolete
* Remove `processutils` dependency on `log`
* Move `mask_password` to strutils
* Use the standard python logging in network_utils
* update new requests logger to default WARN
* Changes calcuation of variable delay
* Use timestamp in loopingcall
* Updated from global requirements
* Python 3: replace "im_self" by "__self__"
* Don't import fcntl on Windows
* Fix broken formatting of processutils.execute log statement
* Remove extra whitespace
* Remove unnecessary setUp function
* Move nova.utils.cpu_count() to processutils module
* Use lockutils wrapper to set OSLO_LOCK_PATH for run_tests.sh
* remove oslo log from middleware
* Log the function name of looping call
* Enable test_strutils for Python 3
* Updated from global requirements
* mark middlware module as graduating
* Use oslo.messaging to publish log errors
* pep8: fixed multiple violations
* Updated from global requirements
* Make periodic tasks run on regular spacing interval
* Add a RequestContext.from_dict method
* Fix issue of duplicate creation for connections in impl_qpid
* Mark db code as obsolete
* Expand © and remove unnecessary encoding lines
* generator: remove unused param, small clean up
* Prevent races in opportunistic db test cases
* Bump hacking to 0.9.x series
* Fix common.log.ContextFormatter for Python 3

2014.2.b1
---------

* Make policy debug logging less verbose
* Restore UUID and human-ID bash completion
* Fixed a new pep8 error and a small typo
* Slow down Kombu reconnect attempts
* Mask passwords included without quotes at the ends of commands
* cfgfilter: don't re-register options
* cfgfilter: fix some docstring issues
* use /usr/bin/env python instead of /usr/bin/python
* Improve error handling for conf sample generation
* Set pbr 'warnerrors' option for doc build
* fixed typos found by RETF rules
* Add source code generation to conf.py
* Fix Sphinx directive name
* Ensure routing key is specified in the address for a direct producer
* Commit changes to local repository after exporting
* Use moxstubout and mockpatch from oslotest
* Implement stop method in ProcessLauncher
* Fix parenthesis typo misunderstanding in periodic_task
* Add kwargs to jsonutils.load(s) functions
* Move oslotest to test-only requires
* Updated from global requirements
* file_open: fixed docstring to refer to open() instead of file()
* Fixes a simple spelling mistake
* remove default=None for config options
* always log a traceback in the sys.excepthook
* cfgfilter: finally make this thing useful!
* cfgfilter: fixup use of testmods
* cfgfilter: use some testtools helpers
* cfgfilter: switch to assertEqual(expected, actual)
* Remove ValueError when accessing sys.modules
* cfgfilter: fix typo in register_cli_opts()
* Fix docstring indentation in systemd
* Remove redundant default=None for config options
* fileutils: port to Python 3
* Enforce unicode json output for jsonutils.load[s]()
* Fix MemoryBackend not purging item from _keys_expired on delete
* Fix logging setup for Python 3.4
* Make unspecified periodic spaced tasks run on default interval
* remove token from notifier middleware
* Document config generator variables
* Allow file exclusion in config generator
* Fix update.py can't replace base name
* Explicitly name subscription queue
* Mask passwords that are included in commands
* debug level logs should not be translated
* Don't slugify names that don't exist
* cliutils: Python 3 support
* Updated from global requirements
* Add mailmap entry
* Remove requirements_style_check.sh
* Make stop_timers() method public
* Enable configuring tcp keepalive
* Fix warnings in doc build for apiclient
* Avoid raising index error when no host
* Report: Fix JinjaView deepcopy
* Save .git directory but not other git files
* jsonutils.load() accepts file pointer, not string
* Update the status of gettextutils to graduating
* Remove deprecated LoopingCall
* On Python <= 2.6, use simplejson if available
* Activate tests.unit.test_imageutils under Python3
* Improve help strings
* Update update.py for oslo.i18n
* Remove str() from LOG.* and exceptions
* Fixed several typos
* Activate fixture.test_logging tests under Python3
* Emit a log statement when releasing internal lock
* Fix oslotest -> `base`test
* Activate test_openstack_generators.py in Python3
* Add API for creating translation functions
* Raise exception when importing memcache error
* Fix tests/unit/crypto/test_utils.py under Python3
* Remove import workaround of SplitResult
* Updated from global requirements
* Mark db code as graduating
* Fix python26 compatibility for RFCSysLogHandler
* Prevent races in opportunistic db test cases
* Add graceful stop function to ThreadGroup.stop
* Activate test_generator.py tests under Python3
* Fix tests.unit.reports.test_guru_meditation_report under Python3
* Activate unit tests from test_base_report.py under Python3
* Allow passing environment variables to execute()
* Use from/import style in module report
* Fix tests.unit.reports.test_views failures under Python3
* Drop dependency oslo.db from common.log
* Use oslotest instead of common test module
* Remove duplicated "caught" message
* Fix common.scheduler.base_weight.BaseWeigher to be Python3 compatible
* Move notification point to a better place
* sizelimit: port to Python 3
* Warn the user when they sync an obsolete module
* apiclient.exceptions.from_response() may miss request_id
* generator: sanitize values ending with the fqdn
* Updated from global requirements
* Let update.py read/write same file one time for all replacements
* Update ensure()/reconnect() to catch MessagingError
* Remove pep8, pyflakes, and flake8 from test requirements
* Start ping listener also for postgresql
* Add test case for config generator hostname check
* Add a warning to not use get_table for working with ForeignKeys
* Partial fix of test_strutils.py on Python 3
* Fix safe_encode(): return bytes on Python 3
* Don't call provision.py directly
* Fixes command being displayed on same line
* Add option for GM report to dump to a file

2014.1.rc1
----------

* Remove rendundant parentheses of cfg help strings
* Ignore migrate versioning tables in utf8 sanity check
* Fix config-dir for middleware tests
* Ensure options passed to update.py are sane
* Script for running unit tests in other projects
* Support copying scripts outside of modules
* urlsplit issues with IPv6 addresses in python26
* Removed unneeded #noqa tag
* Qpid: advance thru the list of brokers on reconnect
* Adds test condition in test_periodic
* Don't store the request ID value in middleware as class variable
* Revert setting oslo-incubator logs to INFO
* Set default log levels for oslo.messaging and oslo-incubator
* Updated from global requirements
* Fix sqlalchemy utils test cases for SA 0.9.x
* Fix Keystone doc build errors with SQLAlchemy 0.9
* Make table utf-8 charset checking be optional for DB migration
* Dispose db connections pool on disconnect
* Return the thread created in consume_in_thread
* Improve update.py docstring
* save_and_reraise_exception: make logging respect the reraise parameter
* Remove redundant test cases in test_imageutils
* Python3: pass bytes as 'contents' to create_tempfiles()
* Fix test_quota.py on Python 3
* Fix test_gettextutils on Python 3
* Python3: enable test_jsonutils.py
* Python 3: enable tests/unit/middleware/test_request_id.py
* Python3: do not use contextlib.nested()
* Do not use the 'extend' method on a dict_items object
* Re-raise exception of unloadable library
* Set sql_mode callback on connect instead of checkout
* Python 3: enable more tests
* Fix gettextutil.Message handling of deep copy failures
* Fix excessive logging from db.sqlalchemy.session
* policy: rename Exception to avoid nose regression
* Add lockutils fixture to OpportunisticTestCase
* Updated from global requirements
* Add default user_identity to logging record
* Be smarter about config generator default package name
* Add copyright text to openstack/common/__init__.py
* User a more accurate max_delay for reconnects
* Change lazy translation to retain complete dict
* Move test_insert_from_select unit test from nova to oslo
* Adapt DB provisioning code for CI requirements
* Fixed spelling error - occured to occurred
* Make db utils importable without migrate

2014.1.b3
---------

* Remove requirements.txt from .gitignore
* Get mysql_sql_mode parameter from config
* Enable decimal value input in imageutils.QemuImgInfo
* Apply testscenarios to imageutils test scripts
* Prevent incorrect usage of _wrap_db_error()
* strutils: Allow safe_{encode,decode} to take bytes as input
* Python3: define a __next__() method for ModelBase
* Add missing _LI for LOG.info in service module
* Allow external locks to work with threads
* Fixes Guru Meditation portability issue
* Use six.moves.xmlrpc_client instead of xmlrpclib
* Re-enable file-based locking behavior
* Updated from global requirements
* Add from_config() method to EngineFacade
* Use Posix IPC in lockutils
* Use mock.call_count to assert the call counter
* Use _LI instead of _ for info message translation
* Revert "Removed set_loaded() method from Resource class"
* notify calling process we are ready to serve
* Adds a flag to determine whether to reload the rules in policy
* db: move all options into database group
* Drop special case for MySQL traditional mode, update unit tests
* Make TRADITIONAL the default SQL mode
* Enforce alphabetical ordering in requirements file
* Fix requirements file ordering
* Reap child processes gracefully if greenlet thread gets killed
* Improve help strings for sslutils module
* Fix typo in inline documentation for report module
* Remove pycadf from the python 3 requirements
* Introduce mysql_sql_mode option, remove old warning
* Introduce a method to set any MySQL session SQL mode
* Allow filters to only run once per request if their data is static
* Fix i18n support for apiclient
* Sanitize FQDN in config generator
* Updated from global requirements
* Handle ibm_db_sa DBDuplicateEntry integrity errors
* Fix doc build errors in db.sqlalchemy
* Fix migration.db_version when no tables
* Remove unnecessary usage of noqa
* Update log translation domains
* Mark files graduating to oslotest
* Fix import order in test_excutils
* Config generator fails with lazy messages
* Add model_query() to db.sqlalchemy.utils module
* Run tests for apiclient with python3
* Fix a small typo in api.py
* migration.db_sync requires an engine now
* Update ChangBo's email
* Remove CONF.database.connection default value
* Remove None for dict.get()
* Use six.StringIO/BytesIO instead of StringIO.StringIO
* Copy the __init__.py from openstack.common
* Update wiki link in update.py
* Fix duplicating of SQL queries in logs
* Documenting policy.json syntax
* Skip __pycache__ in maintainers check
* Removes use of timeutils.set_time_override
* Remove test_compat.py from py33 tests
* Update cookiecutter git URL
* Update oslo log messages with translation domains
* Refactor unnecessary arithmetic ops in periodic_task
* Remove rootwrap from incubator
* Restore the ability to load the DB backend lazily
* Refactor if logic in periodic_task
* Use timestamp in periodic tasks
* Update status of modules moving to oslo.test
* Don't use cfg.CONF in oslo.db
* Don't store engine instances in oslo.db
* Rename Openstack to OpenStack
* Fixture to reraise exceptions raised during logging
* Use `six.text_type` instead of `str` in cliutils
* Add etc/openstack.conf.sample to .gitignore
* RabbitMQ: advance thru the list of brokers on reconnect
* Implements SI/IEC unit system conversion to bytes
* Run tests in parallel as much as possible
* Fix tools/graduate.sh for work with directories
* Emit message which merged user-supplied argument in log_handler
* Fix typo in MAINTAINERS
* Fix DictOpt support in config sample generator
* Fix usage of dict.keys in apiclient.exceptions
* Add support for translating log levels separately
* Add basic Python 3 tests
* py3kcompat: remove
* Normalize Scheduler Weights
* Clear time override in test_periodic
* Log unit test improvements
* Make sure rpc_notifier opts exist
* Add tool for helping with library graduation
* Don't raise MySQL 2013 'Lost connection' errors
* Enhance config fixture to support registering options
* Cleanup config fixture docstrings
* Don't share periodic_task instance data in a class attr
* Format sql in db.sqlalchemy.session docstring
* Handle exception messages with six.text_type
* Drop dependency on log from oslo db code
* Fix requirements file ordering
* Automatic retry db.api query if db connection lost
* Use Context Manager for reading JSON configs
* Move the released file lock to the successful path
* Fix policy tests for parallel testing
* Revert "service: replace eventlet event by threading"
* Correct docstring in load_plugin_from_args
* update.py fails silently if module is not found
* Removed set_loaded() method from Resource class
* Clean up docstring in db.sqlalchemy.session
* Only enable MySQL TRADITIONAL mode if we're running against MySQL
* Add to_dict() method to apiclient Resource
* Move db tests base.py to common code
* Generalize base test case into common code
* Allow policy.json resource vs constant check
* Use ContextFormatter for imparting context info
* generator: use EXTRA_* env vars in the bash script
* Fix parsing of UC errors in sqlite 3.7.16+/3.8.2+
* Fix deprecated messages sent multiple times
* Enhance tests for LOG.deprecated
* Add 'new' parameter to mock.Patch and mock.PatchObject classes
* Simplify launch method
* Replaces use of urlutils with six in policy module
* generator: add an EXTRA_LIBRARIES env variable
* generator: rename EXTRA_MODULES_FILE to RC_FILE
* Add test for raising errors in HTTPClient
* default connectionpool to WARN log level
* Add check_maintainers.py script
* Add remove external lock files API in lockutils
* Simple typo correction
* Deleted duplicated method in cliutils
* Ported hooks

2014.1.b2
---------

* Catch OSError in processutils
* Fix E501 in individual openstack projects
* Updated from global requirements
* Use dialect rather than a particular DB API driver
* Move helper DB functions to db.sqlalchemy.utils
* Backport 'ident' from python 3.3 for Oslo's SysLogHandler
* Stop looping all filters if no objects return
* Add missing entries to MAINTAINERS
* remove extra newlines that eventlet seems to add
* Small edits on help strings
* Use threading.ThreadError instead of reraising IOError
* Have the interprocess lock follow lock conventions
* Transition from migrate to alembic
* Fix test method use
* Make Message keep string interpolation args
* Fix mocking of utcnow() for model datetime cols
* Add support for locales missing from babel
* Adding cache entry to Maintainers file
* lockutils: move directory creation in lock class
* lockutils: remove lock_path parameter
* lockutils: expand add_prefix
* lockutils: do not grab the lock in creators
* lockutils: remove local usage
* Use entry points to discover options in libraries
* Add a db check for CHARSET=utf8
* Replace rpc/impl_zmq maintainer
* strutils bool_from_string, allow specified default
* Remove unused variables
* Implement cache abstraction layer
* Run tests/unit/test_funcutils.py in PY3 enviroment
* Remove "vim: tabstop=4 shiftwidth=4 softtabstop=4" from headers
* safe_log Sanitize Passwords in List of Dicts
* Add method quote_plus in module py3kcompat.urlutils
* Make the log capture in tests more configurable
* Handle 300 status code in common HTTPClient
* Add common methods to cliutils
* Add error type to unhandled exception log message
* Linked Request IDs
* Middleware to catch all error in WSGI pipeline
* Sort requirements.txt to be more readable
* Allow the Message class to have non-English default locales
* Implementation of translation log handler
* Logging excepthook: print exception info if debug=True
* Fix database connection string is secret
* Cleanup unused log related code
* Utilizes assertIsNone and assertIsNotNone
* Adjust imports order of module log_handler
* Fix typo in update.py
* Fix i18n problem in processutils module
* Avoid failure of test_basic_report on 32 bit OS
* Add check_uptodate to tools/config
* lockutils: split code handling internal/external lock
* lockutils: fix testcase wrt Semaphore
* Fix spelling errors in comments
* Removed copyright from empty files
* Fix the obsolete exception message
* Fix filter() usage due to python 3 compability
* Use encode() instead of strutils.safe_encode() in fake_client
* Use hacking import_exceptions for gettextutils._
* threadgroup: use threading rather than greenthread
* Add docstring for exception handlers of session
* disable SIGHUP restart behavior in foreground
* Use six.seraise() instead of `raise exc, val, tb`
* Removal of _REPOSITORY global variable
* Remove string.lowercase usage
* Remove eventlet tpool from common db.api
* fileutils: do not hardcode /tmp usage
* service: replace eventlet event by threading
* log all test messages not just oslo ones
* update script should install released oslo.config
* Encode response from FakeHTTPClient
* Temporary workaround for config generator
* Allow configurable ProcessLauncher liveness check
* Database hook enabling traditional mode at MySQL
* Replace xrange in for loop with range
* SQLAlchemy error patterns improved
* pastedeploy: remove
* Remove unused import
* Correct invalid docstrings
* Translation Message improvements
* Fix a bug in safe_encode where it returns a bytes object in py3
* Remove keystone from default_log_levels default
* Change IgnoreAttemptedHostFilter to expect 'retry' key
* Sort the output of config/generator.py by group name
* Fixing misspelled encryption key in QemuImgInfo
* wsgi: remove
* Fix typo in parameter documentation (timeutils)
* Remove start index 0 in range()
* Pin sphinx to <1.2
* Notifier Proxy
* Make _extra_keys a property of ModelBase
* Avoid TypeError in is_older_than, is_newer_than
* Middlelware to ensure request ID
* fixed typos
* Updated from global requirements
* Fix mis-spellings
* Fix violations of H302:import only modules
* Fix some doc string nits in crypto/utils.py
* Add IgnoreAttemptedHostsFilter to oslo
* Python3 support for xmlrpclib
* Make wait & stop methods work on all threads
* Enables db2 server disconnects to be handled pessimistically
* Create a shared queue for QPID topic consumers
* Fixed misspellings of common words
* db.sqlalchemy.session add [sql].idle_timeout
* Remove extension_stubs
* middleware.sizelimit: stop importing wsgi

2014.1.b1
---------

* Use six.iteritems to make dict work on Python2/3
* Trivial: Make vertical white space after license header consistent
* Properly reconnect subscribing clients when QPID broker restarts
* Drop dependency on processutils from oslo db code
* Adds decorator to deprecate functions and methods
* Fix locking in migration tests
* Mark rootwrap as graduating
* Add a graduating status for projects
* Mark rpc,notifier,zmq as Obsolete
* Adding domain to context and log
* Run coverage tests with --concurrency=1 too
* Incorporating MIT licensed code
* Remove the context middleware
* Use urlutils functions instead of urllib/urllib2
* Only pass non-None sortby to PrettyTable.get_string
* Remove authutils
* Typos fix in db and periodic_task module
* Bump to using SQLAlchemy migrate 0.8.2
* Use six.moves.configparser instead of ConfigParser
* Drop dependency on fileutils from oslo db tests
* Replace data structures' attribute with six module
* Common ConnectionRefused class
* Use six.iteritems for python 3.3 support in apiclient module
* fix typo in db session docstring
* Remove build from MAINTAINERS
* Unify different names between Python2/3 with six.moves
* Added opportunistic DB test cases
* The ability to run tests at various backend
* Use log.warning() instead of log.warn() in oslo.db
* Replace removed items in Python3
* Remove vim header
* Don't log to stdout when log_dir is set
* Use py3kcompat urlutils functions instead of urlparse
* Remove uuidutils imports in oslo modules
* Improve error reporting on import failures
* Clean up extra modules code
* Don't use deprecated module commands
* Remove sqlalchemy-migrate 0.7.3 patching
* Have tox install via setup.py develop
* SQLite behavior independent DB test cases
* Change capabilities filters to use resource type
* Run generate_sample.sh as part of tox tests
* Fix error when no custom config file matches *.conf.sample
* Drop dependency on lockutils from oslo db code
* Remove lazy loading of database backend
* Fix copyright header on test module
* Use cleaner version from cookiecutter OpenStack template
* Add helper method total_seconds in timeutils.py
* Adds admin_password as key to be sanitized when logging
* Revert "Removes generate_uuid from uuidutils"
* Do not name variables as builtins
* Removes generate_uuid from uuidutils
* os._exit in _start_child may cause unexpected exception
* Update URL for global HACKING document
* Default iso8601 logging to WARN
* Use six.string_type instead of basestring
* Use six.text_type instead of unicode function in tests
* Add some log messages to capabilities_filter.py
* Add mask password impl from other projects
* Add TempHomeDir fixture which is already part of cookiecutter template
* Fix typos in oslo
* Adjust import order according to PEP8 imports rule
* matchmaker_redis compatibility with redis-py 2.4
* Use fileutils.write_to_tempfile in LogConfigTestCase
* Refactors byte size extraction logic
* Add unit constants
* fix lockutils.lock() to make it thread-safe
* allow keeping of existing loggers with fileConfig
* Update generate_sample.sh to allow custom configs
* Ignore H803 from Hacking
* python3: use six.text_types for unicode()
* Update mailmap for Joe Gordon
* Add amqp=WARN,qpid=WARN to default_log_levels
* Add main() to lockutils that creates temp dir for locks
* Make update.py aware of upper-case names
* Allow lockutils to get lock_path conf from envvar
* Add a link method to Thread
* Don't shadow str
* Allow generate_sample MODULEPATH to be set in env
* Add db2 communication error code when check the db connection
* Correct execute() to check 0 in check_exit_code
* Drop RPC securemessage.py
* Replace assertEquals with assertEqual
* Replace assert_ with assertTrue
* Print the deprecated group/name for each option
* Transform the for loop to expression
* Add urlopen/URLError/pathname2url in urlutils
* Move LockFixture into a fixtures module
* Skip bad versions of iso8601
* Use multiprocessing.Event to ensure services have started
* Remove .pyc files before generating sample conf!
* Raise an error if module import fails!
* Use localisation
* python3: Fix traceback while running tests
* Consolidate the use of stubs
* Don't override default value for eventlet.wsgi.server logging
* Fix to properly log when we release a semaphore
* Replace using tests.utils part3
* Fix missing space in help text
* Remove obsolete redhat-eventlet.patch
* When translating if no locale is given use default locale
* Add LockFixture to lockutils
* _get_log_file_path explictly return, when logfile/logdire unset
* Apply six for metaclass
* Adds common image utils
* add support to ignore certain request
* Add `versionutils` for version compatibility checks
* Make openstack.common.log Python 3 compatible
* ConfigFileNotFoundError with proper argument
* Make openstack.common.fixture.config Py3 compliant
* Add third element to RPC versions for backports
* Add utils for creating tempfile
* Add [sql].connection as deprecated opt for db

2013.2
------

* Make Messages unicode before hitting logging
* Removed calls to locals()
* Ensure that Message objects will be sent via RPC in unicode format
* Require oslo.config 1.2.0 final
* Type check for Message param to avoid AttributeError
* Adam Young as alternate Policy maintainer
* Adding instance_uuid to context and log
* gettextutils: port to Python 3
* Make run_tests.sh identify requirements correctly
* Fix timeutils.set_override_time not defaulting to current wall time
* Skip hidden files while traversion rootwrap filters
* Move comment in service.py to correct location
* Keystone user can't perform revoke_token
* Fix misused assertTrue in unit tests
* Translate all substitution elements of a Message object
* Fix os.getlogin() problem with no tty
* Don't need to init testr in run_tests.sh
* Changed header from LLC to Foundation based on trademark policies
* config.generator: allow extra modules importing
* Remove useless unit test codes in test_policy
* Using NestedTempfile in new BaseTestCase class

2013.2.b3
---------

* Introduces The Guru Meditation Report
* Replace list with dict in AvailabilityZoneFilter.host_passes
* Send rootwrap exit error message to stderr
* Fixes issue with SUGHUP in services on Windows
* Introduces Openstack-Specific Report Utilities
* Introduces Report Views
* Support a new qpid topology
* Optimize timeutils.utcnow_ts()
* Modify lockutils.py due to dispose of eventlet
* add audit middleware
* middleware: add notifier
* Modify SQLA session due to dispose of eventlet
* Introduces Basic Report and Model
* Use monkey_patch() in TestMigrationUtils setUp()
* Proper usage of _resource property in quotas
* Sample config file generator clean up
* Replaces relative path to absolute path in conf file generator
* parameterize fileutils removal functions
* Remove underscore tests.init hack
* Refactors if statement in config generator
* jsonutils: make types py3 compatible
* jsonutils: do not require xmlrpclib
* excutils: replace unicode by six.u
* excutils: use six.reraise to re-raise
* Add common code for CLI tools
* fileutils: don't import __builtin__
* py3kcompat: Add unquote
* Remove lxml from requirements
* python3: Fix UserString import
* rootwrap: improve Python 3 compatibility
* Replace using tests.utils part1
* Replace using tests.utils part2
* Make dependency on netaddr optional
* Provide useful defaults for config generator
* Update requirements
* Fix processutils.execute errors on windows
* Clean up db.sqla.Models.extra_keys interface
* Make a cStringIO usage in test_log py3 compatible
* Use functools.wrap() instead of custom implementation
* Enable multiple translation domains for gettextutils
* Update DB maintainers
* Raise timeout in fake RPC if no consumers found
* Move base migration test classes to common code
* Bump hacking to 0.7.0
* exception: remove
* Don't eat callback exceptions
* requeue instead of reject
* py3kcompat: Add urljoin compatibility
* Unset OS_xx variable before generate configuration
* Allow mapping _ to lazy gettext path
* Update .mailmap
* Move `./run_tests.sh` to Oslo
* Fixes files with wrong bitmode
* User quota update should not exceed project quota
* Fix case error in qpid exchange type "direct"
* Fix capitalization, it's OpenStack
* Ensure context type is handled when using to_dict
* Replace using tests.utils with openstack.common.test
* Don't attempt to patch eventlet without the patch
* Use single meta when change column type
* Allow passing a logging level to processutils.execute
* middleware: code cleanup
* Add a fixture for dealing with config
* Fix wrong argument in openstack common policy
* Clarify precedence of secret_key_file
* Don't shadow cfg import in securemessage
* Remove redundant global keyword in securemessage
* Some nitpicky securemessage cleanups
* Allow non-use of cfg.CONF in securemessage
* Add common part of test-related tools to oslo
* Add missing exceptions for per user quota
* RPC: Add MessageSecurity implementation
* Fix Message format-string parsing
* python3: Import translation layer
* Helper function to sanitize db url credentials
* Modify local.py to not be dependent on Eventlet
* Fix missing argument bug in oslo common policy
* Ensure install_venv works behind firewalls
* Add common methods required to allow translation of REST API responses
* Update references with new Mailing List location
* Import common quota code from nova and cinder
* Fix policy default_rule issue
* Refactors boolean returns
* BaseException.message is deprecated since Python 2.6
* Fix hostname conflict in config generator
* Add function drop_unique_constraint()
* Change sqlalchemy/utils.py mode back to 644
* Move sqlalchemy migration from Nova
* Add service restart function in oslo-incubator
* config.generator: remove the total number of options
* Make ZeroMQ based RPC consumer threads more robust
* python3: handle module moves in log
* Implement apiclient library
* Import config file generator module from python path
* Fix issues syncing sample generator in update.py
* Change file bit of sample config file generator
* On reconnecting a FanoutConsumer, don't grow the topic name
* Remove DnsmasqFilter and DeprecatedDnsmasqFilter
* Allow use of hacking 0.6.0 and enable new checks
* Exception code cleanup
* Avoid shadowing Exception 'message' attribute
* Add eclipse project files to .gitignore
* Add serializer param to RPC service
* Fix locking bug
* Raise ValueError if sort_dir is unknown
* Add tests for cinder/common/sqlalchemyutils.py
* python3: Add basic compatibility support

2013.2.b2
---------

* Add config for amqp durable/auto_delete queues
* Remove the unused notifier.add_driver() API
* Document Flavio as a maintainer of the policy code
* Add maintainer for apiclient
* Fixes path to add on PYTHONPATH in generate_sample.sh
* Add more robust gettext interpolation handling
* Fix stylistic problems with help text
* python3: Add python3 compatibility support
* Move synchronized body to a first-class function
* Make lock_file_prefix optional
* Add .testrepository to .gitignore
* python3: Add basic python3 compatibility
* Move `test_migrations` from Nova
* Migrate sqlalchemy utils from Nova
* Fix missing argument bug in oslo common policy
* Revert "Add support for heartbeating in the kombu RPC driver"
* Fix issue with pip installing oslo.config-1.2.0
* Enable H302 hacking check
* Avoid shadowing Exception 'message' attribute
* Clean up and make HACKING.rst point to openstack-dev/hacking
* Add a monkey-patching util for sqlalchemy-migrate
* Convert kombu SSL version string into integer
* notifier: do not rely on CONF.host
* Add support for heartbeating in the kombu RPC driver
* Allow launchers to be stopped multiple times
* Add missing license header
* Use print operator in function style
* Stop using distribute in install_venv_common
* Sanitize passwords in _safe_log
* Ignore any exceptions from rpc.cleanup()
* Add maintainer for crypto utilities
* config.generator: replace sys.prefix by /usr
* Enable H304 hacking check
* Handle empty arglists in Filters
* Add conditional exception reraise
* Replace sys.exit by a RPCException
* Fix bad default for show_deleted
* Fix exception arg typo
* Add graceful service shutdown support to Launcher
* Add common crypto utilties
* Handle empty PATH environment variable
* python3: Add python3 compatibility
* Fix tox.ini config
* Add netaddr.IPAddress support to to_primitive()
* Add exceptions for OpenStack clients
* Refactor KombuStubs fixture
* Make AMQP based RPC consumer threads more robust
* Fixes crash when no help for an option
* Enable H202 hacking check
* Do not raise NEW exceptions
* Adds sample config file generation script
* Don't use mixture of cfg.Opt() deprecated args
* Allow BaseTestCase use a different conf object
* rpc: remove some unused serialization code
* Add network_utils.urlsplit
* Improve usability when backdoor_port is nonzero
* Ensure that DB configuration is backward compatible
* Highlighting the deprecated nature of 'log-format'
* Creates a new file TESTING.rst
* Update kombu and anyjson
* Optionally reject messages on exception
* Add IpFilter, IPNetnsExecFilter and EnvFilter
* Remove useless logging in networks_utils
* Remove the unused plugins framework
* Replace nosetests with testr in tox.ini
* python3: Fix traceback while running python3
* Remove unused zmq relay functionality
* Refactors to_bytes
* Handle relative path arguments in Killfilter
* Don't reconnect to exclusive fanout consumers
* Add a fixture for using of SQLite in-memory DB
* Allow exceptions to hop up cells
* Add can_send_version() to RpcProxy
* Remove explicit distribute depend
* Add slugify to strutils
* Raise a DeprecationWarning when openstack.common.deprecated is imported
* Enable hacking H404 test
* Enable user to configure pool_timeout
* Use param keyword for docstrings
* Add a funcutils file for working with functions
* Use Python 3.x compatible octal literal notation
* Move wsgi module to deprecated package
* Fix workarounds for some values
* Changed processing unique constraint name
* Use Python 3.x compatible except construct
* Add fileutils maintainer
* Added common code into fileutils and strutils
* zmq: remove someone unused code from ZmqClient
* Add common code for fileutils
* Remove the amqp_rpc_single_reply_queue option from Havana
* Enable H306 hacking check
* Rename requires files to standard names
* Fix problem with long messages in Qpid
* Add a slave db handle for the SQLAlchemy backend
* Enable hacking H402 test
* python3: Introduce py33 to tox.ini
* Silence exceptions from qpid connection.close()
* python3: python3 binary/text data compatbility
* Enable hacking H403 test
* Enable hacking H401 test
* MatchMakerStub - make it work & add test
* Enable hacking H201 test
* Fixes email typo in MAINTAINERS

2013.2.b1
---------

* Import oslo.config configuration file generator
* Changed processing unique constraint name
* Use zero-copy in ZeroMQ proxy (zmq-rpc-receiver)
* Remove rootwrap from IPC directory creation
* Add basic lazy gettext implementation
* Ignore backup files in .gitignore
* Reduce duplicated code related to policies
* Add generic serialization support
* Enable hacking H702 localization test
* Enable hacking H703: Multiple positional placeholders
* Specify database group instead of DEFAULT
* Allow RPC_API_NAMESPACE on RpcProxy objects
* Use stubout in test_correlation_id
* Fix tox coverange env
* Use mox object from moxstubout fixture
* Add support for requirements.txt
* Migrate to pbr
* Break out common functionality for filters and weights
* Add hacking extension to flake8
* Support capping message versions in the client
* Extract matchmaker_ring to own module
* Update KillFilter to stop at '\0' for readlink() function
* Add Middleware for correlation_id
* Fixes import order nits
* Add 't', 'y', and `strict` to `bool_from_string`
* Adds --nodeps option to update.py
* Remove the notifier and its dependencies from log.py
* Update eventlet bug URL
* python3: use 'as' syntax for exception assignment
* Removes len() on empty sequence evaluation
* Line wrapper becomes to long when expanded
* Handle ints passed to `boolean_from_string`
* Removes leading zeros on integers in test_timeutils
* Renames filter to base_filter and weight to base_weight
* Add DynamicLoopCall timers to ThreadGroups
* Minor README improvement
* Pass backdoor_port to services being launched
* Stylistic improvements from quantum-rootwrap
* Added convenience APIs for lockutils
* Copy Nova's workaround for RHEL6 eventlet issue
* Convert unicode strings for python3 portability
* Adds timeutils and uuidutils maintainer
* Import trycmd and ssh_execute from nova
* Convert unicode for python3 portability
* Update processutils
* Add test coverage for sqlite regexp function
* Improve python3 compatibility
* I'll maintain periodic_task as well
* Mark myself as a maintainer
* Deprecate log_format and change default to None
* Use optparse for install_venv_common
* Use range rather than xrange
* Ensure that qpid connection is closed
* Do not import openstack.common.log in strutils
* Add support to clear DB
* Proposing Flavio Percoco as maintainer for strutils.py
* oslo logging tries to run chmod on file
* Add a MAINTAINERS file
* Add missing LICENSE file
* Add middleware to limit size of HTTP requests
* Avoid calling sudo in install_venv_common.py
* Add enforcement for foreign key contraints with sqlite
* Use print_function __future__ import
* Revert common logging use in rootwrap
* Improve Python 3.x compatibility
* Removes metadata from ModelBase
* Add rpc method namespace support
* Removes created_at, updated_at from ModelBase
* Fixes private functions private
* Support for lazily instantiated loggers
* Incorrect logging setup - duplicating root handlers
* Optimise to_primitive common cases
* Replaces the standard uuid with common in the context module
* Replaces standard logging with common logging
* Finds dependencies of configured modules for update.py
* Import nova's looping call
* Move bin/ scripts to entrypoints
* Support overriding oslo localedir too
* Add a gettextutils.install() helper function
* Copy recent changes in periodic tasks from nova
* Fix IBM copyright strings
* Fix the co-authored-by processing
* Add PathFilter to rootwrap
* rpc: fix positional args in remote exceptions
* Change qpid_port to IntOpt
* Fix test_write_git_changelog
* Mark sql_connection with secret flag
* Remove deprecated Grizzly features
* Fix default values for Matchmaker IntOpts
* gettextutils: fix translation domain
* Fix problem with setting SSL protocol in QPid
* Update to use flake8
* Remove unused imports
* Include Co-authored-by entries in AUTHORS
* Improves Logging for for rpc method timeouts
* Locking edge case when lock_path does not exist
* lockutils: add a failing unit test
* lockutils: improve the external locks test
* Gracefully handle errors in logging config files
* Enable message envelope
* Remove detailed-errors from setup.cfg
* Adds pylint section in tox.ini to check for unused imports
* clarify --log-file comments
* Removes unused imports in the tests module
* Eliminate multiple contexts in zmq call()
* Allows wsgi server kwargs to be given
* Include PID in default logging_context_format_string
* Move wsgi.Service socket creation into the constructor
* update OpenStack, LLC to OpenStack Foundation

2013.1
------

* Sanitize input before creating IPC socket
* update.py: support one-module-per-line configuration
* Switch to final 1.1.0 oslo.config release
* Initialize root logger in _setup_logging_from_conf()
* Fix locking issues in Windows
* Fix Copyright Headers - Rename LLC to Foundation
* Unignore log_format option
* Stop using --stat for ChangeLog
* Keep exc_info() to prevent an internal error
* Fix inconsistency with auth_tok/auth_token
* Add 'is' operator to extra specs ops
* Don't check exit codes when patching
* Update install_venv_common to use patch -N
* Switch to oslo.config
* Simple code cleanup
* Preserve exceptions in impl_zmq
* support ISO 8601 micro-second precision
* Don't LOG.error on max_depth (by default)
* Don't log a traceback on rpc call timeout
* Add simple in-memory cache from nova
* Redis-based matchmaker
* update.py: DRY up using functools.partial()
* Zmq correct envelope param for notify()
* Zmq notifier topic manip fix
* Port safe parsing with minidom patches from Nova
* Fixes import order nits
* zmq: parse receiver CLI opts in main
* Support qpid unit tests
* Decode / Encode string utils for openstack
* Update flakes.py to match 0.6.1
* openstack.common.setup: fails to get version from git
* AMQP: skip duplicate messages
* Clean up sqlalchemy exception code
* Fix "Needs to specify pyzmq version"

grizzly-3
---------

* Revert "Implement replay detection."
* Revert "Fast serialization of RPC envelopes for Kombu"
* Don't s/oslo/base/ for files in the rpc lib
* readd update.sh to address bootstrapping issue
* Setup exception handler after configuring logging
* Fix IPC direct topic routing
* Avoid using cfg in install_venv_common
* Fast serialization of RPC envelopes for Kombu
* Support RPC envelopes in impl_zmq
* Implement replay detection
* blueprint amqp-rpc-fast-reply-queue
* Move DB thread pooling to DB API loader
* Add ConfigFilter wrapper class
* Make update.py work with oslo.config
* Add function for listing native threads to eventlet backdoor
* Use oslo-config-2013.1b3
* Change the check for the existence of .git directory
* returncode for Popen is valid only after communicate call
* Cleanup imports
* Rename oslo-zmq-receiver to oslo-rpc-zmq-receiver
* Add join_consumer_pool() to RPC connections
* Don't use subprocess for testing excepthook
* Fix "DirectConsumer needs mirrored queue support"
* Fix Lack of reconnecting operation when using rabbitmq mirrored queue
* sort options to make --help output prettier
* to_primitive imposes what seems to be an arbitary data structure depth of 3, but there is at least on case in Nova (Security group Rules) which requires a depth beyond this
* Cleanup docstring and print in install_venv_common
* Support testing args for LocalhostMatchMaker
* Allow running test in uninstalled source tree
* Allow to_primitive to ignore datetimes
* Use importutils.try_import() for MySQLdb
* Fix sorting in test-requires
* Minor tweak to make update.py happy
* Remove pointless use of OpenStackException
* Remove unused context from test_sqlalchemy
* Remove openstack.common.db.common
* Provide creating real unique constraints for columns
* Fix missing wrap_db_error for Session.execute() method
* Fix eventlet/mysql db pooling code
* Add missing DBDuplicateEntry
* Add a fixture for dealing with mock patching
* Add support for directly stringifying VersionInfo
* Update .coveragerc
* Emit a warning if RPC calls made with lock
* Allow tools/install_venv_common.py to be run from within the source directory
* Be explicit about set_default() parameters
* Remove duplicate DB options
* Eliminate gratuitous DB difference vs Nova
* Import sqlalchemy session/models/utils
* Mark password config options with secret
* Update HACKING.rst per recent changes
* Support for ipv6 in wsgi.Service
* Bump eventlet to 0.12.0
* Exchanges should return directed topics
* Only unpack replies on caller
* Use bytes instead of str
* timeutils: considers that now is soon
* Fixes 'not in' operator usage
* Use importutils for matchmaker import
* Implements import_group
* Add _FATAL_EXCEPTION_FORMAT_ERRORS global
* Fix PEP8 error in oslo-rootwrap
* Add tests for setup
* Support for SSL in wsgi.Service
* Default lockutils to using a tempdir
* Add TTL to AMQP messages
* Only import modules in tools/flakes
* Update copyright on install_venv_common.py
* Dict args safe processing
* Fix Pep8 Warning
* rootwrap: Avoid PEP8 errors on name replacement
* Fix MonekyPatch typo in test_qpid
* Fixes "is not", "not in" syntax usage
* setup: count revs for revno if there are no tags
* Support running uninstalled in a tarball dir
* Add install_venv library
* Document tools/flakes is from commons
* Prevent parallel test port clashes for zmq
* Replace direct use of testtools BaseTestCase
* Remove the last of the nose-isms
* Replaced direct usage of stubout with BaseTestCase
* Fix up test_qpid to use BaseTestCase
* Use testtools as test base class
* Start adding reusable test fixtures
* Import timeutils.is_soon from keystoneclient
* Allow update.py to copy tools
* UTC ISO8601 from timestamp
* Move logging config options into the log module
* Remove unused etc/openstack-common.conf.test
* Enable ZeroMQ tests
* Use revno and git sha for pre-release versioning
* Add env var version override for packagers
* Require greenlet 0.3.2 (or later)
* trivial pep whitespace fix
* Fixes import order errors
* Remove write_requirements
* Stop using no longer valid -E option for pip
* ThreadGroup remove unused name parameters
* use regexp to parse the mailmap
* Fixes an import order nit
* Make tox run doctests
* Allow rpc drivers to always be imported
* Rework zmq setup and cleanup
* Implement importutils.try_import
* Add missing parameter to impl_fake notify function
* Don't include versioninfo in manifest
* Fix zmq socket.close() with eventlet 0.9.17
* reusable ZmqProxy service initialization
* Verbose should not enable debug level logging
* Fix pep8 E125 errors
* Simplify version processing
* zmq-receiver msg forwarding in greenthreads
* Address test_zmq setup/teardown races
* call() to accept serialize and force_envelope
* Log when release file lock
* Improve millisecond logging

grizzly-2
---------

* Revert "Support lookup of value using "group.key""
* rpc method arguments should be dict, not list
* Add zmq receiver binary
* Fix serialization in impl_zmq
* Upgrade WebOb to 1.2.3
* Make WebOb version specification more flexible
* Eliminate sleep in the lockutils test case (across processes)
* Add a latex command to our sphinx builders
* Use basestring instead of str for type check
* Make time comparison functions accept strings
* Disable lockutils test_synchronized_externally
* Add common base weigher/weigher handler for filter scheduler
* Add common filter/filter handler for filter scheduler
* Use package for writing versioninfo
* Enable millisecond logging by default
* Sanitize cells calls
* Fix timezone handling in timeutils tests
* Optionally add message envelope to notifications
* JSONDictSerializer encode objects to unicode
* Fix publish_errors unit test
* Ensure proxy callback threads exit during tests
* Fix test cases in tests.unit.test_service
* Support lookup of value using "group.key"
* Add a rpc envelope format version number
* Don't rely on os.wait() blocking
* Don't use exclusive queues for fanout and direct
* Close kombu.connection.BrokerConnection correctly
* Fix debug message in multicall of rpc.amqp
* fix intermittent failures with deferred version test
* Allow update.py copy config files and binaries
* Move rootwrap code to openstack.common
* Register the control_exchange RPC option
* Make wsgi.Server comply with service.Launcher interface
* Add deprecated --logdir common opt
* Allow exceptions to pass over RPC silently
* Add deprecated --logfile common opt
* Allow nova and others to override some logging defaults
* Change Exception MissingArgs's string
* Fixing the trim for ListOp when reading from config file
* Fix qpid cast_to_server regression
* Allow remote stdlib exceptions to be deserialized
* Fix broken --version command
* Fix import order in openstack/common/lockutils.py
* Fixing modulename so eventlet will log properly
* Fix set_default() with boolean CLI options
* Fixes update.py issue with EOL style on Windows
* Use json instead of jsonutils in rpc.impl_fake
* Rename utils.py to strutils.py
* Fixes import nit in test_zmq
* Add a CLI argument validation utility
* Improve cfg's argparse sub-parsers support
* Use Service thread group for WSGI request handling
* Qpid H/A cluster support
* Provide i18n to those messages without _()
* Make project pyflakes clean
* Replace try: import with extras.try_import
* Fixes import order
* Fix regression with cfg CLI arguments
* Fix common rpc to use common logging instead of python logging
* Fix ListOpt to trim whitespace
* Add another duplicate opt test case
* Hide the GroupAttr conf and group attributes
* Fix broken --help with CommonConfigOpts
* Fixup update.py after argparse breakage
* raise_on_error parameter shouldn't be passed to task function
* Remove sitepackages=True from tox.ini
* Account for tasks duration in LoopingCall delay
* Convenience wrapper for datetime.timedelta.total_seconds()
* updating sphinx documentation
* Fix update.py string interpolation
* Don't reference argparse._StoreAction
* Fix minor coding style issue
* update deprecated stanza
* 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
* Enable eventlet_backdoor to return port
* Adjust the logging_context_format_string
* Added initialize_service_hook for rpc.Service
* Fix the log test so it uses the available context fields
* Use the ThreadGroup for the Launcher
* Change RPC cleanup ordering
* threadgroup : greethread.cancel() should be kill()
* Correcting openstack-common mv to oslo-incubator
* Update .gitreview for oslo
* Add generate_uuid to uuidutils
* Clean up dictionary use in RPC drivers
* Fix QPID reconnect issues
* Rename rabbit_notifier to rpc_notifier
* Remove unused imports from rpc test_common
* Tweak rpc.queue_get_for to deal with host=None
* Restore proper LoggerTestCase
* Remove openstack.common.config and extensions
* Remove unused greenthread import in lockutils
* Use spawn_n when not capturing return value
* Fixes setup compatibility issue on Windows
* Make ThreadGroup derived from object to make mocking possible
* Creates uuidutils module
* kombu's fanout_cast_to_server was calling wrong method
* Move utils.execute to its own module
* Relax the update.py replace regex
* Don't log exceptions for GreenletExit and thread_done
* Log CONF from ProcessLauncher.wait, like ServiceLauncher
* Add a missing comma in a docstring
* move nova.common.deprecated to openstack-common
* Removes redundant string cast
* Add setup.py for registering namespace package
* Import order clean-up
* Fix a logic error in stable version calculation
* cfg: fix required if option has a dash
* Use queue_arguments for fanout consumers too
* Fix missing import in lockutils
* Move nova's util.synchronized decorator to openstack common
* Fix a couple of file handle leaks, using with statements
* Fix WSGI Service init's call to incorrect super method
* Use self.config in test_zmq
* Revert "Add support for finer-grained policy decisions"
* Revert "fanout subscriptions in impl_zmq"
* Revert "Support declare_topic_consumer in impl_zmq"
* Remove an unneeded 'global'
* Add support for finer-grained policy decisions
* Add a 'not' operator to the policy langage
* Add a new policy language
* Remove deprecated policy engine APIs
* Rewrite the policy engine from scratch
* Added is_newer_than function
* Added a missing `cfg` import in service.py
* Fix missing import of `rpc.dispatcher` in `rpc.service`
* Change wsgi Server class to Service
* Limit pep8 checks to our source
* .gitignore updates for generated files
* Ignore the stackforge jenkins email address
* Add exchange_name parameter to TopicConsumer
* Extracted parse_host_port into network_utils
* Log config on startup
* Integrate eventlet backdoor
* Add the rpc service and delete manager
* LOG.exception() should only be used in exception handler
* DRY up mirrored Rabbit queue declaration
* Don't deprecate rabbit_host and rabbit_port
* Support for several HA RabbitMQ servers
* Support declare_topic_consumer in impl_zmq
* fanout subscriptions in impl_zmq
* Change the qpid_heartbeat default to 60 seconds
* Normalize_time() always return naive object
* Use pep8 v1.3.3
* Added a method for parsing host:port pairs
* Make projects define 'control_exchange'
* Improve logging of process id
* Add cinder to allowed_rpc_exception_modules
* Code cleanup
* Update zmq context cleanup to use term
* Fix PEP8 issues
* Regarding the mispelling of the Noble Narwhal
* Add nosehtmloutput as a test dependency
* Allow non-string items in the creds dict
* Add threadgroup to manage timers and greenthreads
* Add basic periodic task infrastructure
* Add multiprocess service launcher
* Add signal handling to service launcher
* Don't trap then re-raise ImportError
* Fix spelling typos
* Remove unused imports
* Remove register_opts from client methods
* Basic service launching infrastructure
* Move manager.py and service.py into common
* Remove amqp import from rpc/test_common
* cfg: clean up None value handling
* Allow set_default and set_override to use None
* Tilde expansion for --config-file and --config-dir
* Support for marshalling datetime while preserving microseconds
* Rename FLAGS to CONF; Remove self.conf
* Fix meaningless test case
* Add multiple-driver support to the notifier api
* Copy eventlet_backdoor into common from nova
* Fix errors reported by pyflakes
* Make receiver spawning in impl_zmq more robust/clean
* Reduce test_zmq's reponse timeout
* Remove bogus conf argument from create_consumer()
* Install a qualified except hook
* Remove code to clear basicConfig root log handlers
* Add import_opt() method to ConfigOpts
* Copy LoopingCall from nova for service.py
* Use function registration for policy checks
* fix the qpid_heartbeat option so that it's effective
* don't throw exceptions if %(color)s tag is used
* Remove unused imports
* Remove unnecessary register_opts from test_zmq
* Modifies _is_opt_registered fcn to check for duplicate opts
* Enable fanout_cast and fanout_cast_to_server to provide topic
* Make test_zmq bind/send to 127.0.0.1
* Use BaseTestCase for all tests which override config
* Add missing convert_instances arg
* Track to_primitive() depth after iteritems()
* Update iteritems test case to actually test iteritems
* fix bug lp:1019348,update openstack-common to support pep8 1.3
* Add test-options from Nova /w pyzmq
* cfg: allow empty config values
* Don't switch to list_notifier unless necessary
* Use strtime() in to_primitive() for datetime objs
* Add additional usage info on rpc_zmq_host flag
* Restore register_opts on impl_zmq module load
* Fix typo made in 372d11e990
* Exclude .egg files from pep8 checks
* Fix import order of gettextutils in amqp.py
* Add more rpc version docs
* Add SKIP_GENERATE_AUTHORS option to setup.py
* Add SKIP_WRITE_GIT_CHANGELOG option to setup.py
* Fix missing gettextutils in several modules
* Fix line length for pep8 compliance after cloning into other projects
* Rework the version consumer functionality
* Fix Zmq so it doesn't rely on nova flags
* Fix up pre-versioning based on testing in glance
* Add a new module for use in consuming versioninfo
* Minor pep8 cleanup in rpc
* pep8 cleanup in the plugin code
* Add common plugin framework
* cfg: Fix typo in documentation
* Move get_context_from_function_and_args() to context.py
* Switch common files to using jsonutils
* Fix up openstack-common build
* Fix import order
* Add update.sh to avoid import conflicts
* Enable sitepackages in tox
* Fix mailmap
* Fix missing RPCException from raise
* Update strings like 'openstack.common.notifier.driver'
* Pass in stream as positional argument to StreamHandler
* Split read_versioninfo into a method
* Add 'filedecoder' method to the jsonutils wrapper module
* Update tox.ini
* Add common logging and notification
* Add support for tag based versioning
* Add missing gettextutils imports
* Avoid erroneous "Unsupported RPC Version" message if method is missing
* Added dictify() and uuids to the common request context
* Added a base class for unit tests
* Call exception on the logger, not the logging module
* Adds HACKING.rst to the tarball
* Skip argparse when injecting requirements
* Fix import usage in AMQP for rpc.common
* Improve exception from importutils.import_class()
* Update common code to support pep 1.3. bug 1014216
* add import_object_ns function
* Add autodoc generation to the build_sphinx command
* Fix nova.rpc references in comments
* rpc: Update rpc_backend handling
* Add missing ack to impl_qpid
* add more realistic unit tests for importutils
* Get update.py to be able to copy rpc
* Add impl_zmq to rpc
* Fix utcnow_ts to return UTC timestamp
* Use 'is not None' instead of '!= None'
* Make jsonutils.dumps more general
* Handle xmlrpclib.DateTime types when serializing to JSON
* Fix RPC tests to not use assertIn
* Fix a pep8 error
* Move testing dependencies to test-requires
* Adds support for bol and eol spaces to ini files
* Add support to include config aliases
* Add rpc to openstack-common
* Revert "Add a load function wrapper to jsonutils"
* Add gettext support
* Add nova time util functions to timeutils
* Replace datetime.utcnow with timeutils.utcnow
* Create testutils with skip decorators
* Common-ize policies
* Fix pep8 errors
* Add a load function wrapper to jsonutils
* 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)
* Run pep8 on tests
* Create openstack.common.jsonutils
* Alphabetize imports in openstack/common/cfg.py
* Remove unused imports
* Tests to cover various mailmap formats
* 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
* Remove common.exception from common.importutils
* Add save_and_reraise_exception()
* New ConfigOpts.find_file() for locating conf files
* Handle authors existed before VCS was around
* Support for directory source of config files
* Update exception from importutils.import_class()
* Fix ordering in HACKING.rst
* 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
* Create openstack/common/__init__.py
* Use absolute import for iniparser
* Add generic PasteDeploy app and filter factories
* Make 'yes' also a true boolean
* Added a universal style-guide for all OS projects
* Finish implementing MultiStrOpt
* Avoid leaking secrets into config logging
* Add auth_str_equal() to common utils
* Add greenthread local storage model from nova
* Fix bug 954488
* Import cfg module directly if not in path
* fix restructuredtext formatting in docstrings
* Add ConfigOpts.print_help()
* Promote more complete support for ISO 8601 time
* cfg: fix a small comment typo
* cfg: unneeded multiple inheritance
* PEP8 cleanup (openstack-common)
* Backslash continuations (misc.)
* Disable ConfigParser interpolation (lp#930270)
* Add git changelog method
* Use default values for requirements parsing
* Add git vcsversion method
* fix namespace declaration
* 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
* Re-factor update.py to avoid breaking tests
* Add a script to copy code into other projects
* Pull openstack.nose_plugin from pypi
* Add cfg test case for recursive substitution
* Add support to cfg for disabling interspersed args
* Get cfg test cases to 100%
* Add cfg test case for exceptions' __str__ methods
* Fix some cfg test case naming conflicts
* Add new cfg module
* Updated README with instructions
* Removed run_tests.sh in favor of tox
* Added .gitreview file
* Added tissue support back in
* make sure a '_' function is availible for nose
* Use nose and tox
* Added pip-requires and tox.ini to run tests
* add some server tests
* moar utils tests
* import should not return an instance of the class
* add utils test
* use isinstance and types.*
* add context middleware tests
* add more coverage to test_extensions
* add exceptions test coverage
* add context 'tests'
* add more config tests
* make fix_path a real function so it can be mock'd
* remove unused imports
* mox isn't used anywhere, but I will be using mock
* Only list requirements in the setup.py like it should be
* Add default nosetests config
* Rename setup_extensions_test_app so that nosetests ignores it
* ignore cover's html directory
* don't tag rev
* add __init__.py so tests run, remove bin and skeleton from pep8
* remove bzr requirement
* remove the version requirement on mox
* put requires in setup.py so when package gets included as a requirement, the requirements follow along
* merge in upstream
* Edited README via GitHub
* port execute and utcnow functions from nova
* update setup.py to only have common requires
* remove paste templates from common
* Add readme to make github happy and the manifest so the templates get installed
* add Paste* requirements
* fake out the options needed and allout output to specific dir
* add the openstack paster command to spit out the template
* use the project variable in the README
* update the setup.py template
* make version.py a template
* pull parse_mailmap str_dict_replace from nova
* add openstack templates
* use package.upper
* make the skeleton project a template
* add paste directory
* make naming consistant
* reog from import merge
* add the license header
* initial commit
* Rajaram/Vinkesh|increased tests for Request and Response serializers
* Rajaram/Vinkesh|added config test file from glance
* 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/Vinkesh|Added nova's serializaiton classes into common
* Vinkesh/Rajaram|Added scripts to run tests from nova
* Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback
* Rajaram|renamed AppBaseException to OpenstackException and app_config_dir_name to config_dir as per jaypipes' feedback
* Rajaram/Vinkesh| restructured wsgi.resource to allow inheriting classes to override serialization, deserialization and action execution
* Rajaram/Vinkesh| restructured wsgi.resource to allow inheriting classes to override serialization, deserialization and action execution
* Rajaram/Vinkesh | Removed references to Glance in code
* Rajaram/Vinkesh | Removed references to Glance in code
* Vinkesh/Rajaram|fixed setup.py and made openstack a module with a __init__.py file
* Vinkesh/Rajaram|fixed setup.py and made openstack a module with a __init__.py file
* Adding syslog support
* Adding syslog support
* Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary
* Add some more generic middleware, request context, utils, and versioning. Add basic template for server binary
* Add setup.py/cfg and README
* Initial skeleton project
* Initial skeleton project
