123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- -----------------
- 2019-05-20 3.5.4
- -----------------
- * Promoted 3.5.4rc2 to become 3.5.4.
- -----------------
- 2019-05-13 3.5.4rc2
- -----------------
- * GitHub [#57]: TimeoutExpired and CalledProcessError exceptions can now
- be unpickled.
- -----------------
- 2019-05-10 3.5.4rc1
- -----------------
- * GitHub [#61]: Backport the fixes for https://bugs.python.org/issue10963,
- https://bugs.python.org/issue19612, and https://bugs.python.org/issue30418.
- When a child process was so short lived it dies or closes its pipes before
- you call communicate(). When supplying stdin or reading its output in
- this scenario, do not raise an unexpected broken pipe or interrupted
- system call exception.
- -----------------
- 2018-10-09 3.5.3
- -----------------
- * Disallow ridiculously large numbers (millions) of arguments. [#54]
- -----------------
- 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.
|