Version 2.0.5
=============

:Released: 2015-02-02
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Refine compatibility of exceptions for file operations.
* Specify the text encoding when opening the changelog file.


Version 2.0.4
=============

:Released: 2015-01-23
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Record version info via Setuptools commands.
* Remove the custom Setuptools entry points.
  This closes Alioth bug#314948.


Version 2.0.3
=============

:Released: 2015-01-14
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Break circular import dependency for ‘setup.py’.
* Refactor all initial metadata functionality to ‘daemon._metadata’.
* Distribute ‘version’ (and its tests) only in source, not install.
* Build a “universal” (Python 2 and Python 3) wheel.


Version 2.0.2
=============

:Released: 2015-01-13
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Declare test-time dependency on recent ‘unittest2’.
* Declare packaging-time dependency on ‘docutils’ library.
* Include unit tests for ‘version’ module with source distribution.
* Record version info consistent with distribution metadata.


Version 2.0.1
=============

:Released: 2015-01-11
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Include the ‘version’ module with source distribution.


Version 2.0
===========

:Released: 2015-01-10
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Support both Python 3 (version 3.2 or later) and Python 2 (version
  2.7 or later).
* Document the API of all functions comprehensively in docstrings.
* Add a hacking guide for developers.
* Add explicit credit for contributors.
* Document the security impact of the default umask.

* Specify explicit text or binary mode when opening files.
* Preserve exception context in custom exceptions.

* Declare compatibility with current Python versions.
* Depend on Python 3 compatible libraries.
* Update package homepage to Alioth hosted project page.
* Use ‘pydoc.splitdoc’ to get package description text.
* Remove ASCII translation of package description, not needed now the
  docstring is a proper Unicode text value.
* Include test suite with source distribution.
* Move package metadata to ‘daemon/_metadata.py’.
* Migrate to JSON (instead of Python) for serialised version info.
* Add unit tests for metadata.
* Store and retrieve version info in Setuptools metadata.

* Migrate to ‘str.format’ for interpolation of values into text.
* Migrate to ‘mock’ library for mock objects in tests.
* Migrate to ‘testscenarios’ library for unit test scenarios.
* Migrate to ‘unittest2’ library for back-ported improvements.
  Remove custom test suite creation.
* Discriminate Python 2-and-3 compatible usage of dict methods.
* Discriminate Python 2-and-3 compatible bytes versus text.
* Declare explicit absolute and relative imports.
* Discriminate between different ‘fileno’ method behaviours.
  In Python 3, ‘StringIO.fileno’ is callable but raises an exception.
* Migrate to built-in ‘next’ function.
* Wrap the ‘fromlist’ parameter of ‘__import__’ for Python 3
  compatibility.
* Wrap function introspection for Python 3 compatibility.
* Wrap standard library imports where names changed in Python 3.


Version 1.6.1
=============

:Released: 2014-08-04
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Use unambiguous “except FooType as foo” syntax.
  This is to ease the port to Python 3, where the ambiguous comma
  usage is an error.
* Ensure a ‘basestring’ name bound to the base type for strings.
  This is to allow checks to work on Python 2 and 3.
* Specify versions of Python supported, as trove classifiers.

* Update copyright notices.
* Add editor hints for most files.
* Distinguish continuation-line indentation versus block indentation.

* Use unicode literals by default, specifying bytes where necessary.
  This is to ease the port to Python 3, where the default string type
  is unicode.
* Update copyright notices.
* Update the GPL license file to version 3, as declared in our
  copyright notices.

* Change license of library code to Apache License 2.0. Rationale at
  <URL:http://wiki.python.org/moin/PythonSoftwareFoundationLicenseFaq#Contributing_Code_to_Python>.


Version 1.6
===========

:Released: 2010-05-10
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Use absolute imports to disambiguate provenance of names.
* setup.py: Require ‘lockfile >=0.9’.
* daemon/pidfile.py: Renamed from ‘daemon/pidlockfile.py’. Change
  references elsewhere to use this new name.
* test/test_pidfile.py: Renamed from ‘test/test_pidlockfile.py’.
  Change references elsewhere to use this new name.
* daemon/pidfile.py: Remove functionality now migrated to ‘lockfile’
  library.

* FAQ: Add some entries and re-structure the document.

* Use ‘unicode’ data type for all text values.
* Prepare for Python 3 upgrade by tweaking some names and imports.

* MANIFEST.in: Include the documentation in the distribution.


Version 1.5.5
=============

:Released: 2010-03-02
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Stop using ‘pkg_resources’ and revert to pre-1.5.3 version-string
  handling, until a better way that doesn't break everyone else's
  installation can be found.


Version 1.5.4
=============

:Released: 2010-02-27
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* MANIFEST.in: Explicitly include version data file, otherwise
  everything breaks for users of the sdist.


Version 1.5.3
=============

:Released: 2010-02-26
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* daemon/daemon.py: Invoke the pidfile context manager's ‘__exit__’
  method with the correct arguments (as per
  <URL:http://docs.python.org/library/stdtypes.html#typecontextmanager>).
  Thanks to Ludvig Ericson for the bug report.
* version: New plain-text data file to store project version string.
* setup.py: Read version string from data file.
* daemon/version/__init__.py: Query version string with ‘pkg_resources’.

* Add ‘pylint’ configuration for this project.
* Update copyright notices.


Version 1.5.2
=============

:Released: 2009-10-24
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Ensure we only prevent core dumps if ‘prevent_core’ is true.
  Thanks to Denis Bilenko for reporting the lacking implementation of
  this documented option.

* Add initial Frequently Asked Questions document.


Version 1.5.1
=============

:Released: 2009-09-26
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Make a separate collection of DaemonRunner test scenarios.
* Handle a start request with a timeout on the PID file lock acquire.

* Implement ‘TimeoutPIDLockFile’ to specify a timeout in advance of
  lock acquisition.
* Use lock with timeout for ‘DaemonRunner’.


Version 1.5
===========

:Released: 2009-09-24
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Make a separate collection of PIDLockFile test scenarios.

* Raise specific errors on ‘DaemonRunner’ failures.
* Distinguish different conditions on reading and parsing PID file.
* Refactor code to ‘_terminate_daemon_process’ method.
* Improve explanations in comments and docstrings.
* Don't set pidfile at all if no path specified to constructor.
* Write the PID file using correct OS locking and permissions.
* Close the PID file after writing.
* Implement ‘PIDLockFile’ as subclass of ‘lockfile.LinkFileLock’.
* Remove redundant checks for file existence.

* Manage the excluded file descriptors as a set (not a list).
* Only inspect the file descriptor of streams if they actually have
  one (via a ‘fileno’ method) when determining which file descriptors
  to close. Thanks to Ask Solem for revealing this bug.


Version 1.4.8
=============

:Released: 2009-09-17
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Remove child-exit signal (‘SIGCLD’, ‘SIGCHLD’) from default signal
  map. Thanks to Joel Martin for pinpointing this issue.
* Document requirement for ensuring any operating-system specific
  signal handlers are considered.
* Refactor ‘fork_then_exit_parent’ functionality to avoid duplicate
  code.
* Remove redundant imports.
* Remove unused code from unit test suite scaffold.
* Add specific license terms for unit test suite scaffold.


Version 1.4.7
=============

:Released: 2009-09-03
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Fix keywords argument for distribution setup.
* Exclude ‘test’ package from distribution installation.


Version 1.4.6
=============

:Released: 2009-06-21
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Update documentation for changes from latest PEP 3143 revision.
* Implement DaemonContext.is_open method.


Version 1.4.5
=============

:Released: 2009-05-17
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Register DaemonContext.close method for atexit processing.
* Move PID file cleanup to close method.
* Improve docstrings by reference to, and copy from, PEP 3143.
* Use mock checking capabilities of newer ‘MiniMock’ library.
* Automate building a versioned distribution tarball.
* Include developer documentation files in source distribution.


Version 1.4.4
=============

:Released: 2009-03-26
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Conform to current PEP version, now released as PEP 3143 “Standard
  daemon process library”.
* Ensure UID and GID are set in correct order.
* Delay closing all open files until just before re-binding standard
  streams.
* Redirect standard streams to null device by default.


Version 1.4.3
=============

:Released: 2009-03-19
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Close the PID file context on exit.


Version 1.4.2
=============

:Released: 2009-03-18
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Context manager methods for DaemonContext.


Version 1.4.1
=============

:Released: 2009-03-18
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Improvements to docstrings.
* Further conformance with draft PEP.


Version 1.4
===========

:Released: 2009-03-17
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Implement the interface from a draft PEP for process daemonisation.
* Complete statement coverage from unit test suite.


Version 1.3
===========

:Released: 2009-03-12
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Separate controller (now ‘DaemonRunner’) from daemon process
  context (now ‘DaemonContext’).
* Fix many corner cases and bugs.
* Huge increase in unit test suite.


Version 1.2
===========

:Released: 2009-01-27
:Maintainer: Ben Finney <ben+python@benfinney.id.au>

* Initial release of this project forked from ‘bda.daemon’. Thanks,
  Robert Niederreiter.
* Refactor some functionality out to helper functions.
* Begin unit test suite.


..
    This is free software: you may copy, modify, and/or distribute this work
    under the terms of the Apache License version 2.0 as published by the
    Apache Software Foundation.
    No warranty expressed or implied. See the file ‘LICENSE.ASF-2’ for details.

..
    Local variables:
    coding: utf-8
    mode: text
    mode: rst
    End:
    vim: fileencoding=utf-8 filetype=rst :
