]> granicus.if.org Git - python/commitdiff
Merge 3.5 (issue #27906)
authorYury Selivanov <yury@magic.io>
Thu, 15 Sep 2016 18:14:48 +0000 (14:14 -0400)
committerYury Selivanov <yury@magic.io>
Thu, 15 Sep 2016 18:14:48 +0000 (14:14 -0400)
1  2 
Lib/asyncio/base_events.py
Lib/asyncio/proactor_events.py
Lib/asyncio/selector_events.py
Misc/NEWS

Simple merge
Simple merge
Simple merge
diff --cc Misc/NEWS
index a7ba7d836cf92e42dd568308ba8b0c80c9939072,0ebf5408449a3c114f82272eac103abca601a53f..d1f20f7ade9ab5c1ff837f6cb5c7ecac8dbba843
+++ b/Misc/NEWS
@@@ -400,537 -159,178 +400,540 @@@ Librar
  - Issue #2466: posixpath.ismount now correctly recognizes mount points which
    the user does not have permission to access.
  
 -- Issue #27773: Correct some memory management errors server_hostname in
 -  _ssl.wrap_socket().
 +- Issue #9998: On Linux, ctypes.util.find_library now looks in LD_LIBRARY_PATH
 +  for shared libraries.
  
 -- Issue #26750: unittest.mock.create_autospec() now works properly for
 -  subclasses of property() and other data descriptors.
 +- Issue #27573: exit message for code.interact is now configurable.
  
 -- In the curses module, raise an error if window.getstr() or window.instr() is
 -  passed a negative value.
 +- Issue #27930: Improved behaviour of logging.handlers.QueueListener.
 +  Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch.
  
 -- Issue #27783: Fix possible usage of uninitialized memory in
 -  operator.methodcaller.
 +- Issue #6766: Distributed reference counting added to multiprocessing
 +  to support nesting of shared values / proxy objects.
  
 -- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
 +- Issue #21201: Improves readability of multiprocessing error message.  Thanks
 +  to Wojciech Walczak for patch.
  
 -- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
 +- asyncio: Add set_protocol / get_protocol to Transports.
  
 -- Issue #27758: Fix possible integer overflow in the _csv module for large
 -  record lengths.
 +- Issue #27456: asyncio: Set TCP_NODELAY by default.
  
 -- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
 -  HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
 -  that the script is in CGI mode.
++- Issue #27906: Fix socket accept exhaustion during high TCP traffic.
++  Patch by Kevin Conway.
 -- Issue #27656: Do not assume sched.h defines any SCHED_* constants.
 +IDLE
 +----
  
 -- Issue #27130: In the "zlib" module, fix handling of large buffers
 -  (typically 4 GiB) when compressing and decompressing.  Previously, inputs
 -  were limited to 4 GiB, and compression and decompression operations did not
 -  properly handle results of 4 GiB.
 +- Issue #15308: Add 'interrupt execution' (^C) to Shell menu.
 +  Patch by Roger Serwy, updated by Bayard Randel.
  
 -- Issue #27533: Release GIL in nt._isdir
 +- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
  
 -- Issue #17711: Fixed unpickling by the persistent ID with protocol 0.
 -  Original patch by Alexandre Vassalotti.
 +- Issue #27891: Consistently group and sort imports within idlelib modules.
  
 -- Issue #27522: Avoid an unintentional reference cycle in email.feedparser.
 +- Issue #17642: add larger font sizes for classroom projection.
  
 -- Issue #26844: Fix error message for imp.find_module() to refer to 'path'
 -  instead of 'name'. Patch by Lev Maximov.
 +- Add version to title of IDLE help window.
  
 -- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise
 -  an error about unclean EOF.
 +- Issue #25564: In section on IDLE -- console differences, mention that
 +  using exec means that __builtins__ is defined for each statement.
  
 -- Issue #27466: Change time format returned by http.cookie.time2netscape,
 -  confirming the netscape cookie format and making it consistent with
 -  documentation.
 +- Issue #27821: Fix 3.6.0a3 regression that prevented custom key sets
 +  from being selected when no custom theme was defined.
  
 -- Issue #26664: Fix activate.fish by removing mis-use of ``$``.
 +C API
 +-----
  
 -- Issue #22115: Fixed tracing Tkinter variables: trace_vdelete() with wrong
 -  mode no longer break tracing, trace_vinfo() now always returns a list of
 -  pairs of strings, tracing in the "u" mode now works.
 +- Issue #26900: Excluded underscored names and other private API from limited API.
  
 -- Fix a scoping issue in importlib.util.LazyLoader which triggered an
 -  UnboundLocalError when lazy-loading a module that was already put into
 -  sys.modules.
 +- Issue #26027: Add support for path-like objects in PyUnicode_FSConverter() &
 +  PyUnicode_FSDecoder().
  
 -- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct().
 +Tests
 +-----
  
 -- Issue #26754: Some functions (compile() etc) accepted a filename argument
 -  encoded as an iterable of integers. Now only strings and byte-like objects
 -  are accepted.
 +- Issue #27427: Additional tests for the math module. Patch by Francisco Couzo.
  
 -- Issue #27048: Prevents distutils failing on Windows when environment
 -  variables contain non-ASCII characters
 +- Issue #27953: Skip math and cmath tests that fail on OS X 10.4 due to a
 +  poor libm implementation of tan.
  
 -- Issue #27330: Fixed possible leaks in the ctypes module.
 +- Issue #26040: Improve test_math and test_cmath coverage and rigour. Patch by
 +  Jeff Allen.
  
 -- Issue #27238: Got rid of bare excepts in the turtle module.  Original patch
 -  by Jelle Zijlstra.
 +- Issue #27787: Call gc.collect() before checking each test for "dangling
 +  threads", since the dangling threads are weak references.
  
 -- Issue #27122: When an exception is raised within the context being managed
 -  by a contextlib.ExitStack() and one of the exit stack generators
 -  catches and raises it in a chain, do not re-raise the original exception
 -  when exiting, let the new chained one through.  This avoids the PEP 479
 -  bug described in issue25782.
 +Build
 +-----
  
 -- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on
 -  Linux.  Truncate size to INT_MAX and loop until we collected enough random
 -  bytes, instead of casting a directly Py_ssize_t to int.
 +- Issue #27566: Fix clean target in freeze makefile (patch by Lisa Roach)
  
 -- Issue #26386: Fixed ttk.TreeView selection operations with item id's
 -  containing spaces.
 +- Issue #27705: Update message in validate_ucrtbase.py
  
 -- [Security] Issue #22636: Avoid shell injection problems with
 -  ctypes.util.find_library().
 +- Issue #27976: Deprecate building _ctypes with the bundled copy of libffi on
 +  non-OSX UNIX platforms.
  
 -- Issue #16182: Fix various functions in the "readline" module to use the
 -  locale encoding, and fix get_begidx() and get_endidx() to return code point
 -  indexes.
 +- Issue #27983: Cause lack of llvm-profdata tool when using clang as
 +  required for PGO linking to be a configure time error rather than
 +  make time when --with-optimizations is enabled.  Also improve our
 +  ability to find the llvm-profdata tool on MacOS and some Linuxes.
  
 -- Issue #26930: Update Windows builds to use OpenSSL 1.0.2h.
 +- Issue #21590: Support for DTrace and SystemTap probes.
  
 -- Issue #27392: Add loop.connect_accepted_socket().
 -  Patch by Jim Fulton.
 +- Issue #26307: The profile-opt build now applys PGO to the built-in modules.
  
 -- Issue #27930: Improved behaviour of logging.handlers.QueueListener.
 -  Thanks to Paulo Andrade and Petr Viktorin for the analysis and patch.
 +- Issue #26539: Add the --with-optimizations flag to turn on LTO and PGO build
 +  support when available.
  
 -- Issue #21201: Improves readability of multiprocessing error message.  Thanks
 -  to Wojciech Walczak for patch.
 +- Issue #27917: Set platform triplets for Android builds.
  
 -- Issue #27456: asyncio: Set TCP_NODELAY by default.
 +- Issue #25825: Update references to the $(LIBPL) installation path on AIX.
 +  This path was changed in 3.2a4.
  
 -- Issue #27906: Fix socket accept exhaustion during high TCP traffic.
 -  Patch by Kevin Conway.
 +- Update OS X installer to use SQLite 3.14.1 and XZ 5.2.2.
  
 -IDLE
 -----
 +- Issue #21122: Fix LTO builds on OS X.
  
 -- Issue #27922: Stop IDLE tests from 'flashing' gui widgets on the screen.
 +- Issue #17128: Build OS X installer with a private copy of OpenSSL.
 +  Also provide a sample Install Certificates command script to install a
 +  set of root certificates from the third-party certifi module.
  
 -- Add version to title of IDLE help window.
 +Tools/Demos
 +-----------
  
 -- Issue #25564: In section on IDLE -- console differences, mention that
 -  using exec means that __builtins__ is defined for each statement.
 +- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the
 +  current "re" module, avoid invalid Python backslash escapes, and fix a bug
 +  parsing escaped C quote signs.
  
 -- Issue #27714: text_textview and test_autocomplete now pass when re-run
 -  in the same process.  This occurs when test_idle fails when run with the
 -  -w option but without -jn.  Fix warning from test_config.
 +Windows
 +-------
  
 -- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
 -  Users must include the same imports required to run directly in Python.
 +- Issue #28065: Update xz dependency to 5.2.2 and build it from source.
  
 -- Issue #27452: add line counter and crc to IDLE configHandler test dump.
 +- Issue #25144: Ensures TargetDir is set before continuing with custom
 +  install.
  
 -- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.
 +- Issue #1602: Windows console doesn't input or print Unicode (PEP 528)
  
 -- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
 -  Previously, when IDLE was started from a console or by import, a cascade
 -  of warnings was emitted.  Patch by Serhiy Storchaka.
 +- Issue #27781: Change file system encoding on Windows to UTF-8 (PEP 529)
  
 -C API
 ------
 +- Issue #27731: Opt-out of MAX_PATH on Windows 10
  
 -- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as
 -  an iterable of integers. Now only strings and bytes-like objects are accepted.
 +- Issue #6135: Adds encoding and errors parameters to subprocess.
  
 -Tests
 ------
 +- Issue #27959: Adds oem encoding, alias ansi to mbcs, move aliasmbcs to
 +  codec lookup.
  
 -- Issue #27787: Call gc.collect() before checking each test for "dangling
 -  threads", since the dangling threads are weak references.
 +- Issue #27982: The functions of the winsound module now accept keyword
 +  arguments.
  
 -- Issue #27369: In test_pyexpat, avoid testing an error message detail that
 -  changed in Expat 2.2.0.
 +- Issue #20366: Build full text search support into SQLite on Windows.
  
 -Tools/Demos
 ------------
 +- Issue #27756: Adds new icons for Python files and processes on Windows.
 +  Designs by Cherry Wang.
  
 -- Issue #27952: Get Tools/scripts/fixcid.py working with Python 3 and the
 -  current "re" module, avoid invalid Python backslash escapes, and fix a bug
 -  parsing escaped C quote signs.
 +- Issue #27883: Update sqlite to 3.14.1.0 on Windows.
  
 -- Issue #27332: Fixed the type of the first argument of module-level functions
 -  generated by Argument Clinic.  Patch by Petr Viktorin.
  
 -- Issue #27418: Fixed Tools/importbench/importbench.py.
 +What's New in Python 3.6.0 alpha 4
 +==================================
  
 -Windows
 --------
 +*Release date: 2016-08-15*
  
 -- Issue #25144: Ensures TargetDir is set before continuing with custom
 -  install.
 +Core and Builtins
 +-----------------
  
 -- Issue #27469: Adds a shell extension to the launcher so that drag and drop
 -  works correctly.
 +- Issue #27704: Optimized creating bytes and bytearray from byte-like objects
 +  and iterables.  Speed up to 3 times for short objects.  Original patch by
 +  Naoki Inada.
  
 -- Issue #27309: Enabled proper Windows styles in python[w].exe manifest.
 +- Issue #26823: Large sections of repeated lines in tracebacks are now
 +  abbreviated as "[Previous line repeated {count} more times]" by the builtin
 +  traceback rendering. Patch by Emanuel Barry.
  
 -Build
 ------
 +- Issue #27574: Decreased an overhead of parsing keyword arguments in functions
 +  implemented with using Argument Clinic.
 +
 +- Issue #22557: Now importing already imported modules is up to 2.5 times
 +  faster.
 +
 +- Issue #17596: Include <wincrypt.h> to help with Min GW building.
 +
 +- Issue #17599: On Windows, rename the privately defined REPARSE_DATA_BUFFER
 +  structure to avoid conflicting with the definition from Min GW.
 +
 +- Issue #27507: Add integer overflow check in bytearray.extend().  Patch by
 +  Xiang Zhang.
 +
 +- Issue #27581: Don't rely on wrapping for overflow check in
 +  PySequence_Tuple().  Patch by Xiang Zhang.
 +
 +- Issue #1621: Avoid signed integer overflow in list and tuple operations.
 +  Patch by Xiang Zhang.
 +
 +- Issue #27419: Standard __import__() no longer look up "__import__" in globals
 +  or builtins for importing submodules or "from import".  Fixed a crash if
 +  raise a warning about unabling to resolve package from __spec__ or
 +  __package__.
 +
 +- Issue #27083: Respect the PYTHONCASEOK environment variable under Windows.
 +
 +- Issue #27514: Make having too many statically nested blocks a SyntaxError
 +  instead of SystemError.
 +
 +- Issue #27366: Implemented PEP 487 (Simpler customization of class creation).
 +  Upon subclassing, the __init_subclass__ classmethod is called on the base
 +  class. Descriptors are initialized with __set_name__ after class creation.
 +
 +Library
 +-------
 +
 +- Issue #26027, #27524: Add PEP 519/__fspath__() support to the os and os.path
 +  modules. Includes code from Jelle Zijlstra.
 +
 +- Issue #27598: Add Collections to collections.abc.
 +  Patch by Ivan Levkivskyi, docs by Neil Girdhar.
 +
 +- Issue #25958: Support "anti-registration" of special methods from
 +  various ABCs, like __hash__, __iter__ or __len__.  All these (and
 +  several more) can be set to None in an implementation class and the
 +  behavior will be as if the method is not defined at all.
 +  (Previously, this mechanism existed only for __hash__, to make
 +  mutable classes unhashable.)  Code contributed by Andrew Barnert and
 +  Ivan Levkivskyi.
 +
 +- Issue #16764: Support keyword arguments to zlib.decompress().  Patch by
 +  Xiang Zhang.
 +
 +- Issue #27736: Prevent segfault after interpreter re-initialization due
 +  to ref count problem introduced in code for Issue #27038 in 3.6.0a3.
 +  Patch by Xiang Zhang.
 +
 +- Issue #25628:  The *verbose* and *rename* parameters for
 +  collections.namedtuple are now keyword-only.
 +
 +- Issue #12345: Add mathematical constant tau to math and cmath. See also
 +  PEP 628.
 +
 +- Issue #26823: traceback.StackSummary.format now abbreviates large sections of
 +  repeated lines as "[Previous line repeated {count} more times]" (this change
 +  then further affects other traceback display operations in the module). Patch
 +  by Emanuel Barry.
 +
 +- Issue #27664: Add to concurrent.futures.thread.ThreadPoolExecutor()
 +  the ability to specify a thread name prefix.
 +
 +- Issue #27181: Add geometric_mean and harmonic_mean to statistics module.
 +
 +- Issue #27573: code.interact now prints an message when exiting.
 +
 +- Issue #6422: Add autorange method to timeit.Timer objects.
 +
 +- Issue #27773: Correct some memory management errors server_hostname in
 +  _ssl.wrap_socket().
 +
 +- Issue #26750: unittest.mock.create_autospec() now works properly for
 +  subclasses of property() and other data descriptors.  Removes the never
 +  publicly used, never documented unittest.mock.DescriptorTypes tuple.
 +
 +- Issue #26754: Undocumented support of general bytes-like objects
 +  as path in compile() and similar functions is now deprecated.
 +
 +- Issue #26800: Undocumented support of general bytes-like objects
 +  as paths in os functions is now deprecated.
 +
 +- Issue #26981: Add _order_ compatibility shim to enum.Enum for
 +  Python 2/3 code bases.
 +
 +- Issue #27661: Added tzinfo keyword argument to datetime.combine.
 +
 +- In the curses module, raise an error if window.getstr() or window.instr() is
 +  passed a negative value.
 +
 +- Issue #27783: Fix possible usage of uninitialized memory in
 +  operator.methodcaller.
 +
 +- Issue #27774: Fix possible Py_DECREF on unowned object in _sre.
 +
 +- Issue #27760: Fix possible integer overflow in binascii.b2a_qp.
 +
 +- Issue #27758: Fix possible integer overflow in the _csv module for large
 +  record lengths.
 +
 +- Issue #27568: Prevent HTTPoxy attack (CVE-2016-1000110). Ignore the
 +  HTTP_PROXY variable when REQUEST_METHOD environment is set, which indicates
 +  that the script is in CGI mode.
 +
 +- Issue #7063: Remove dead code from the "array" module's slice handling.
 +  Patch by Chuck.
 +
 +- Issue #27656: Do not assume sched.h defines any SCHED_* constants.
 +
 +- Issue #27130: In the "zlib" module, fix handling of large buffers
 +  (typically 4 GiB) when compressing and decompressing.  Previously, inputs
 +  were limited to 4 GiB, and compression and decompression operations did not
 +  properly handle results of 4 GiB.
 +
 +- Issue #24773: Implemented PEP 495 (Local Time Disambiguation).
 +
 +- Expose the EPOLLEXCLUSIVE constant (when it is defined) in the select module.
 +
 +- Issue #27567: Expose the EPOLLRDHUP and POLLRDHUP constants in the select
 +  module.
 +
 +- Issue #1621: Avoid signed int negation overflow in the "audioop" module.
 +
 +- Issue #27533: Release GIL in nt._isdir
 +
 +- Issue #17711: Fixed unpickling by the persistent ID with protocol 0.
 +  Original patch by Alexandre Vassalotti.
 +
 +- Issue #27522: Avoid an unintentional reference cycle in email.feedparser.
 +
 +- Issue #27512: Fix a segfault when os.fspath() called an __fspath__() method
 +  that raised an exception. Patch by Xiang Zhang.
 +
 +IDLE
 +----
 +
 +- Issue #27714: text_textview and test_autocomplete now pass when re-run
 +  in the same process.  This occurs when test_idle fails when run with the
 +  -w option but without -jn.  Fix warning from test_config.
 +
 +- Issue #27621: Put query response validation error messages in the query
 +  box itself instead of in a separate massagebox.  Redo tests to match.
 +  Add Mac OSX refinements.  Original patch by Mark Roseman.
 +
 +- Issue #27620: Escape key now closes Query box as cancelled.
 +
 +- Issue #27609: IDLE: tab after initial whitespace should tab, not
 +  autocomplete. This fixes problem with writing docstrings at least
 +  twice indented.
 +
 +- Issue #27609: Explicitly return None when there are also non-None
 +  returns. In a few cases, reverse a condition and eliminate a return.
 +
 +- Issue #25507: IDLE no longer runs buggy code because of its tkinter imports.
 +  Users must include the same imports required to run directly in Python.
 +
 +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
 +  Make the default key set depend on the platform.
 +  Add tests for the changes to the config module.
 +
 +- Issue #27452: add line counter and crc to IDLE configHandler test dump.
 +
 +Tests
 +-----
 +
 +- Issue #25805: Skip a test in test_pkgutil as needed that doesn't work when
 +  ``__name__ == __main__``. Patch by SilentGhost.
 +
 +- Issue #27472: Add test.support.unix_shell as the path to the default shell.
 +
 +- Issue #27369: In test_pyexpat, avoid testing an error message detail that
 +  changed in Expat 2.2.0.
 +
 +- Issue #27594: Prevent assertion error when running test_ast with coverage
 +  enabled: ensure code object has a valid first line number.
 +  Patch suggested by Ivan Levkivskyi.
 +
 +Windows
 +-------
 +
 +- Issue #27647: Update bundled Tcl/Tk to 8.6.6.
 +
 +- Issue #27610: Adds PEP 514 metadata to Windows installer
 +
 +- Issue #27469: Adds a shell extension to the launcher so that drag and drop
 +  works correctly.
 +
 +- Issue #27309: Enables proper Windows styles in python[w].exe manifest.
 +
 +Build
 +-----
 +
 +- Issue #27713: Suppress spurious build warnings when updating importlib's
 +  bootstrap files.  Patch by Xiang Zhang
 +
 +- Issue #25825: Correct the references to Modules/python.exp, which is
 +  required on AIX.  The references were accidentally changed in 3.5.0a1.
 +
 +- Issue #27453: CPP invocation in configure must use CPPFLAGS. Patch by
 +  Chi Hsuan Yen.
 +
 +- Issue #27641: The configure script now inserts comments into the makefile
 +  to prevent the pgen and _freeze_importlib executables from being cross-
 +  compiled.
 +
 +- Issue #26662: Set PYTHON_FOR_GEN in configure as the Python program to be
 +  used for file generation during the build.
 +
 +- Issue #10910: Avoid C++ compilation errors on FreeBSD and OS X.
 +  Also update FreedBSD version checks for the original ctype UTF-8 workaround.
 +
 +What's New in Python 3.6.0 alpha 3
 +==================================
 +
 +*Release date: 2016-07-11*
 +
 +Core and Builtins
 +-----------------
 +
 +- Issue #27473: Fixed possible integer overflow in bytes and bytearray
 +  concatenations.  Patch by Xiang Zhang.
 +
 +- Issue #23034: The output of a special Python build with defined COUNT_ALLOCS,
 +  SHOW_ALLOC_COUNT or SHOW_TRACK_COUNT macros is now off by  default.  It can
 +  be re-enabled using the "-X showalloccount" option.  It now outputs to stderr
 +  instead of stdout.
 +
 +- Issue #27443: __length_hint__() of bytearray iterators no longer return a
 +  negative integer for a resized bytearray.
 +
 +- Issue #27007: The fromhex() class methods of bytes and bytearray subclasses
 +  now return an instance of corresponding subclass.
 +
 +Library
 +-------
 +
 +- Issue #26844: Fix error message for imp.find_module() to refer to 'path'
 +  instead of 'name'. Patch by Lev Maximov.
 +
 +- Issue #23804: Fix SSL zero-length recv() calls to not block and not raise
 +  an error about unclean EOF.
 +
 +- Issue #27466: Change time format returned by http.cookie.time2netscape,
 +  confirming the netscape cookie format and making it consistent with
 +  documentation.
 +
 +- Issue #21708: Deprecated dbm.dumb behavior that differs from common dbm
 +  behavior: creating a database in 'r' and 'w' modes and modifying a database
 +  in 'r' mode.
 +
 +- Issue #26721: Change the socketserver.StreamRequestHandler.wfile attribute
 +  to implement BufferedIOBase. In particular, the write() method no longer
 +  does partial writes.
 +
 +- Issue #22115: Added methods trace_add, trace_remove and trace_info in the
 +  tkinter.Variable class.  They replace old methods trace_variable, trace,
 +  trace_vdelete and trace_vinfo that use obsolete Tcl commands and might
 +  not work in future versions of Tcl.  Fixed old tracing methods:
 +  trace_vdelete() with wrong mode no longer break tracing, trace_vinfo() now
 +  always returns a list of pairs of strings, tracing in the "u" mode now works.
 +
 +- Issue #26243: Only the level argument to zlib.compress() is keyword argument
 +  now.  The first argument is positional-only.
 +
 +- Issue #27038: Expose the DirEntry type as os.DirEntry. Code patch by
 +  Jelle Zijlstra.
 +
 +- Issue #27186: Update os.fspath()/PyOS_FSPath() to check the return value of
 +  __fspath__() to be either str or bytes.
 +
 +- Issue #18726: All optional parameters of the dump(), dumps(),
 +  load() and loads() functions and JSONEncoder and JSONDecoder class
 +  constructors in the json module are now keyword-only.
 +
 +- Issue #27319: Methods selection_set(), selection_add(), selection_remove()
 +  and selection_toggle() of ttk.TreeView now allow passing multiple items as
 +  multiple arguments instead of passing them as a tuple.  Deprecated
 +  undocumented ability of calling the selection() method with arguments.
 +
 +- Issue #27079: Fixed curses.ascii functions isblank(), iscntrl() and ispunct().
 +
 +- Issue #27294: Numerical state in the repr for Tkinter event objects is now
 +  represented as a combination of known flags.
 +
 +- Issue #27177: Match objects in the re module now support index-like objects
 +  as group indices.  Based on patches by Jeroen Demeyer and Xiang Zhang.
 +
 +- Issue #26754: Some functions (compile() etc) accepted a filename argument
 +  encoded as an iterable of integers. Now only strings and byte-like objects
 +  are accepted.
 +
 +- Issue #26536: socket.ioctl now supports SIO_LOOPBACK_FAST_PATH. Patch by
 +  Daniel Stokes.
 +
 +- Issue #27048: Prevents distutils failing on Windows when environment
 +  variables contain non-ASCII characters
 +
 +- Issue #27330: Fixed possible leaks in the ctypes module.
 +
 +- Issue #27238: Got rid of bare excepts in the turtle module.  Original patch
 +  by Jelle Zijlstra.
 +
 +- Issue #27122: When an exception is raised within the context being managed
 +  by a contextlib.ExitStack() and one of the exit stack generators
 +  catches and raises it in a chain, do not re-raise the original exception
 +  when exiting, let the new chained one through.  This avoids the PEP 479
 +  bug described in issue25782.
 +
 +- [Security] Issue #27278: Fix os.urandom() implementation using getrandom() on
 +  Linux.  Truncate size to INT_MAX and loop until we collected enough random
 +  bytes, instead of casting a directly Py_ssize_t to int.
 +
 +- Issue #16864: sqlite3.Cursor.lastrowid now supports REPLACE statement.
 +  Initial patch by Alex LordThorsen.
 +
 +- Issue #26386: Fixed ttk.TreeView selection operations with item id's
 +  containing spaces.
 +
 +- Issue #8637: Honor a pager set by the env var MANPAGER (in preference to
 +  one set by the env var PAGER).
 +
 +- [Security] Issue #22636: Avoid shell injection problems with
 +  ctypes.util.find_library().
 +
 +- Issue #16182: Fix various functions in the "readline" module to use the
 +  locale encoding, and fix get_begidx() and get_endidx() to return code point
 +  indexes.
 +
 +- Issue #27392: Add loop.connect_accepted_socket().
 +  Patch by Jim Fulton.
 +
 +IDLE
 +----
 +
 +- Issue #27477: IDLE search dialogs now use ttk widgets.
 +
 +- Issue #27173: Add 'IDLE Modern Unix' to the built-in key sets.
 +  Make the default key set depend on the platform.
 +  Add tests for the changes to the config module.
 +
 +- Issue #27452: make command line "idle-test> python test_help.py" work.
 +  __file__ is relative when python is started in the file's directory.
 +
 +- Issue #27452: add line counter and crc to IDLE configHandler test dump.
 +
 +- Issue #27380: IDLE: add query.py with base Query dialog and ttk widgets.
 +  Module had subclasses SectionName, ModuleName, and HelpSource, which are
 +  used to get information from users by configdialog and file =>Load Module.
 +  Each subclass has itw own validity checks.  Using ModuleName allows users
 +  to edit bad module names instead of starting over.
 +  Add tests and delete the two files combined into the new one.
 +
 +- Issue #27372: Test_idle no longer changes the locale.
 +
 +- Issue #27365: Allow non-ascii chars in IDLE NEWS.txt, for contributor names.
 +
 +- Issue #27245: IDLE: Cleanly delete custom themes and key bindings.
 +  Previously, when IDLE was started from a console or by import, a cascade
 +  of warnings was emitted.  Patch by Serhiy Storchaka.
 +
 +- Issue #24137: Run IDLE, test_idle, and htest with tkinter default root
 +  disabled.  Fix code and tests that fail with this restriction.  Fix htests to
 +  not create a second and redundant root and mainloop.
 +
 +- Issue #27310: Fix IDLE.app failure to launch on OS X due to vestigial import.
 +
 +C API
 +-----
 +
 +- Issue #26754: PyUnicode_FSDecoder() accepted a filename argument encoded as
 +  an iterable of integers. Now only strings and byte-like objects are accepted.
 +
 +Build
 +-----
  
  - Issue #28066: Fix the logic that searches build directories for generated
    include files when building outside the source tree.