History

v6.3.3

10 Jul 2018

  • Fix bug with returning empty result in cheroot.ssl.builtin.BuiltinSSLAdapter.wrap()

v6.3.2

16 Jun 2018

  • #100 via PR #101: Respond with HTTP 400 to malicious Content-Length in request headers.

v6.3.1

21 May 2018

  • CherryPy #1618: Ignore OpenSSL’s 1.0+ Error 0 under Python 2 while wrapping a socket.

v6.3.0

17 May 2018

  • PR #87: Add cheroot command and runpy launcher to launch a WSGI app from the command-line.

v6.2.4

19 Apr 2018

  • Fix missing resolve_peer_creds argument in cheroot.wsgi.Server being bypassed into cheroot.server.HTTPServer.
  • PR #85: Revert conditional dependencies. System packagers should honor the dependencies as declared by cheroot, which are defined intentionally.

v6.2.3

14 Apr 2018

  • PR #85: Skip installing dependencies from backports namespace under Python 3.

v6.2.2

14 Apr 2018

v6.2.1

10 Apr 2018

  • PR #83: Fix regression, caused by inverted check for Windows OS.
  • Add more URLs to distribution metadata

v6.2.0

10 Apr 2018

  • 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

v6.1.2

08 Apr 2018

v6.1.1

07 Apr 2018

v6.1.0

05 Apr 2018

  • PR #67: Refactor testsuite to completely rely on pytest.
    • Integrate pytest-testmon and pytest-watch
    • Stabilise testing
  • CherryPy #1664 via PR #66: Implement input termination flag support as suggested by @mitsuhiko in his wsgi.input_terminated Proposal.
  • #73: Fix SSL error bypassing.
  • #77 via PR #78: Fix WSGI documentation example to support Python 3.
  • PR #76: Send correct conditional HTTP error in helper function.
  • CherryPy #1404 via PR #75: Fix headers being unsent before request closed. Now we double check that they’ve been sent.
  • Minor docs improvements.
  • Minor refactoring.

v6.0.0

04 Dec 2017

  • 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.

v5.11.0

04 Dec 2017

  • CherryPy #1621: To support webtest applications that feed absolute URIs to getPage but expect the scheme/host/port to be ignored (as cheroot 5.8 and earlier did), provide a strip_netloc helper and recipe for calling it in a subclass.

v5.10.0

23 Nov 2017

  • Minor refactorings of cheroot/server.py to reduce redundancy of behavior.
  • Delinting with fewer exceptions.
  • Restored license to BSD.

v5.9.2

23 Nov 2017

  • #61: Re-release without spurious files in the distribution.

v5.9.1

17 Nov 2017

  • #58: Reverted encoding behavior in wsgi module to correct regression in CherryPy tests.

v5.9.0

16 Nov 2017

  • CherryPy #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 (_compat module).
  • License unintentionally changed to MIT. BSD still declared and intended.

v5.8.3

11 Aug 2017

  • 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

v5.8.2

07 Aug 2017

  • Fix PR #39 regression. Add HTTP request line check: absolute URI path must start with a forward slash (“/”).

v5.8.1

05 Aug 2017

  • CI improvements:
    • Add basic working Circle CI v2 config
  • Fix URI encoding bug introduced in PR #39
    • Improve cheroot.test.helper.Controller to properly match unicode

v5.8.0

01 Aug 2017

  • 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 cheroot._compat
  • #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

v5.7.0

24 Jun 2017

  • CI improvements:
    • Don’t run tests during deploy stage
    • Use VM based build job env only for pyenv envs
    • Opt-in for beta trusty image @ Travis CI
    • Be verbose when running tests (show test names)
    • Show xfail/skip details during test run
  • #34: Fix _handle_no_ssl error handler calls
  • #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
  • #36: Add GitHub templates for PR, issue && contributing
  • #27: Default HTTP Server header to Cheroot version str
  • Cleanup _compat functions from server module

v5.6.0

20 Jun 2017

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

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

  • CherryPy #1602 and PR #30: Optimize chunked body reader loop by returning empty data is the size is 0.

  • CherryPy #1486: Reset buffer if the body size is unknown

  • CherryPy #1131: Add missing size hint to SizeCheckWrapper

v5.5.2

18 Jun 2017

v5.5.1

18 Jun 2017

v5.5.0

02 May 2017

  • #17 via PR #25: Instead of a read_headers function, cheroot now supplies a HeaderReader class to perform the same function.

    Any HTTPRequest object may override the header_reader attribute to customize the handling of incoming headers.

    The server module also presents a provisional implementation of a DropUnderscoreHeaderReader that will exclude any headers containing an underscore. It remains an exercise for the implementer to demonstrate how this functionality might be employed in a server such as CherryPy.

  • PR #26: Configured TravisCI to run tests under OS X.

v5.4.0

19 Mar 2017

  • PR #22: Add “ciphers” parameter to SSLAdapter.

v5.3.0

12 Mar 2017

v5.2.0

02 Mar 2017

  • #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.
  • #3: Test suite now runs and many tests pass. Some are still failing.

v5.1.0

22 Jan 2017

v5.0.1

14 Jan 2017

  • Fix error in parse_request_uri created in 68a5769.

v5.0.0

14 Jan 2017