Roll changelog
A changelog:
- is breaking-change-oriented
- links to related issues
- is concise
Analogy: git blame :p
0.13.0 - 2021-05-18
- Breaking change:
requestevent is now sent after the URL matching and the HTTP verb check, please use the newheadersevent for these use cases.
- Added new
headersevent, to hook after request headers have been read, but before the request body has been consumed. (#227) - Added method
Request.read()to load and consume request body in one call
0.12.4 - 2020-12-03
- Python 3.9 support
0.12.3 - 2020-07-21
- Added
credentialsparameter tocorsextension, to deal withAccess-Control-Allow-Credentialsheader (#155)
0.12.2 - 2020-06-22
0.12.1 - 2020-06-22
- Fixed request not properly drained in case of error (#138)
- Moved
app.url_forhelper to a dedicated extension:named_url(#143) - Added
request.referrerandrequest.originshortcuts (#147)
0.12.0 - 2020-06-14
- Added
app.url_forhelper (#136) - Added
response.redirectshortcut (#134) - Fixed URL not quoted in testing utility
- Added
default_indextostaticextension (#95) - Added support for streamed responses (#89)
- Added support for async reading of request body (#89)
Request.jsonis now cached (#90)
0.11.0 - 2019-05-07
- Breaking change:
- Removed python 3.5 support (#81)
- Added support for class-based views (#80)
- Added support for chunked response (#81)
0.10.0 - 2018-11-08
- python 3.7 compatibility (bump websockets and biscuits packages) (#69)
- uvloop is not a dependency anymore (but you should still use it!): need was to allow installing Roll without uvloop is some envs, and to let the users define the uvloop version they want to use (#68)
Request.methodisNoneby default (#67)- allow to use
methods=*incorsextension (#65)
0.9.1 - 2018-06-11
- Do not try to write on a closed transport (#58)
0.9.0 - 2018-06-04
- Breaking changes:
Request.routeis now always set, butRequest.route.payloadisNonewhen path is not found. This allows to catch a not found request in therequesthook. Note: if therequesthook does not return a response, a 404 is still automatically raised. (#45)
- Added
request.hostshortcut (#43) - Introduced protocol upgrade and protocol configuration for routes. Two protocols are shipped by default : HTTP and Websocket (#54).
- The route is now resolved as soon as the URL has been parsed. In addition, the
route lookup method has been split up from the application
__call__method, to allow easy override (#54). - Testing: now build a proper request instead of calling callbacks by hand (#54).
0.8.0 - 2017-12-11
- Breaking changes:
RequestandResponseclasses now takeappas init parameter. It allows lazy parsing of the query while keeping theQueryclass reference onRollapplication. (#35)
- Added support for request body parsing through multifruits (#38)
0.7.0 - 2017-11-27
- Breaking changes:
Query,RequestandResponseare not anymore attached to theProtocolclass. They are now declared at theRollclass level. It allows easier subclassing and customization of these parts. (#30)- Removed Request.kwargs in favor of inheriting from dict, to store user data in a separate space (#33)
- Request headers are now normalized in upper case, to work around inconsistent casing in clients (#24)
- Only set the body and Content-Length header when necessary (#31)
- Added
cookiessupport (#28)
0.6.0 — 2017-11-22
- Breaking changes:
- Changed
Roll.hooksignature to also accept kwargs (#5) jsonshorcut setsutf-8charset inContent-Typeheader (#13)- Added
staticextension to serve static files for development (#16) corsacceptsheadersparameter to controlAccess-Control-Allow-Headers(#12)- Added
content_negociationextension to reject unacceptable client requests based on theAcceptheader (#21) - Allow to set multiple
Set-Cookieheaders (#23)
0.5.0 — 2017-09-21
- Breaking change:
order of parameters in events is always
request,responseand optionnalyerrorif any, in that particular order. - Add documentation.
- Move project to Github.
0.4.0 — 2017-09-21
- Breaking change:
routes placeholder syntax changed from
:parameterto{parameter} - Switch routes from kua to autoroutes for performances.
0.3.0 — 2017-09-21
- Breaking change:
corsextension parameter is no longervaluebutorigin - Improve benchmarks and overall performances.
0.2.0 — 2017-08-25
- Resolve HTTP status only at response write time.
0.1.1 — 2017-08-25
- Fix
setup.py.
0.1.0 — 2017-08-25
- First release