+++++++++++
Python News
+++++++++++

What's New in Python 2.7.14 release candidate 1?
================================================

*Release date: 2017-08-26*

Security
--------

- bpo-30947: Upgrade libexpat embedded copy from version 2.2.1 to 2.2.3 to
  get security fixes.

Core and Builtins
-----------------

- bpo-30765: Avoid blocking in pthread_mutex_lock() when
  PyThread_acquire_lock() is asked not to block.

Library
-------

- bpo-31135: ttk: Fix LabeledScale and OptionMenu destroy() method. Call the
  parent destroy() method even if the used attribute doesn't exist. The
  LabeledScale.destroy() method now also explicitly clears label and scale
  attributes to help the garbage collector to destroy all widgets.

- bpo-31107: Fix `copy_reg._slotnames()` mangled attribute calculation for
  classes whose name begins with an underscore. Patch by Shane Harvey.

- bpo-29519: Fix weakref spewing exceptions during interpreter shutdown when
  used with a rare combination of multiprocessing and custom codecs.

- bpo-30119: ftplib.FTP.putline() now throws ValueError on commands that
  contains CR or LF. Patch by Dong-hee Na.

- bpo-30595: multiprocessing.Queue.get() with a timeout now polls its reader
  in non- blocking mode if it succeeded to aquire the lock but the acquire
  took longer than the timeout.

- bpo-29902: Py3k deprecation warning now is emitted when pickling or
  copying some builtin and extension objects that don't support pickling
  explicitly and are pickled incorrectly by default (like memoryview or
  staticmethod).  This is a TypeError in Python 3.6.

- bpo-29854: Fix segfault in readline when using readline's history-size
  option.  Patch by Nir Soffer.

- bpo-30807: signal.setitimer() may disable the timer when passed a tiny
  value.

  Tiny values (such as 1e-6) are valid non-zero values for setitimer(),
  which is specified as taking microsecond-resolution intervals. However, on
  some platform, our conversion routine could convert 1e-6 into a zero
  interval, therefore disabling the timer instead of (re-)scheduling it.

Tests
-----

- bpo-30715: Address ALPN callback changes for OpenSSL 1.1.0f. The latest
  version behaves like OpenSSL 1.0.2 and no longer aborts handshake.

- bpo-30822: Fix regrtest command line parser to allow passing -u
  extralargefile to run test_zipfile64.

- bpo-30283: regrtest: Enhance regrtest and backport features from the
  master branch.

  Add options: --coverage, --testdir, --list-tests (list test files, don't
  run them), --list-cases (list test identifiers, don't run them,
  :issue:`30523`), --matchfile (load a list of test filters from a text
  file, :issue:`30540`), --slowest (alias to --slow).

  Enhance output: add timestamp, test result, currently running tests,
  "Tests result: xxx" summary with total duration, etc.

  Fix reference leak hunting in regrtest, --huntrleaks: regrtest now warms
  up caches, create explicitly all internal singletons which are created on
  demand to prevent false positives when checking for reference leaks.
  (:issue:`30675`).


**(For information about older versions, consult the HISTORY file.)**
