The purpose of this document is to list all of the notable changes to this project. The format was inspired by Keep a Changelog. This project adheres to semantic versioning.
- Release 1.0 (2020-04-26)
- Release 0.17 (2018-06-27)
- Release 0.16 (2018-06-21)
- Release 0.15 (2018-06-21)
- Release 0.14 (2017-06-24)
- Release 0.13 (2017-06-24)
- Release 0.12 (2017-02-14)
- Release 0.11 (2017-01-24)
- Release 0.10.1 (2016-11-13)
- Release 0.10 (2016-11-12)
- Release 0.9.1 (2016-06-13)
- Release 0.9 (2016-06-01)
- Release 0.8.5 (2016-05-27)
- Release 0.8.4 (2016-04-22)
- Release 0.8.3 (2016-04-21)
- Release 0.8.2 (2016-04-21)
- Release 0.8.1 (2016-04-21)
- Release 0.8 (2016-04-21)
- Release 0.7 (2016-01-29)
- Release 0.6 (2016-01-28)
- Release 0.5.1 (2015-11-19)
- Release 0.5 (2015-11-19)
- Release 0.4.1 (2015-11-10)
- Release 0.4 (2015-11-10)
- Release 0.3 (2015-09-25)
- Release 0.2.3 (2015-09-25)
- Release 0.2.2 (2015-06-26)
- Release 0.2.1 (2015-04-16)
- Release 0.2 (2015-03-30)
- Release 0.1.1 (2015-03-30)
- Release 0.1 (2015-03-29)
Release 1.0 (2020-04-26)
- Merged pull request #2 which enables Python 3.7+ compatibility by changing
the :pypi:`executor` integration to stop using the old
async
option and start using the newasynchronous
option (given that :keyword:`async` became a keyword in Python 3.7). - Updated Python compatibility:
- Python 3.6, 3.7 and 3.8 are now tested and supported.
- Python 2.6 and 3.4 are no longer supported.
- Defined
__all__
for existing Python modules. - Fixed :pypi:`humanfriendly` deprecation warnings and bumped dependencies that went through the same process.
- Fixed all :pypi:`Sphinx` broken references and configured Sphinx to report broken references as errors instead of warnings (to prevent broken references from piling up in the future).
- Various Travis CI fixes that didn't affect published code.
Release 0.17 (2018-06-27)
Added with-gui-environment
program (a generalization of notify-send-headless
).
Release 0.16 (2018-06-21)
Expose the value of /proc/[pid]/cwd
on :class:`.Process` objects as the new
:attr:`.Process.cwd` property.
Release 0.15 (2018-06-21)
- Changes related to the :mod:`proc.gpg` module and the
with-gpg-agent
program:- Use existing
$GPG_AGENT_INFO
values when available and validated. - Let the operator know when starting a new GPG agent daemon (through logging).
- Check if π¨`gpg-agent`` is installed before trying to run
gpg-agent --daemon
. - Added support for GPG agent sockets in
/run/user/$UID
(GnuPG >= 2.1.13).- This incompatibility came to light when I upgraded my laptop from Ubuntu 16.04 to 18.04.
- Fixed hanging Travis CI builds caused by
gpg-agent --daemon
not detaching properly when the standard error stream is redirected.- This incompatibility was exposed by Travis CI switching from Ubuntu 12.04 to 14.04.
- Fixed race condition in :func:`.find_gpg_agent_info()` raising :exc:`~exceptions.AttributeError`.
- Use existing
- Changes related to the documentation:
- Added this change log to the documentation (with a link in the readme).
- Integrated the :mod:`property_manager.sphinx` module (to generate boilerplate documentation).
- Fixed intersphinx mapping in documentation configuration.
- Changed HTML theme from default to nature (a wide layout).
- Include documentation in source distributions (
MANIFEST.in
).
- And then some miscellaneous changes:
- Fixed Apache WSGI configuration on Travis CI.
- This test suite incompatibility was exposed by Travis CI switching from Ubuntu 12.04 to 14.04.
- Restored Python 2.6 compatibility in the test suite (concerning :pypi:`pytest` version).
- Added license=MIT key to
setup.py
script. - Bumped the copyright to 2018.
- Fixed Apache WSGI configuration on Travis CI.
Release 0.14 (2017-06-24)
Swallow exceptions in the :func:`.notify_desktop()` function.
This change is technically backwards incompatible but I consider it the more
sane behavior; I had just simply never seen notify-send
fail until the
failure which prompted this release π.
Release 0.13 (2017-06-24)
- Provide proper compatibility with GnuPG >= 2.1 which uses the fixed
location
~/.gnupg/S.gpg-agent
for the agent socket. - Bug fix for systemd incompatibility in test suite.
- Moved test helpers to the :mod:`humanfriendly.testing` module.
Release 0.12 (2017-02-14)
Improved robustness of Apache master process selection.
Release 0.11 (2017-01-24)
Added with-gpg-agent
program: A smart wrapper for the gpg-agent
--daemon
functionality that makes sure the environment variable
$GPG_AGENT_INFO
is always set correctly.
Release 0.10.1 (2016-11-13)
Fixed broken reStructuredText syntax in README (which breaks the rich text rendering on the Python Package Index).
Release 0.10 (2016-11-12)
- Several improvements to
cron-graceful
:- Improved cron daemon termination.
- Improved user friendliness of output.
- Avoid useless log output noise.
- Start publishing wheel distributions.
- Explicitly signal skipped tests (when possible).
- Refactored internal project infrastructure such as the makefile, setup script and Travis CI build configuration.
Release 0.9.1 (2016-06-13)
Silenced another race condition (ESRCH
instead of ENOENT
).
This is one of those things that you only observe after running a package like :pypi:`proc` from a periodic task (cron job) that runs every minute on a dozen servers for a couple of weeks π. The error condition was -correctly- being swallowed already, but it was more noisy than it needed to be.
Release 0.9 (2016-06-01)
Refactored the separation of concerns between the :pypi:`executor` and :pypi:`proc` packages.
Please refer to the commit message of the other side of this refactoring (executor#b484912bb33) for details about the how and why of this fairly involved refactoring π.
Release 0.8.5 (2016-05-27)
Demote race condition log messages from WARNING to DEBUG level.
Reasoning: Race condition log messages are so frequent that they become noise, drowning out other more important log messages, so I decided to make them less noisy π.
Fixed a confusing typo in the API docs, left over from a sentence that was (half) reformulated.
Noted a future improvement in the documentation: Generalized
notify-send-headless
functionality.
Release 0.8.4 (2016-04-22)
- Improved
notify-send-headless
documentation. - Improved test coverage by mocking external dependencies.
Release 0.8.3 (2016-04-21)
- Increase
cron-graceful[-additions]
test coverage. - Avoid duplicate builds on Travis CI.
- Test suite bug fix.
Release 0.8.2 (2016-04-21)
Increase test coverage (somewhat of a cop-out π).
Release 0.8.1 (2016-04-21)
Now including an upstream bug fix to make the previous release work :-(.
Release 0.8 (2016-04-21)
- Try to make
notify-send-headless
foolproof. - Document supported Python implementations in
setup.py
. - Enabled Python 3.5 tests on Travis CI, documented Python 3.5 support.
Release 0.7 (2016-01-29)
Expose the real user/group names of processes.
Release 0.6 (2016-01-28)
- Expose
/proc/[pid]/status
(UID/GID information considered useful π). - Changed :meth:`.Process.from_pid()` to use :meth:`.Process.from_path()`.
- Re-ordered fields of :class:`.Process` class alphabetically.
- Switched to :pypi:`flake8` for code style checks, fixed code style warnings pointed out by flake8.
- Updated
tox.ini
to includepy35
and options for :pypi:`flake8` and :pypi:`pytest`. - Improved test coverage.
- Refactored the makefile.
Release 0.5.1 (2015-11-19)
Bug fix: Restored Python 2.6 compatibility (regarding the __exit__()
calling convention).
Release 0.5 (2015-11-19)
- Extracted
/proc/uptime
parsing to a separate function. - Generalized error handling (of permission errors and race conditions).
- Expose
/proc/[pid]/environ
(also:notify-send-headless
π).
Release 0.4.1 (2015-11-10)
Two minor bug fixes:
- Added a :attr:`.Process.command_line` to :attr:`.Process.cmdline` alias (to improve the compatibility with the process management code that's shared between the :pypi:`executor` and :pypi:`proc` packages).
- Improved the documentation after refactorings in the 0.4 release broke some references.
Release 0.4 (2015-11-10)
- Improved process management (shared between the :pypi:`executor` and :pypi:`proc` packages).
- Switched from :pypi:`cached-property` to :pypi:`property-manager`.
Release 0.3 (2015-09-25)
Make the cron-graceful
command "repeatable" (as in, running it twice will
not report a :exc:`.CronDaemonNotRunning` exception to the terminal but will
just mention that π¨`cron` is not running and then exit gracefully).
Release 0.2.3 (2015-09-25)
- Bug fix: Make sure interactive spinners restore cursor visibility.
- Refactored
setup.py
script, improved trove classifiers. - Removed redundant
:py:
prefixes from reStructuredText fragments. - Bug fix for
make coverage
target inMakefile
.
Release 0.2.2 (2015-06-26)
Bug fix: Avoid :exc:`~exceptions.KeyError` exception during tree construction.
Release 0.2.1 (2015-04-16)
- Fixed incompatibility with cached-property 1.1.0 (removed
__slots__
usage). - Fixed last remaining Python 2.6 incompatibility (in test suite).
Release 0.2 (2015-03-30)
- Added an example :mod:`proc.apache` module that monitors Apache worker memory usage.
- Made the test suite more robust and increased test coverage.
Release 0.1.1 (2015-03-30)
- Enable callers to override object type for :func:`proc.tree.get_process_tree()`.
- Started documenting similar projects in the readme.
Release 0.1 (2015-03-29)
This was the initial commit and release. The "History" section of the readme provides a bit more context:
I've been writing shell and Python scripts that parse /proc
for years now
(it seems so temptingly easy when you get started π). Sometimes I resorted to
copy/pasting snippets of Python code between personal and work projects because
the code was basically done, just not available in an easy to share form.
Once I started fixing bugs in diverging copies of that code I decided it was time to combine all of the features I'd grown to appreciate into a single well tested and well documented Python package with an easy to use API and share it with the world.
This means that, although I made my first commit on the :pypi:`proc` package in March 2015, much of its code has existed for years in various forms.