CHANGES
=======

0.3.0
-----

* Add external lock fixture
* Add a TODO for retrying pull request #20
* Allow the lock delay to be provided
* Allow for providing a customized semaphore container
* Move locale files to proper place
* Flesh out the README
* Move out of the oslo namespace package
* Improve testing in py3 environment
* Only modify autoindex.rst if it exists
* Imported Translations from Transifex
* lockutils-wrapper cleanup
* Don't use variables that aren't initialized

0.2.0
-----

* Imported Translations from Transifex
* Use six.wraps
* Clean up lockutils logging
* Remove unused incubator modules
* Improve lock_path help and documentation
* Add pbr to installation requirements

0.1.0
-----

* Updated from global requirements
* Imported Translations from Transifex
* Updated from global requirements
* Updated from global requirements
* Remove extraneous vim editor configuration comments
* Add deprecated name test case
* Make lock_wrapper private
* Support building wheels (PEP-427)
* Handle Python 3's O_CLOEXEC default
* Remove hard dep on eventlet
* Test with both vanilla and eventlet stdlib
* Imported Translations from Transifex
* Fix coverage testing
* Clean up doc header
* Use ConfigFilter for opts
* Make lockutils main() a console entry point
* Expose lockutils opts to config generator
* Add hacking import exception for i18n
* Imported Translations from Transifex
* provide sane cmd exit reporting
* Imported Translations from Transifex
* Add lock_path as param to remove_external function
* Updated from global requirements
* Cleanup and adding timing to lockutils logging
* Imported Translations from Transifex
* Remove oslo-incubator fixture
* Break up the logging around the lockfile release/unlock
* Always log the releasing, even under failure
* Clarify logging in lockutils
* Imported Translations from Transifex
* Address race in file locking tests
* Updated from global requirements
* Imported Translations from Transifex
* Updated from global requirements
* Handle a failure on communicate()
* Imported Translations from Transifex
* Add code/api documentation
* Add history file to documentation
* Update contributing instructions
* Work toward Python 3.4 support and testing
* warn against sorting requirements
* Log stdout, stderr and command on execute() error
* Mask passwords in exceptions and error messages
* Imported Translations from Transifex
* Address some potential security issues in lockutils
* Use file locks by default again
* Switch to oslo.i18n in our code
* Imported Translations from Transifex
* Switch to oslo.utils in our code
* Mask passwords in exceptions and error messages
* Initial translation setup
* Fix docs generation
* Make all tests pass
* exported from oslo-incubator by graduate.sh
* Remove oslo.log from lockutils
* lockutils: split tests and run in Python 3
* Fix exception message in openstack.common.processutils.execute
* Allow test_lockutils to run in isolation
* Remove `processutils` dependency on `log`
* Don't import fcntl on Windows
* Fix broken formatting of processutils.execute log statement
* Move nova.utils.cpu_count() to processutils module
* pep8: fixed multiple violations
* fixed typos found by RETF rules
* Mask passwords that are included in commands
* Improve help strings
* Remove str() from LOG.* and exceptions
* Fixed several typos
* Emit a log statement when releasing internal lock
* Allow passing environment variables to execute()
* Use oslotest instead of common test module
* Remove rendundant parentheses of cfg help strings
* Allow external locks to work with threads
* Re-enable file-based locking behavior
* Use Posix IPC in lockutils
* Update log translation domains
* Update oslo log messages with translation domains
* Move the released file lock to the successful path
* Add remove external lock files API in lockutils
* Catch OSError in processutils
* Use threading.ThreadError instead of reraising IOError
* Have the interprocess lock follow lock conventions
* lockutils: move directory creation in lock class
* lockutils: remove lock_path parameter
* lockutils: expand add_prefix
* lockutils: remove local usage
* lockutils: do not grab the lock in creators
* Remove unused variables
* Utilizes assertIsNone and assertIsNotNone
* Fix i18n problem in processutils module
* lockutils: split code handling internal/external lock
* lockutils: fix testcase wrt Semaphore
* Use hacking import_exceptions for gettextutils._
* Correct invalid docstrings
* Fix violations of H302:import only modules
* Fixed misspellings of common words
* Trivial: Make vertical white space after license header consistent
* Unify different names between Python2/3 with six.moves
* Remove vim header
* Use six.text_type instead of unicode function in tests
* Adjust import order according to PEP8 imports rule
* fix lockutils.lock() to make it thread-safe
* Add main() to lockutils that creates temp dir for locks
* Allow lockutils to get lock_path conf from envvar
* Correct execute() to check 0 in check_exit_code
* Replace assertEquals with assertEqual
* Move LockFixture into a fixtures module
* Fix to properly log when we release a semaphore
* Add LockFixture to lockutils
* Modify lockutils.py due to dispose of eventlet
* Replace using tests.utils part2
* Fix processutils.execute errors on windows
* Bump hacking to 0.7.0
* Replace using tests.utils with openstack.common.test
* Allow passing a logging level to processutils.execute
* BaseException.message is deprecated since Python 2.6
* Fix locking bug
* Move synchronized body to a first-class function
* Make lock_file_prefix optional
* Enable H302 hacking check
* Enable hacking H404 test
* Use param keyword for docstrings
* Use Python 3.x compatible octal literal notation
* Use Python 3.x compatible except construct
* Enable hacking H402 test
* python3: python3 binary/text data compatbility
* Removes len() on empty sequence evaluation
* Added convenience APIs for lockutils
* Import trycmd and ssh_execute from nova
* Update processutils
* Use print_function __future__ import
* Improve Python 3.x compatibility
* Replaces standard logging with common logging
* Locking edge case when lock_path does not exist
* lockutils: add a failing unit test
* lockutils: improve the external locks test
* Removes unused imports in the tests module
* Fix locking issues in Windows
* Fix Copyright Headers - Rename LLC to Foundation
* Use oslo-config-2013.1b3
* Emit a warning if RPC calls made with lock
* Default lockutils to using a tempdir
* Replace direct use of testtools BaseTestCase
* Use testtools as test base class
* Start adding reusable test fixtures
* Fixes import order errors
* Log when release file lock
* Eliminate sleep in the lockutils test case (across processes)
* Disable lockutils test_synchronized_externally
* Fix import order in openstack/common/lockutils.py
* Make project pyflakes clean
* updating sphinx documentation
* Remove unused greenthread import in lockutils
* Move utils.execute to its own module
* Fix missing import in lockutils
* Move nova's util.synchronized decorator to openstack common
