-----------------
2018-06-07 3.5.2
-----------------
* Explicitly include <signal.h> in _posixsubprocess_helpers.c; it already
  gets configure checked and pulled in via Python's own <Python.h> in many
  circumstances but it is better to be explicit.  #IWYU
  If you were using subprocess32 on a Python interpreter built *without*
  the --with-fpectl configure option enabled, restore_signals is now
  useful rather than a no-op.  I do not know if such builds were common.
* Adds a functional test for restore_signals=True behavior.

-----------------
2018-05-21 3.5.1
-----------------
* Fix AttributeError: 'module' object has no attribute 'Signals' when
  constructing a CalledProcessError exception.  [#49]

-----------------
2018-05-13 3.5.0 (3.5.0rc3)
-----------------

* Fixed the packaging problem where the stdlib python3_redirect shim is
  supposed to be installed on Python 3.
* Renamed _posixsubprocess to _posixsubprocess32 for consistency.
* Unset CLOEXEC on file descriptors given to Popen pass_fds. (GH #4)
* Drop support for Python 2.4 and 2.5.
* Adds a configure script - run by setup.py - to supply the missing feature
  #define's for the _posixsubprocess32 extension module for the things that
  Python 2's own configure generated pyconfig.h does not already provide.

-----------------
2017-10-18 3.5.0rc1
-----------------

* Backport the new subprocess.run() API from Python 3.5.
* Backport subprocess.DEVNULL support from 3.3.
* Allow stderr to be redirected to stdout even when stdout is not redirected.
  https://bugs.python.org/issue22274 
* Fix subprocess.Popen.wait() when the child process has exited to a
  a stopped instead of terminated state (ex: when under ptrace).
  https://bugs.python.org/issue29335 
* Include the private API needed by the multiprocessing module for people who
  want to drop subprocess32 in as a replacement for their standard library
  subprocess module.
* Fix a compilation issue regarding O_CLOEXEC not being defined on ancient
  Linux distros such as RHEL 5.

-----------------
2015-11-15 3.2.7
-----------------

* Issue #6973: When we know a subprocess.Popen process has died, do
  not allow the send_signal(), terminate(), or kill() methods to do
  anything as they could potentially signal a different process.
* Issue #23564: Fixed a partially broken sanity check in the _posixsubprocess
  internals regarding how fds_to_pass were passed to the child.  The bug had
  no actual impact as subprocess32.py already avoided it.

-----------------
2015-11-14 3.2.7rc2
-----------------

* Moved the repository from code.google.com to github.
* Added a _WAIT_TIMEOUT to satisfy the unsupported people entirely on
  their own trying to use this on Windows.
* Similarly: Updated setup.py to not build the extension on non-posix.

-----------------
2014-06-01 3.2.7rc1
-----------------

* Issue #21618: The subprocess module could fail to close open fds that were
  inherited by the calling process and already higher than POSIX resource
  limits would otherwise allow.  On systems with a functioning /proc/self/fd
  or /dev/fd interface the max is now ignored and all fds are closed.

-----------------
2014-04-23 3.2.6
-----------------

* Fixes issue #21291: Popen.wait() is now thread safe so that multiple
  threads may be calling wait() or poll() on a Popen instance at the same time
  without losing the Popen.returncode value.
* Fixes issue #14396: Handle the odd rare case of waitpid returning 0 when not
  expected in Popen.wait().
* Fixes issue #16962: Use getdents64 instead of the obsolete getdents syscall
  on Linux.  Some architectures do not implement the latter.

-----------------
2013-12-10 3.2.5
-----------------

* Fixes issue #15798: subprocess.Popen() no longer fails if file
  descriptor 0, 1 or 2 is closed.
* Fixes issue #18763: close_fd file descriptors are now closed after
  any preexec_fn call.

-----------------
2013-06-15 3.2.5rc1
-----------------

* Fixes issue #16650 - Don't reference ECHILD from outside the local scope.
* Unittests no longer spew any test data for human verification to stdout.
* Remove a bare print to stdout that could have happened if the child process
  wrote garbage to its pre-exec error pipe.
* Fixes issue #16327 - the subprocess module no longer leaks file descriptors
  used for stdin/stdout/stderr pipes to the child when the fork() fails.  It
  also no longer potentially double closes these pipe fds.
* Correct the Python version check around use of imp_module to specify 2.6.3
  as the minimum version that exists in. Why is anyone using such an old 2.6?
* Fixes Issue #16114: The subprocess module no longer provides a misleading
  error message stating that args[0] did not exist when either the cwd or
  executable keyword arguments specified a path that did not exist.
* Add more Popen cwd tests.
* Handle errno.ECHILD in poll.
* Don't leak a reference to the gc module on capi use error.
* Check return value to avoid a crash if the capi were misused.
* Check result of PyObject_IsTrue().
* Adds test_universal_newlines_communicate_input_none.
* Most everything above consists of backports.  See the hg logs for their
  upstream hg.python.org cpython revision numbers.

----------------
2012-06-10 3.2.3
----------------

* Fixes the references to the 'surrogateescape' unicode encoding error
  handler that does not exist in Python 2.x.  'strict' is used so that
  a UnicodeEncodeError exception is raised in these situations.  These
  MAY occur if your sys.getfilesystemencoding() is not UTF-8 and
  attempt to use a non-ascii executable, args or env values.  Prior to
  this change, those would result in a hard to debug LookupError for
  surrogateescape.
* Issue #15000: Support the "unique" x32 architecture in _posixsubprocess.c.
* Fix a compilation problem when O_CLOEXEC is not defined.

------------------
2012-02-18 3.2.3b1
------------------

This release brings in the last year and a half's worth of bugfixes and
improvements to Python 3.2's subprocess module:

Off the top of my head, some major bugfix highlights include:
 * Timeout support on the APIs.
 * close_fds=True is now the default (as it is in 3.2) and performs much faster.
 * Fixed EINTR handling.
 * Fixed SIGCHLD handling.
 * Fixed several race conditions.
 * Many more bug fixes too numerous to list.

You can grep out the full list of improvements related to subprocess in:
 http://hg.python.org/cpython/file/9ce5d456138b/Misc/NEWS

-------------
2010-06 3.2.0
-------------

This was the first release. Roughly equivalent to Python 3.2.0a1.
