diff options
Diffstat (limited to 'CHANGELOG.md')
-rw-r--r-- | CHANGELOG.md | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 16863e9..a29963a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,90 @@ CHANGELOG ========= +2.0.0-pre.1 +----------- + + * Drop R16 support + + * Breaking update of the cowboy_req interface + + Simplify the interface for most cowboy_req functions. They all return + a single value except the four body reading functions. The reply functions + now only return a Req value. + + Access functions do not return a Req anymore. + + Functions that used to cache results do not have a cache anymore. + + The interface for accessing query string and cookies has therefore + been changed. + + None of the functions return an error tuple anymore. It either works + or crashes. Cowboy will attempt to provide an appropriate status code + in the response of crashed handlers. + + As a result, the content decode function has its return value changed + to a simple binary, and the body reading functions only return on success. + + * Change interface for reading the query string and cookies + + There are now three query string functions: qs/1 provides access + to the raw query string value; parse_qs/1 returns the query string + as a list of key/values; match_qs/2 returns a map containing the + values requested in the second argument, after applying constraints + and default value. + + Similarly, there are two cookie functions: parse_cookies/1 and + match_cookies/2. More match functions will be added in future commits. + + * Unify the init and terminate callbacks + + `init/3` becomes `init/2`, its first argument was removed. Its return + value has changed, it now returns an `ok` tuple or a `Mod` tuple, the + latter allowing to switch to a different handler type and also able + to take timeout and hibernate options. The sub protocol interface has + been changed and receives these options now. + + rest_init/2 and rest_terminate/2 have been removed. + + websocket_init/3 and websocket_terminate/3 have been removed. + + terminate/3 is now optional. It is called regardless of + the type of handler, including REST and Websocket. + + Terminate reasons for all handler types have been documented. + The terminate callback is now appropriately called in all cases + (or should be). + + * Plain HTTP handlers are virtually removed + + You can use the `init/2` function to do the work of a plain HTTP + handler. The behavior is defined in `cowboy_handler`. + + * Loop handlers are now the `cowboy_loop` sub protocol + + * Loop handlers now use the same return values as Websocket + + * Behaviors have been moved into the module implementing them + + That means `cowboy_loop`, `cowboy_rest` and `cowboy_websocket`. + + * Change the format for constraints used by the router + + * Remove the onrequest hook + + Use a middleware instead. + + * Remove the `error` return value from middlewares + + * Remove the REST `known_content_type` callback + + * Improve absolute URI support + + * Fix two edge cases when the request-line is invalid + + * Guide reorganization and partial rewrite + 1.0.0 ----- |