Skip to content

Latest commit

Β 

History

History
375 lines (248 loc) Β· 13 KB

CHANGELOG.rst

File metadata and controls

375 lines (248 loc) Β· 13 KB

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)

  • 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 new asynchronous 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`.
  • 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.

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)

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:

Release 0.4 (2015-11-10)

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 in Makefile.

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)

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.