Changelog¶
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 executor integration to stop using the old
async
option and start using the newasynchronous
option (given thatasync
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 humanfriendly deprecation warnings and bumped dependencies that went through the same process.
- Fixed all 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 Process
objects as the new
Process.cwd
property.
Release 0.15 (2018-06-21)¶
- Changes related to the
proc.gpg
module and thewith-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
find_gpg_agent_info()
raisingAttributeError
.
- Use existing
- Changes related to the documentation:
- Added this change log to the documentation (with a link in the readme).
- Integrated the
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 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 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
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 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 executor and 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
Process.from_pid()
to useProcess.from_path()
. - Re-ordered fields of
Process
class alphabetically. - Switched to flake8 for code style checks, fixed code style warnings pointed out by flake8.
- Updated
tox.ini
to includepy35
and options for flake8 and 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
Process.command_line
toProcess.cmdline
alias (to improve the compatibility with the process management code that’s shared between the executor and 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 executor and proc packages).
- Switched from cached-property to property-manager.
Release 0.3 (2015-09-25)¶
Make the cron-graceful
command “repeatable” (as in, running it twice will
not report a 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 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
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
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 proc package in March 2015, much of its code has existed for years in various forms.