NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1090 most downloaded on PyPI
Library to implement a well-behaved Unix daemon process.
Last release 2 years ago
no release in 18 months
Ships fairly regularly
a new release about every 9 months
Nearly every release is documented
notes for 40 of 43 stable releases
3 versions withdrawn
withdrawn after publishing
18 years old
47 releases · first in 2009
:Released: 2024-12-03 :Maintainer: Ben Finney
:Released: 2024-12-03 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
In wheel, distribute only the Python packages that should be installed.
Closes: Pagure #98.
Changed:
Migrate project code base from “flat layout” to “src layout”.
This commits us to a build step for running the test suite, ensuring the built package works.
See <URL: https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/
for more discussion.
:Released: 2024-12-02 :Maintainer: Ben Finney
:Released: 2024-12-02 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Remove unused run-time dependency on Setuptools.
Closes: Pagure #97. Thanks to Michał Górny for the report.
Restore inclusion of documentation source in source distribution.
Removed:
Cease signing releases, as GnuPG signatures no longer supported by PyPI.
See <URL: https://blog.pypi.org/posts/2023-05-23-removing-pgp/ > for the announcement by PyPI maintainers.
One column per quarter.
Nothing published for this version
:Released: 2024-10-25 :Maintainer: Ben Finney
:Released: 2024-10-25 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Correct a non-deterministic test case that would sometimes fail.
Because of test data that was incorrectly choosing a random value for the property being tested, the test case would succeed or fail unreliably.
Closes: Pagure #96. Thanks to Joseph Tate for the report and implementation.
Increase minimum Python version required, to “>= 3.7”.
The interface setuptools.command.build, introduced in Setuptools version
“62.4.0”, requires Python version >= 3.7.
Closes: Pagure #79. Thanks to Edison Wong for the report and implementation.
Get metadata from Change Log at build time only.
This removes the need for Setuptools “entry points” feature at build time.
Closes: Pagure #94. Thanks to Branch Vincent for assistance. Closes: Pagure #86. Closes: Pagure #85. Thanks to Attila Lendvai for the report. Closes: Pagure #82.
Migrate optional dependencies to PEP 621 declarations.
This uses the named groups for developing and building the package, versus the core requirements for installing and running the distribution.
Closes: Pagure #52. Thanks to Stoyan Nikolov, Neil Hanlon. Closes: Pagure #93. Thanks to Michał Górny for the report.
Changed:
Migrate all Setuptools-specific options to PEP 621 declarations.
The ‘pyproject.toml’ configuration file now contains explicit declaration of all project configuration, ending the need to run ‘setup.py’ as a program.
Closes: Pagure #71.
Removed:
Remove dynamically-constructed non-standard metadata attributes.
All these attributes are now met by the standard “Core Metadata” <https://packaging.python.org/en/latest/specifications/core-metadata/>_
specification.
This makes it easier to de-couple from Setuptools-specific declarations; we stop using the deprecated command-line invocations of ‘setup.py’ as a prog…
:Released: 2024-07-27 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Migrate to use the explicitly-maintained ‘packaging’ library.
The package bundled in ‘setuptools.extern.packaging’ is to help make that package self-contained, but is not a supported API.
Closes: Pagure #73. Thanks to Michał Górny for the report.
Changed:
Clarify copyright and grants of license.
The new file COPYING now comprehensively describes grants of license to all
parts of this distribution.
Migrate to PEP 517 simple build system for Python distribution.
This makes it easier to de-couple from Setuptools-specific declarations; we stop using the deprecated command-line invocations of ‘setup.py’ as a program.
Closes: Pagure #87. Thanks to Attila Lendvai for the report.
:Released: 2023-03-08 :Maintainer: Ben Finney
:Released: 2023-03-08 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Declare dependency on Setuptools >= 62.4.0.
This is necessary for establishing the version information via Setuptools. We
use ‘setuptools.command.build’, introduced in Setuptools version 62.4.0 <https://setuptools.pypa.io/en/stable/history.html#v62-4-0>_.
Closes: Pagure #74. Thanks to Edison Wong for the report.
Added:
The Distutils library is deprecated for direct use; see _.
:Released: 2023-03-04 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Refactor calculation of file descriptor ranges to close.
When the range of candidate file descriptors is very large, the code that computes file descriptors to close when the daemon starts attempted to allocate a large amount of memory and took a long time to compute.
Thanks to Alex Pyrgiotis for the timing test case.
This change avoids that resource-intensive computation, and significantly improves the performance when importing the module and when starting the daemon.
Thanks to Igor Kholopov for the implementation.
Closes: Pagure #72. Thanks to Anton Anton for the report.
Added:
ServiceRunner class as an example of using DaemonContext.Changed:
Raise a TypeError if any exclude values are not valid file descriptors.
Formerly, an invalid value might be silently ignored.
Thanks to Igor Kholopov for the suggestion.
Migrate package version handling to use Setuptools API.
The Distutils library is deprecated for direct use; see
<https://docs.python.org/3/whatsnew/3.10.html#distutils-deprecated>_.
Closes: Pagure #70.
Removed:
Remove redundant ‘wheel’ from the requirements specification.
As described by the Python Packaging Authority:
This [‘wheel’] dependency is exposed automatically by setuptools and the
users do not need to declare it explicitly — it will be installed by PEP
517 front-ends automatically, when building wheels.
Thanks to Michał Górny for the implementation.
Remove Setuptools ‘test’ command support.
The ‘test’ command is formally deprecated, in favour of dedicated test
runners. <https://setuptools.pypa.io/en/stable/history.html#v41-5-0>_
Remove Setuptools ‘register’ and ‘upload’ command support.
The commands to publish a distribution to PyPI are removed, in favour of the
Twine tool. <https://setuptools.pypa.io/en/stable/history.html#v42-0-0>_
Remove the obsolete runner module.
This module was deprecated starting in python-daemon version 2.1.2, and is
now removed as unmaintained.
:Released: 2022-10-23 :Maintainer: Ben Finney
:Released: 2022-10-23 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Declare Twine as a development dependency (not a build dependency).
Closes: Pagure #55. Thanks to Jason Andryuk for the report. Thanks to James Hilliard for the implementation.
Specify to build a wheel distribution for only Python 3 or later.
Specify the built package requires Python 3 or later.
Closes: Pagure #66. Thanks to Nick M. for the report and implementation.
Removed:
Deprecate helper function is_socket.
:Released: 2022-07-19 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Avoid operations on a closed stream file when detecting a socket.
Closes: Pagure #64. Thanks to Mark Richman for the report.
Correct use of names to allow from daemon import *.
Closes: Pagure #65. Thanks to July Tikhonov for the report.
Changed:
Speed daemon start time by computing candidate file descriptors once.
Closes: Pagure #40. Thanks to Alex Pyrgiotis for the report.
Remove incorrect double-patch of objects in test cases.
Closes: Pagure #62. Thanks to Miro Hrončok for the report.
Deprecate helper function is_socket.
The function incorrectly causes ValueError when the file object is already
closed. Migrate to the new is_socket_file helper function instead.
Removed:
Drop backward-compatible helpers that provided Python 2 support.
typeAll these are default behaviour in Python 3 and need no special handling.
:Released: 2021-02-21 :Maintainer: Ben Finney
:Released: 2021-02-21 :Maintainer: Ben Finney ben+python@benfinney.id.au
Removed:
Remove support for Python versions older than Python 3.
Python 2 has been unsupported by the Python project since 2020.
Remove dependency on back-ported unittest2 and mock.
Depend instead on standard library unittest and unittest.mock.
Thanks to Michał Górny for the merge requests.
:Released: 2019-10-27 :Maintainer: Ben Finney
:Released: 2019-10-27 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Run the Setuptools egg-info command as part of the build
command.
Closes: Pagure #31. Thanks to Stanislav Levin for the bug report and diagnosis.
Create the socket and catch “non-socket” errors.
Closes: Pagure #34. Thanks to Miro Hrončok for the bug report and patch.
Only deal with a range of file descriptors if the range is not empty.
Closes: Pagure #39. Thanks to Alex Pyrgiotis for the test scenario.
Declare Twine as a build dependency.
Reformat the change log entries with keepachangelog.com sub-sections.
Changed:
Upgrade Tox dependency to version “3.7.0”.
Thanks to Miro Hrončok for the contribution.
Significant speed-up to discovery of file descriptors to close.
By using a native tuple for the heavily-used file descriptor range
representation, this gives approximately 5× faster calls to
close_all_open_files in the typical case. This partially addresses
Pagure #40.
Thanks to Alex Pyrgiotis for testing various alternative proposals.
Refactor the build system to use Makefile modules for each topic.
Promote the warning for runner module to a DeprecationWarning. This has been an unofficial example module from the beginning, and it will be removed i…
:Released: 2019-01-21 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Use custom fake file type for testing fileno behaviour.
This works around an incompatibility in Python 2.7 file type that
caused test cases to fail.
Deprecated:
runner module to a DeprecationWarning.
This has been an unofficial example module from the beginning, and
it will be removed in a future version.:Released: 2019-01-19 :Maintainer: Ben Finney
:Released: 2019-01-19 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Added:
:Released: 2019-01-18 :Maintainer: Ben Finney
:Released: 2019-01-18 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
518 conformant build system specification (the
pyproject.toml file).:Released: 2018-08-15 :Maintainer: Ben Finney
:Released: 2018-08-15 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
Correct the description of the return value for
daemon.is_detach_process_context_required.
Closes: Pagure #6.
Set a sensible default for Distribution.script_name.
This works around a bug in Setuptools which calls commands before
the Distribution is initialised.
Closes: Pagure #2.
Changed:
The test suite now relies on the test discovery feature in ‘unittest’. This feature is in Python version 2.7 and later.
Improve performance of daemon.close_all_open_files.
Thanks to Darek Działak for the implementation.
Closes: Pagure #10.
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…
:Released: 2016-10-26 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
Deprecated:
Bugs Fixed:
:Released: 2016-01-30 :Maintainer: Ben Finney
:Released: 2016-01-30 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
:Released: 2015-11-26 :Maintainer: Ben Finney
:Released: 2015-11-26 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
:Released: 2015-08-30 :Maintainer: Ben Finney
:Released: 2015-08-30 :Maintainer: Ben Finney ben+python@benfinney.id.au
Changed:
Bugs Fixed:
:Released: 2015-02-02 :Maintainer: Ben Finney
:Released: 2015-02-02 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
:Released: 2015-01-23 :Maintainer: Ben Finney
:Released: 2015-01-23 :Maintainer: Ben Finney ben+python@benfinney.id.au
Changed:
Removed:
:Released: 2015-01-14 :Maintainer: Ben Finney
:Released: 2015-01-14 :Maintainer: Ben Finney ben+python@benfinney.id.au
Changed:
Removed:
Bugs Fixed:
:Released: 2015-01-13 :Maintainer: Ben Finney
:Released: 2015-01-13 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Bugs Fixed:
:Released: 2015-01-11 :Maintainer: Ben Finney
:Released: 2015-01-11 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
:Released: 2015-01-10 :Maintainer: Ben Finney
:Released: 2015-01-10 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
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.
Changed:
Removed:
:Released: 2014-08-04 :Maintainer: Ben Finney
:Released: 2014-08-04 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
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
<http://wiki.python.org/moin/PythonSoftwareFoundationLicenseFaq#Contributing_Code_to_Python>_.
Bugs Fixed:
:Released: 2010-05-10 :Maintainer: Ben Finney
:Released: 2010-05-10 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
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.
Removed:
Nothing published for this version
Nothing published for this version
:Released: 2010-03-02 :Maintainer: Ben Finney
:Released: 2010-03-02 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
:Released: 2010-02-27 :Maintainer: Ben Finney
:Released: 2010-02-27 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
:Released: 2010-02-26 :Maintainer: Ben Finney
:Released: 2010-02-26 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
setup.py: Read version string from data file.
daemon/version/init.py: Query version string with ‘pkg_resources’.
Update copyright notices.
Bugs Fixed:
<http://docs.python.org/library/stdtypes.html#typecontextmanager>_).
Thanks to Ludvig Ericson for the bug report.:Released: 2009-10-24 :Maintainer: Ben Finney
:Released: 2009-10-24 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Bugs Fixed:
:Released: 2009-09-26 :Maintainer: Ben Finney
:Released: 2009-09-26 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
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’.
:Released: 2009-09-24 :Maintainer: Ben Finney
:Released: 2009-09-24 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
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).
Bugs Fixed:
:Released: 2009-09-17 :Maintainer: Ben Finney
:Released: 2009-09-17 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
Removed:
Bugs Fixed:
:Released: 2009-09-03 :Maintainer: Ben Finney
:Released: 2009-09-03 :Maintainer: Ben Finney ben+python@benfinney.id.au
Removed:
Bugs Fixed:
:Released: 2009-06-21 :Maintainer: Ben Finney
:Released: 2009-06-21 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
:Released: 2009-05-17 :Maintainer: Ben Finney
:Released: 2009-05-17 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Bugs Fixed:
:Released: 2009-03-26 :Maintainer: Ben Finney
:Released: 2009-03-26 :Maintainer: Ben Finney ben+python@benfinney.id.au
Changed:
Bugs Fixed:
:Released: 2009-03-19 :Maintainer: Ben Finney
:Released: 2009-03-19 :Maintainer: Ben Finney ben+python@benfinney.id.au
Bugs Fixed:
:Released: 2009-03-18 :Maintainer: Ben Finney
:Released: 2009-03-18 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
:Released: 2009-03-18 :Maintainer: Ben Finney
:Released: 2009-03-18 :Maintainer: Ben Finney ben+python@benfinney.id.au
Changed:
:Released: 2009-03-17 :Maintainer: Ben Finney
:Released: 2009-03-17 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
:Released: 2009-03-12 :Maintainer: Ben Finney
:Released: 2009-03-12 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
Bugs Fixed:
:Released: 2009-01-27 :Maintainer: Ben Finney
:Released: 2009-01-27 :Maintainer: Ben Finney ben+python@benfinney.id.au
Added:
Changed:
..
This document is written using reStructuredText_ markup, and can
be rendered with Docutils_ to other formats.
.. _Docutils: https://docutils.sourceforge.io/
.. _reStructuredText: https://docutils.sourceforge.io/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 :
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →