ChangeLog 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. -----------------
  2. 2019-05-20 3.5.4
  3. -----------------
  4. * Promoted 3.5.4rc2 to become 3.5.4.
  5. -----------------
  6. 2019-05-13 3.5.4rc2
  7. -----------------
  8. * GitHub [#57]: TimeoutExpired and CalledProcessError exceptions can now
  9. be unpickled.
  10. -----------------
  11. 2019-05-10 3.5.4rc1
  12. -----------------
  13. * GitHub [#61]: Backport the fixes for https://bugs.python.org/issue10963,
  14. https://bugs.python.org/issue19612, and https://bugs.python.org/issue30418.
  15. When a child process was so short lived it dies or closes its pipes before
  16. you call communicate(). When supplying stdin or reading its output in
  17. this scenario, do not raise an unexpected broken pipe or interrupted
  18. system call exception.
  19. -----------------
  20. 2018-10-09 3.5.3
  21. -----------------
  22. * Disallow ridiculously large numbers (millions) of arguments. [#54]
  23. -----------------
  24. 2018-06-07 3.5.2
  25. -----------------
  26. * Explicitly include <signal.h> in _posixsubprocess_helpers.c; it already
  27. gets configure checked and pulled in via Python's own <Python.h> in many
  28. circumstances but it is better to be explicit. #IWYU
  29. If you were using subprocess32 on a Python interpreter built *without*
  30. the --with-fpectl configure option enabled, restore_signals is now
  31. useful rather than a no-op. I do not know if such builds were common.
  32. * Adds a functional test for restore_signals=True behavior.
  33. -----------------
  34. 2018-05-21 3.5.1
  35. -----------------
  36. * Fix AttributeError: 'module' object has no attribute 'Signals' when
  37. constructing a CalledProcessError exception. [#49]
  38. -----------------
  39. 2018-05-13 3.5.0 (3.5.0rc3)
  40. -----------------
  41. * Fixed the packaging problem where the stdlib python3_redirect shim is
  42. supposed to be installed on Python 3.
  43. * Renamed _posixsubprocess to _posixsubprocess32 for consistency.
  44. * Unset CLOEXEC on file descriptors given to Popen pass_fds. (GH #4)
  45. * Drop support for Python 2.4 and 2.5.
  46. * Adds a configure script - run by setup.py - to supply the missing feature
  47. #define's for the _posixsubprocess32 extension module for the things that
  48. Python 2's own configure generated pyconfig.h does not already provide.
  49. -----------------
  50. 2017-10-18 3.5.0rc1
  51. -----------------
  52. * Backport the new subprocess.run() API from Python 3.5.
  53. * Backport subprocess.DEVNULL support from 3.3.
  54. * Allow stderr to be redirected to stdout even when stdout is not redirected.
  55. https://bugs.python.org/issue22274
  56. * Fix subprocess.Popen.wait() when the child process has exited to a
  57. a stopped instead of terminated state (ex: when under ptrace).
  58. https://bugs.python.org/issue29335
  59. * Include the private API needed by the multiprocessing module for people who
  60. want to drop subprocess32 in as a replacement for their standard library
  61. subprocess module.
  62. * Fix a compilation issue regarding O_CLOEXEC not being defined on ancient
  63. Linux distros such as RHEL 5.
  64. -----------------
  65. 2015-11-15 3.2.7
  66. -----------------
  67. * Issue #6973: When we know a subprocess.Popen process has died, do
  68. not allow the send_signal(), terminate(), or kill() methods to do
  69. anything as they could potentially signal a different process.
  70. * Issue #23564: Fixed a partially broken sanity check in the _posixsubprocess
  71. internals regarding how fds_to_pass were passed to the child. The bug had
  72. no actual impact as subprocess32.py already avoided it.
  73. -----------------
  74. 2015-11-14 3.2.7rc2
  75. -----------------
  76. * Moved the repository from code.google.com to github.
  77. * Added a _WAIT_TIMEOUT to satisfy the unsupported people entirely on
  78. their own trying to use this on Windows.
  79. * Similarly: Updated setup.py to not build the extension on non-posix.
  80. -----------------
  81. 2014-06-01 3.2.7rc1
  82. -----------------
  83. * Issue #21618: The subprocess module could fail to close open fds that were
  84. inherited by the calling process and already higher than POSIX resource
  85. limits would otherwise allow. On systems with a functioning /proc/self/fd
  86. or /dev/fd interface the max is now ignored and all fds are closed.
  87. -----------------
  88. 2014-04-23 3.2.6
  89. -----------------
  90. * Fixes issue #21291: Popen.wait() is now thread safe so that multiple
  91. threads may be calling wait() or poll() on a Popen instance at the same time
  92. without losing the Popen.returncode value.
  93. * Fixes issue #14396: Handle the odd rare case of waitpid returning 0 when not
  94. expected in Popen.wait().
  95. * Fixes issue #16962: Use getdents64 instead of the obsolete getdents syscall
  96. on Linux. Some architectures do not implement the latter.
  97. -----------------
  98. 2013-12-10 3.2.5
  99. -----------------
  100. * Fixes issue #15798: subprocess.Popen() no longer fails if file
  101. descriptor 0, 1 or 2 is closed.
  102. * Fixes issue #18763: close_fd file descriptors are now closed after
  103. any preexec_fn call.
  104. -----------------
  105. 2013-06-15 3.2.5rc1
  106. -----------------
  107. * Fixes issue #16650 - Don't reference ECHILD from outside the local scope.
  108. * Unittests no longer spew any test data for human verification to stdout.
  109. * Remove a bare print to stdout that could have happened if the child process
  110. wrote garbage to its pre-exec error pipe.
  111. * Fixes issue #16327 - the subprocess module no longer leaks file descriptors
  112. used for stdin/stdout/stderr pipes to the child when the fork() fails. It
  113. also no longer potentially double closes these pipe fds.
  114. * Correct the Python version check around use of imp_module to specify 2.6.3
  115. as the minimum version that exists in. Why is anyone using such an old 2.6?
  116. * Fixes Issue #16114: The subprocess module no longer provides a misleading
  117. error message stating that args[0] did not exist when either the cwd or
  118. executable keyword arguments specified a path that did not exist.
  119. * Add more Popen cwd tests.
  120. * Handle errno.ECHILD in poll.
  121. * Don't leak a reference to the gc module on capi use error.
  122. * Check return value to avoid a crash if the capi were misused.
  123. * Check result of PyObject_IsTrue().
  124. * Adds test_universal_newlines_communicate_input_none.
  125. * Most everything above consists of backports. See the hg logs for their
  126. upstream hg.python.org cpython revision numbers.
  127. ----------------
  128. 2012-06-10 3.2.3
  129. ----------------
  130. * Fixes the references to the 'surrogateescape' unicode encoding error
  131. handler that does not exist in Python 2.x. 'strict' is used so that
  132. a UnicodeEncodeError exception is raised in these situations. These
  133. MAY occur if your sys.getfilesystemencoding() is not UTF-8 and
  134. attempt to use a non-ascii executable, args or env values. Prior to
  135. this change, those would result in a hard to debug LookupError for
  136. surrogateescape.
  137. * Issue #15000: Support the "unique" x32 architecture in _posixsubprocess.c.
  138. * Fix a compilation problem when O_CLOEXEC is not defined.
  139. ------------------
  140. 2012-02-18 3.2.3b1
  141. ------------------
  142. This release brings in the last year and a half's worth of bugfixes and
  143. improvements to Python 3.2's subprocess module:
  144. Off the top of my head, some major bugfix highlights include:
  145. * Timeout support on the APIs.
  146. * close_fds=True is now the default (as it is in 3.2) and performs much faster.
  147. * Fixed EINTR handling.
  148. * Fixed SIGCHLD handling.
  149. * Fixed several race conditions.
  150. * Many more bug fixes too numerous to list.
  151. You can grep out the full list of improvements related to subprocess in:
  152. http://hg.python.org/cpython/file/9ce5d456138b/Misc/NEWS
  153. -------------
  154. 2010-06 3.2.0
  155. -------------
  156. This was the first release. Roughly equivalent to Python 3.2.0a1.