Skip to content

Latest commit

 

History

History
642 lines (370 loc) · 17.5 KB

CHANGES.rst

File metadata and controls

642 lines (370 loc) · 17.5 KB
.. scm-version-title:: v8.5.0

.. scm-version-title:: v8.4.8

.. scm-version-title:: v8.4.7

.. scm-version-title:: v8.4.6

.. scm-version-title:: v8.4.5

.. scm-version-title:: v8.4.4

.. scm-version-title:: v8.4.3

  • :pr:`282`: Fixed a race condition happening when an HTTP client attempts to reuse a persistent HTTP connection after it's been discarded on the server in :py:class:`~cheroot.\ server.HTTPRequest` but no TCP FIN packet has been received yet over the wire -- by :user:`meaksh`.

    This change populates the Keep-Alive header exposing the timeout value for persistent HTTP/1.1 connections which helps mitigate such race conditions by letting the client know not to reuse the connection after that time interval.

.. scm-version-title:: v8.4.2

  • Fixed a significant performance regression introduced in v8.1.0 (:issue:`305` via :pr:`308`) - by :user:`mar10`.

    The issue turned out to add 0.1s delay on new incoming connection processing. We've lowered that delay to mitigate the problem short-term, better fix is yet to come.

.. scm-version-title:: v8.4.1

.. scm-version-title:: v8.4.0

.. scm-version-title:: v8.3.1

.. scm-version-title:: v8.3.0

  • :cp-issue:`910` via :pr:`243`: Provide TLS-related details via WSGI environment interface.
  • :pr:`248`: Fix parsing of the --bind CLI option for abstract UNIX sockets.
.. scm-version-title:: v8.2.1

  • :cp-issue:`1818`: Restore support for None default argument to WebCase.getPage().
.. scm-version-title:: v8.2.0

  • Deprecated use of negative timeouts as alias for infinite timeouts in ThreadPool.stop.
  • :cp-issue:`1662` via :pr:`74`: For OPTION requests, bypass URI as path if it does not appear absolute.
.. scm-version-title:: v8.1.0

  • Workers are now request-based, addressing the long-standing issue with keep-alive connections (:issue:`91` via :pr:`199`).
.. scm-version-title:: v8.0.0

  • :issue:`231` via :pr:`232`: Remove custom setup.cfg parser handling, allowing the project (including sdist) to build/run on setuptools 41.4. Now building cheroot requires setuptools 30.3 or later (for declarative config support) and preferably 34.4 or later (as indicated in pyproject.toml).
.. scm-version-title:: v7.0.0

.. scm-version-title:: v6.6.0

.. scm-version-title:: v6.5.8

.. scm-version-title:: v6.5.7

.. scm-version-title:: v6.5.6

  • :issue:`218` via :pr:`219`: Fix HTTP parser to return 400 on invalid major-only HTTP version in Request-Line.
.. scm-version-title:: v6.5.5

.. scm-version-title:: v6.5.4

.. scm-version-title:: v6.5.3

  • :pr:`149`: Make SCRIPT_NAME optional per PEP 333.
.. scm-version-title:: v6.5.2

.. scm-version-title:: v6.5.1

.. scm-version-title:: v6.5.0

.. scm-version-title:: v6.4.0

.. scm-version-title:: v6.3.3

.. scm-version-title:: v6.3.2

.. scm-version-title:: v6.3.1

  • :cp-issue:`1618`: Ignore OpenSSL's 1.1+ Error 0 under Python 2 while wrapping a socket.
.. scm-version-title:: v6.3.0

  • :pr:`87`: Add cheroot command and runpy launcher to launch a WSGI app from the command-line.
.. scm-version-title:: v6.2.4

.. scm-version-title:: v6.2.3

  • :pr:`85`: Skip installing dependencies from backports namespace under Python 3.
.. scm-version-title:: v6.2.2

.. scm-version-title:: v6.2.1

  • :pr:`83`: Fix regression, caused by inverted check for Windows OS.
  • Add more URLs to distribution metadata
.. scm-version-title:: v6.2.0

  • :pr:`37`: Implement PEERCRED lookup over UNIX-socket HTTP connection.
    • Discover connected process' PID/UID/GID
    • Respect server switches: peercreds_enabled and peercreds_resolve_enabled
    • get_peer_creds and resolve_peer_creds methods on connection
    • peer_pid, peer_uid, peer_gid, peer_user and peer_group properties on connection
    • X_REMOTE_PID, X_REMOTE_UID, X_REMOTE_GID, X_REMOTE_USER (REMOTE_USER) and X_REMOTE_GROUP WSGI environment variables when enabled and supported
    • Per-connection caching to reduce lookup cost
.. scm-version-title:: v6.1.2

.. scm-version-title:: v6.1.1

.. scm-version-title:: v6.1.0

.. scm-version-title:: v6.0.0

  • Drop support for Python 2.6, 3.1, 3.2, and 3.3.
  • Also drop built-in SSL support for Python 2.7 earlier than 2.7.9.
.. scm-version-title:: v5.11.0

.. scm-version-title:: v5.10.0

  • Minor refactorings of cheroot/server.py to reduce redundancy of behavior.
  • Delinting with fewer exceptions.
  • Restored license to BSD.
.. scm-version-title:: v5.9.2

  • :issue:`61`: Re-release without spurious files in the distribution.
.. scm-version-title:: v5.9.1

  • :issue:`58`: Reverted encoding behavior in wsgi module to correct regression in CherryPy tests.
.. scm-version-title:: v5.9.0

  • :cp-issue:`1088` and :pr:`53`: Avoid using SO_REUSEADDR on Windows where it has different semantics.
  • cheroot.tests.webtest adopts the one method that was unique in CherryPy, now superseding the implementation there.
  • Substantial cleanup around compatibility functions (:py:mod:`~cheroot._compat` module).
  • License unintentionally changed to MIT. BSD still declared and intended.
.. scm-version-title:: v5.8.3

  • Improve HTTP request line validation:
    • Improve HTTP version parsing
  • Fix HTTP CONNECT method processing:
    • Respond with 405 Method Not Allowed if proxy_mode is False
    • Validate that request-target is in authority-form
  • Improve tests in test.test_core
  • :pr:`44`: Fix EPROTOTYPE @ Mac OS
.. scm-version-title:: v5.8.2

  • Fix :pr:`39` regression. Add HTTP request line check: absolute URI path must start with a forward slash ("/").
.. scm-version-title:: v5.8.1

.. scm-version-title:: v5.8.0

  • CI improvements:
    • Switch to native PyPy support in Travis CI
    • Take into account PEP 257 compliant modules
    • Build wheel in AppVeyor and store it as an artifact
  • Improve urllib support in :py:mod:`cheroot._compat`
  • :issue:`38` via :pr:`39`: Improve URI parsing:
    • Make it compliant with RFC 7230, RFC 7231 and RFC 2616
    • Fix setting of environ['QUERY_STRING'] in WSGI
    • Introduce proxy_mode and strict_mode argument in server.HTTPRequest
    • Fix decoding of Unicode URIs in WSGI 1.0 gateway
.. scm-version-title:: v5.7.0

  • CI improvements:
    • Don't run tests during deploy stage
    • Use VM based build job environments only for pyenv environments
    • Opt-in for beta trusty image @ Travis CI
    • Be verbose when running tests (show test names)
    • Show xfail/skip details during test run
  • :issue:`34`: Fix _handle_no_ssl error handler calls
  • :issue:`21`: Fix test_conn tests:
    • Improve setup_server def in HTTP connection tests
    • Fix HTTP streaming tests
    • Fix HTTP/1.1 pipelining test under Python 3
    • Fix test_readall_or_close test
    • Fix test_No_Message_Body
    • Clarify test_598 fail reason
  • :issue:`36`: Add GitHub templates for PR, issue && contributing
  • :issue:`27`: Default HTTP Server header to Cheroot version str
  • Cleanup :py:mod:`~cheroot._compat` functions from server module
.. scm-version-title:: v5.6.0

  • Fix all PEP 257 related errors in all non-test modules.

    cheroot/test/* folder is only one left allowed to fail with this linter.

  • :cp-issue:`1602` and :pr:`30`: Optimize chunked body reader loop by returning empty data is the size is 0.

  • :cp-issue:`1486`: Reset buffer if the body size is unknown

  • :cp-issue:`1131`: Add missing size hint to SizeCheckWrapper

.. scm-version-title:: v5.5.2

.. scm-version-title:: v5.5.1

.. scm-version-title:: v5.5.0

.. scm-version-title:: v5.4.0

  • :pr:`22`: Add "ciphers" parameter to SSLAdapter.
.. scm-version-title:: v5.3.0

.. scm-version-title:: v5.2.0

  • :issue:`5`: Set Server.version to Cheroot version instead of CherryPy version.
  • :pr:`4`: Prevent tracebacks and drop bad HTTPS connections in the BuiltinSSLAdapter, similar to pyOpenSSLAdapter.
  • :issue:`3`: Test suite now runs and many tests pass. Some are still failing.
.. scm-version-title:: v5.1.0

.. scm-version-title:: v5.0.1

.. scm-version-title:: v5.0.0