This document is the `change log`_ for this distribution. It is a record of all notable changes in each version released. Version strings conform to the `Semantic Versioning`_ specification, `version 2.0.0 <http://semver.org/spec/v2.0.0.html>`__. .. _change log: http://keepachangelog.com/ .. _Semantic Versioning: https://semver.org/ Version 2.1.2 ============= :Released: 2016-10-26 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Add a README document for the code base. Changes: * Migrate code project hosting to Pagure. Record the change of homepage URL in PyPI metadata. * Raise a warning that the ârunnerâ module is pending deprecation. This has been an unofficial example module from the beginning, and it will be removed in a future version. Bug Fixes: * Ensure custom types are part of the Python type hierarchy. * Avoid a circular dependency for the version string at install time. Thanks to Maarten van Gompel for the reproducible test case. Version 2.1.1 ============= :Released: 2016-01-30 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Bug Fixes: * Default âinitgroupsâ option to False. Using âos.initgroupsâ requires permission to set process GID, so this now needs to be explicitly requested. Version 2.1.0 ============= :Released: 2015-11-26 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Add a DaemonContext option, âinitgroupsâ, which specifies whether to set the daemon process's supplementary groups. * Set the process groups using âos.initgroupsâ. Thanks to Malcolm Purvis for contributing an implementation of this feature. Version 2.0.6 ============= :Released: 2015-08-30 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Changes: * Lower dependency for âunittest2â, we can work with an earlier version. * Specify development status âProduction/Stableâ in Trove classifiers. * Migrate to âmockâ version 1.3 with corresponding API changes. Bug Fixes: * Use current Python concept of âbasestringâ to test for an attribute name. Thanks to Arthur de Jong for the bug report. Version 2.0.5 ============= :Released: 2015-02-02 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Bug Fixes: * 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> Changes: * Record version info via Setuptools commands. Removals: * 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> Changes: * Refactor all initial metadata functionality to âdaemon._metadataâ. * Build a âuniversalâ (Python 2 and Python 3) wheel. Removals: * Distribute âversionâ (and its tests) only in source, not install. Bug Fixes: * Break circular import dependency for âsetup.pyâ. Version 2.0.2 ============= :Released: 2015-01-13 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Include unit tests for âversionâ module with source distribution. * Record version info consistent with distribution metadata. Bug Fixes: * Declare test-time dependency on recent âunittest2â. * Declare packaging-time dependency on âdocutilsâ library. Version 2.0.1 ============= :Released: 2015-01-11 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Bug Fixes: * Include the âversionâ module with source distribution. Version 2.0 =========== :Released: 2015-01-10 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * 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. * Use âpydoc.splitdocâ to get package description text. * Include test suite with source distribution. * Add unit tests for metadata. * Store and retrieve version info in Setuptools metadata. Changes: * Depend on Python 3 compatible libraries. * Update package homepage to Alioth hosted project page. * 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. * 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. * Move package metadata to âdaemon/_metadata.pyâ. * Migrate to JSON (instead of Python) for serialised version info. Removals: * Remove ASCII translation of package description, not needed now the docstring is a proper Unicode text value. * Remove custom test suite creation. Version 1.6.1 ============= :Released: 2014-08-04 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Add editor hints for most files. Changes: * 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>. Bug Fixes: * 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. Version 1.6 =========== :Released: 2010-05-10 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * FAQ: Add some entries and re-structure the document. * MANIFEST.in: Include the documentation in the distribution. Changes: * Use absolute imports to disambiguate provenance of names. * setup.py: Require âlockfile >=0.9â. * Use âunicodeâ data type for all text values. * Prepare for Python 3 upgrade by tweaking some names and imports. Removals: * 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. Version 1.5.5 ============= :Released: 2010-03-02 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Bug Fixes: * 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> Bug Fixes: * 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> Additions: * version: New plain-text data file to store project version string. * Add âpylintâ configuration for this project. Changes: * setup.py: Read version string from data file. * daemon/version/__init__.py: Query version string with âpkg_resourcesâ. * Update copyright notices. Bug Fixes: * 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 1.5.2 ============= :Released: 2009-10-24 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Add initial Frequently Asked Questions document. Bug Fixes: * Ensure we only prevent core dumps if âprevent_coreâ is true. Thanks to Denis Bilenko for reporting the lacking implementation of this documented option. Version 1.5.1 ============= :Released: 2009-09-26 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * 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> Additions: * Make a separate collection of PIDLockFile test scenarios. Changes: * 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. * Implement âPIDLockFileâ as subclass of âlockfile.LinkFileLockâ. * Remove redundant checks for file existence. * Manage the excluded file descriptors as a set (not a list). Bug Fixes: * Raise specific errors on âDaemonRunnerâ failures. * Distinguish different conditions on reading and parsing PID file. * Write the PID file using correct OS locking and permissions. * Close the PID file after writing. * 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> Additions: * Document requirement for ensuring any operating-system specific signal handlers are considered. * Add specific license terms for unit test suite scaffold. Changes: * Refactor âfork_then_exit_parentâ functionality to avoid duplicate code. Removals: * Remove redundant imports. * Remove unused code from unit test suite scaffold. Bug Fixes: * Remove child-exit signal (âSIGCLDâ, âSIGCHLDâ) from default signal map. Thanks to Joel Martin for pinpointing this issue. Version 1.4.7 ============= :Released: 2009-09-03 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Removals: * Exclude âtestâ package from distribution installation. Bug Fixes: * Fix keywords argument for distribution setup. Version 1.4.6 ============= :Released: 2009-06-21 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * 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> Additions: * 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. Bug Fixes: * Register DaemonContext.close method for atexit processing. * Move PID file cleanup to close method. Version 1.4.4 ============= :Released: 2009-03-26 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Changes: * Conform to current PEP version, now released as PEP 3143 âStandard daemon process libraryâ. * Redirect standard streams to null device by default. Bug Fixes: * Ensure UID and GID are set in correct order. * Delay closing all open files until just before re-binding standard streams. Version 1.4.3 ============= :Released: 2009-03-19 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Bug Fixes: * Close the PID file context on exit. Version 1.4.2 ============= :Released: 2009-03-18 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Context manager methods for DaemonContext. Version 1.4.1 ============= :Released: 2009-03-18 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Changes: * Improvements to docstrings. * Further conformance with draft PEP. Version 1.4 =========== :Released: 2009-03-17 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Complete statement coverage from unit test suite. Changes: * Implement the interface from a draft PEP for process daemonisation. Version 1.3 =========== :Released: 2009-03-12 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Huge increase in unit test suite. Changes: * Separate controller (now âDaemonRunnerâ) from daemon process context (now âDaemonContextâ). Bug Fixes: * Fix many corner cases and bugs. Version 1.2 =========== :Released: 2009-01-27 :Maintainer: Ben Finney <ben+python@benfinney.id.au> Additions: * Begin unit test suite. Changes: * Initial release of this project forked from âbda.daemonâ. Thanks, Robert Niederreiter. * Refactor some functionality out to helper functions. .. This document is written using `reStructuredText`_ markup, and can be rendered with `Docutils`_ to other formats. .. _Docutils: http://docutils.sourceforge.net/ .. _reStructuredText: http://docutils.sourceforge.net/rst.html .. 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 :