17 Nov 2017

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


16 Nov 2017

  • CherryPy #1088 and #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).


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
  • #44: Fix EPROTOTYPE @ Mac OS


07 Aug 2017

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


05 Aug 2017

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


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 _compat module
  • #38 via #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


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


20 Jun 2017


18 Jun 2017


18 Jun 2017


02 May 2017

  • #17 via #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.

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


19 Mar 2017

#22: Add “ciphers” parameter to SSLAdapter.


12 Mar 2017

#8: Updated style to better conform to PEP 8.

Refreshed project with jaraco skeleton.

Docs now built and deployed at RTD.


02 Mar 2017

#5: Set Server.version to Cheroot version instead of CherryPy version.

#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


22 Jan 2017

Removed the WSGI prefix from classes in :module:`cheroot.wsgi`. Kept aliases for compatibility.

#1: Corrected docstrings in :module:`cheroot.server` and :module:`cheroot.wsgi`.

#2: Fixed ImportError when pkg_resources cannot find the
cheroot distribution.


14 Jan 2017

Fix error in parse_request_uri created in 68a5769.


14 Jan 2017

Initial release based on cherrypy.cherrypy.wsgiserver 8.8.0.