From: Ben Darnell Date: Sun, 10 May 2015 17:08:59 +0000 (-0400) Subject: Set version number to 4.2b1 X-Git-Tag: v4.2.0b1~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c46aaebe58271f7b6c97331de67e193c89d65961;p=thirdparty%2Ftornado.git Set version number to 4.2b1 --- diff --git a/docs/releases.rst b/docs/releases.rst index 661d398ad..dd6c54f9e 100644 --- a/docs/releases.rst +++ b/docs/releases.rst @@ -4,7 +4,7 @@ Release notes .. toctree:: :maxdepth: 2 - releases/next + releases/v4.2.0 releases/v4.1.0 releases/v4.0.2 releases/v4.0.1 diff --git a/docs/releases/next.rst b/docs/releases/next.rst deleted file mode 100644 index 9c370815f..000000000 --- a/docs/releases/next.rst +++ /dev/null @@ -1,247 +0,0 @@ -What's new in the next version of Tornado -========================================= - -In Progress ------------ - -Backwards-compatibility notes -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* ``SSLIOStream.connect`` and `.IOStream.start_tls` now validate certificates - by default. -* Certificate validation will now use the system CA root certificates instead - of ``certifi`` when possible (i.e. Python 2.7.9+ or 3.4+). This includes - `.IOStream` and ``simple_httpclient``, but not ``curl_httpclient``. -* The default SSL configuration has become stricter, using - `ssl.create_default_context` where available. -* The deprecated classes in the `tornado.auth` module, ``GoogleMixin``, - ``FacebookMixin``, and ``FriendFeedMixin`` have been removed. - -New modules: `tornado.locks` and `tornado.queues` -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -These modules provide classes for coordinating coroutines, merged from -`Toro `_. - -To port your code from Toro's queues to Tornado 4.2, import `.Queue`, -`.PriorityQueue`, or `.LifoQueue` from `tornado.queues` instead of from -``toro``. - -Use `.Queue` instead of Toro's ``JoinableQueue``. In Tornado the methods -`~.Queue.join` and `~.Queue.task_done` are available on all queues, not on a -special ``JoinableQueue``. - -Tornado queues raise exceptions specific to Tornado instead of reusing -exceptions from the Python standard library. -Therefore instead of catching the standard `queue.Empty` exception from -`.Queue.get_nowait`, catch the special `tornado.queues.QueueEmpty` exception, -and instead of catching the standard `queue.Full` from `.Queue.get_nowait`, -catch `tornado.queues.QueueFull`. - -To port from Toro's locks to Tornado 4.2, import `.Condition`, `.Event`, -`.Semaphore`, `.BoundedSemaphore`, or `.Lock` from `tornado.locks` -instead of from ``toro``. - -Toro's ``Semaphore.wait`` allowed a coroutine to wait for the semaphore to -be unlocked *without* acquiring it. This encouraged unorthodox patterns; in -Tornado, just use `~.Semaphore.acquire`. - -Toro's ``Event.wait`` raised a ``Timeout`` exception after a timeout. In -Tornado, `.Event.wait` raises `tornado.gen.TimeoutError`. - -Toro's ``Condition.wait`` also raised ``Timeout``, but in Tornado, the `.Future` -returned by `.Condition.wait` resolves to False after a timeout:: - - @gen.coroutine - def await_notification(): - if not (yield condition.wait(timeout=timedelta(seconds=1))): - print('timed out') - else: - print('condition is true') - -In lock and queue methods, wherever Toro accepted ``deadline`` as a keyword -argument, Tornado names the argument ``timeout`` instead. - -Toro's ``AsyncResult`` is not merged into Tornado, nor its exceptions -``NotReady`` and ``AlreadySet``. Use a `.Future` instead. If you wrote code like -this:: - - from tornado import gen - import toro - - result = toro.AsyncResult() - - @gen.coroutine - def setter(): - result.set(1) - - @gen.coroutine - def getter(): - value = yield result.get() - print(value) # Prints "1". - -Then the Tornado equivalent is:: - - from tornado import gen - from tornado.concurrent import Future - - result = Future() - - @gen.coroutine - def setter(): - result.set_result(1) - - @gen.coroutine - def getter(): - value = yield result - print(value) # Prints "1". - -`tornado.autoreload` -~~~~~~~~~~~~~~~~~~~~ - -* Improved compatibility with Windows. -* Fixed a bug in Python 3 if a module was imported during a reload check. - -`tornado.concurrent` -~~~~~~~~~~~~~~~~~~~~ - -* `.run_on_executor` now accepts arguments to control which attributes - it uses to find the `.IOLoop` and executor. - -`tornado.curl_httpclient` -~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Fixed a bug that would cause the client to stop processing requests - if an exception occurred in certain places while there is a queue. - -`tornado.escape` -~~~~~~~~~~~~~~~~ - -* `.xhtml_escape` now supports numeric character references in hex - format (`` ``) - -`tornado.gen` -~~~~~~~~~~~~~ - -* `.WaitIterator` no longer uses weak references, which fixes several - garbage-collection-related bugs. -* `tornado.gen.Multi` and `tornado.gen.multi_future` (which are used when - yielding a list or dict in a coroutine) now log any exceptions after the - first if more than one `.Future` fails (previously they would be logged - when the `.Future` was garbage-collected, but this is more reliable). - Both have a new keyword argument ``quiet_exceptions`` to suppress - logging of certain exception types; to use this argument you must - call ``Multi`` or ``multi_future`` directly instead of simply yielding - a list. -* `.multi_future` now works when given multiple copies of the same `.Future`. -* On Python 3, catching an exception in a coroutine no longer leads to - leaks via ``Exception.__context__``. - -`tornado.httpclient` -~~~~~~~~~~~~~~~~~~~~ - -* The ``raise_error`` argument now works correctly with the synchronous - `.HTTPClient`. -* The synchronous `.HTTPClient` no longer interferes with `.IOLoop.current()`. - -`tornado.httpserver` -~~~~~~~~~~~~~~~~~~~~ - -* `.HTTPServer` is now a subclass of `tornado.util.Configurable`. - -`tornado.httputil` -~~~~~~~~~~~~~~~~~~ - -* `.HTTPHeaders` can now be copied with `copy.copy` and `copy.deepcopy`. - -`tornado.ioloop` -~~~~~~~~~~~~~~~~ - -* The `.IOLoop` constructor now has a ``make_current`` keyword argument - to control whether the new `.IOLoop` becomes `.IOLoop.current()`. -* Third-party implementations of `.IOLoop` should accept ``**kwargs`` - in their `~.IOLoop.initialize` methods and pass them to the superclass - implementation. -* `.PeriodicCallback` is now more efficient when the clock jumps forward - by a large amount. - -`tornado.iostream` -~~~~~~~~~~~~~~~~~~ - -* ``SSLIOStream.connect`` and `.IOStream.start_tls` now validate certificates - by default. -* New method `.SSLIOStream.wait_for_handshake` allows server-side applications - to wait for the handshake to complete in order to verify client certificates - or use NPN/ALPN. -* The `.Future` returned by ``SSLIOStream.connect`` now resolves after the - handshake is complete instead of as soon as the TCP connection is - established. -* Reduced logging of SSL errors. -* `.BaseIOStream.read_until_close` now works correctly when a - ``streaming_callback`` is given but ``callback`` is None (i.e. when - it returns a `.Future`) - -`tornado.locale` -~~~~~~~~~~~~~~~~ - -* New method `.GettextLocale.pgettext` allows additional context to be - supplied for gettext translations. - -`tornado.log` -~~~~~~~~~~~~~ - -* `.define_logging_options` now works correctly when given a non-default - ``options`` object. - -`tornado.process` -~~~~~~~~~~~~~~~~~ - -* New method `.Subprocess.wait_for_exit` is a coroutine-friendly - version of `.Subprocess.set_exit_callback`. - -`tornado.simple_httpclient` -~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -* Improved performance on Python 3 by reusing a single `ssl.SSLContext`. -* New constructor argument ``max_body_size`` controls the maximum response - size the client is willing to accept. It may be bigger than - ``max_buffer_size`` if ``streaming_callback`` is used. - -`tornado.tcpserver` -~~~~~~~~~~~~~~~~~~~ - -* `.TCPServer.handle_stream` may be a coroutine (so that any exceptions - it raises will be logged). - -`tornado.util` -~~~~~~~~~~~~~~ - -* `.import_object` now supports unicode strings on Python 2. -* `.Configurable.initialize` now supports positional arguments. - -`tornado.web` -~~~~~~~~~~~~~ - -* Key versioning support for cookie signing. ``cookie_secret`` application - setting can now contain a dict of valid keys with version as key. The - current signing key then must be specified via ``key_version`` setting. -* Parsing of the ``If-None-Match`` header now follows the RFC and supports - weak validators. -* Passing ``secure=False`` or ``httponly=False`` to - `.RequestHandler.set_cookie` now works as expected (previously only the - presence of the argument was considered and its value was ignored). -* `.RequestHandler.get_arguments` now requires that its ``strip`` argument - be of type bool. This helps prevent errors caused by the slightly dissimilar - interfaces between the singular and plural methods. -* Errors raised in ``_handle_request_exception`` are now logged more reliably. -* `.RequestHandler.redirect` now works correctly when called from a handler - whose path begins with two slashes. -* Passing messages containing ``%`` characters to `tornado.web.HTTPError` - no longer causes broken error messages. - -`tornado.websocket` -~~~~~~~~~~~~~~~~~~~ - -* The ``on_close`` method will no longer be called more than once. -* When the other side closes a connection, we now echo the received close - code back instead of sending an empty close frame. diff --git a/setup.py b/setup.py index 4434abcaa..8d98ff2c7 100644 --- a/setup.py +++ b/setup.py @@ -99,7 +99,7 @@ http://api.mongodb.org/python/current/installation.html#osx kwargs = {} -version = "4.2.dev1" +version = "4.2b1" with open('README.rst') as f: kwargs['long_description'] = f.read() diff --git a/tornado/__init__.py b/tornado/__init__.py index 01b926be2..80f21ddd3 100644 --- a/tornado/__init__.py +++ b/tornado/__init__.py @@ -25,5 +25,5 @@ from __future__ import absolute_import, division, print_function, with_statement # is zero for an official release, positive for a development branch, # or negative for a release candidate or beta (after the base version # number has been incremented) -version = "4.2.dev1" -version_info = (4, 2, 0, -100) +version = "4.2b1" +version_info = (4, 2, 0, -99)