diff --git a/docs/index.rst b/docs/index.rst index 80e7e70f..9e14ddaa 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -25,6 +25,7 @@ Guides sanic/deploying sanic/extensions sanic/contributing + sanic/releases_notes Module Documentation @@ -33,4 +34,5 @@ Module Documentation .. toctree:: * :ref:`genindex` +* :ref:`modindex` * :ref:`search` diff --git a/docs/sanic/releases/v0.1.2.md b/docs/sanic/releases/v0.1.2.md new file mode 100644 index 00000000..a04cd0b2 --- /dev/null +++ b/docs/sanic/releases/v0.1.2.md @@ -0,0 +1,3 @@ +# v0.1.2 (2016-10-16) + +- 0.1.2 diff --git a/docs/sanic/releases/v0.1.3.md b/docs/sanic/releases/v0.1.3.md new file mode 100644 index 00000000..1664179a --- /dev/null +++ b/docs/sanic/releases/v0.1.3.md @@ -0,0 +1,3 @@ +# v0.1.3 (2016-10-16) + +- 0.1.3 diff --git a/docs/sanic/releases/v0.1.4.md b/docs/sanic/releases/v0.1.4.md new file mode 100644 index 00000000..d389f408 --- /dev/null +++ b/docs/sanic/releases/v0.1.4.md @@ -0,0 +1,3 @@ +# v0.1.4 (2016-10-18) + +- multiprocessing diff --git a/docs/sanic/releases/v0.1.5.md b/docs/sanic/releases/v0.1.5.md new file mode 100644 index 00000000..71f0591c --- /dev/null +++ b/docs/sanic/releases/v0.1.5.md @@ -0,0 +1,10 @@ +# v0.1.5 (2016-10-23) + +- Cookies +- Blueprint listeners and ordering +- Faster Router +- Fix: Incomplete file reads on medium+ sized post requests + +### Breaking: + +- `after_start` and `before_stop` now pass sanic as their first argument. Current event listeners will need to be updated to accept the new argument diff --git a/docs/sanic/releases/v0.1.6.md b/docs/sanic/releases/v0.1.6.md new file mode 100644 index 00000000..3c48a3d7 --- /dev/null +++ b/docs/sanic/releases/v0.1.6.md @@ -0,0 +1,5 @@ +# v0.1.6 (2016-10-25) + +## Merge pull request [#110](https://github.com/channelcat/sanic/issues/110) from channelcat/cookies-lazy-creation + +- Lazy cookie creation diff --git a/docs/sanic/releases/v0.1.7.md b/docs/sanic/releases/v0.1.7.md new file mode 100644 index 00000000..c457ba52 --- /dev/null +++ b/docs/sanic/releases/v0.1.7.md @@ -0,0 +1,6 @@ +# v0.1.7 (2016-10-25) + +## Static files + +- Static file support +- Lazy Cookie Setting (slight speed improvement when not setting cookies) diff --git a/docs/sanic/releases/v0.1.8.md b/docs/sanic/releases/v0.1.8.md new file mode 100644 index 00000000..61f474a2 --- /dev/null +++ b/docs/sanic/releases/v0.1.8.md @@ -0,0 +1,8 @@ +# v0.1.8 (2016-11-30) + +## Adding HTTPMethodView + +- Added HTTPMethodView [#167](https://github.com/channelcat/sanic/issues/167) +- Added shared request storage [#163](https://github.com/channelcat/sanic/issues/163) +- Changed request timeout process [#172](https://github.com/channelcat/sanic/issues/172) +- Provide a default app name [#159](https://github.com/channelcat/sanic/issues/159) diff --git a/docs/sanic/releases/v0.1.9.md b/docs/sanic/releases/v0.1.9.md new file mode 100644 index 00000000..9c16a96d --- /dev/null +++ b/docs/sanic/releases/v0.1.9.md @@ -0,0 +1,9 @@ +# v0.1.9 (2016-12-25) + +## Bug Fixes, Various Error Handling Improvements + +PR's included in the milestone can be found here: [https://github.com/channelcat/sanic/milestone/1?closed=1](https://github.com/channelcat/sanic/milestone/1?closed=1) + +- Addition of Python 3.6 to tox tests and travis tests (We will eventually be using the tox.ini as our main travis testing script as well) +- New raising of error if an invalid response is returned +- Add in a way to encode objects that are un-encodable in response objects diff --git a/docs/sanic/releases/v0.2.0.md b/docs/sanic/releases/v0.2.0.md new file mode 100644 index 00000000..d18a816d --- /dev/null +++ b/docs/sanic/releases/v0.2.0.md @@ -0,0 +1,18 @@ +# v0.2.0 (2017-01-15) + +## Multi-worker Fix, Virtual Hosts support, etc. + +This pull request encompasses a lot of bug fixes among other things. + +To see the exhaustive list visit: [https://github.com/channelcat/sanic/milestone/2?closed=1](https://github.com/channelcat/sanic/milestone/2?closed=1) + +- Multiprocessing fix [#276](https://github.com/channelcat/sanic/issues/276) (Thank you to @r0fls) +- Updates to class based views to make them thread safe [#274](https://github.com/channelcat/sanic/issues/274) (Thank you to @AntonDnepr) +- Adding support for virtual hosts through the main application and blueprints [#285](https://github.com/channelcat/sanic/issues/285), [#287](https://github.com/channelcat/sanic/issues/287) +- Added methods to remove routes from api/router [#243](https://github.com/channelcat/sanic/issues/243) (Thanks to @dutradda) + +### Next up on the table: + +- Finishing up WSGI compliance (Maybe looking into ASGI compliance as well) +- Working to finish up live reload as highlighted in [#168](https://github.com/channelcat/sanic/issues/168) (We have a prototype but it's not as efficient as I'd like it to be) +- Moving our documentation to Sphinx and publishing to readthedocs as highlighted in [#229](https://github.com/channelcat/sanic/issues/229) diff --git a/docs/sanic/releases/v0.3.0.md b/docs/sanic/releases/v0.3.0.md new file mode 100644 index 00000000..62fb5c10 --- /dev/null +++ b/docs/sanic/releases/v0.3.0.md @@ -0,0 +1,17 @@ +# v0.3.0 (2017-01-28) + +## Redirect, HTML Tracebacks, No more stack overflows (Hopefully), Route Overloading + +New features galore! + +To see the exhaustive list of pull requests included in this release see: [https://github.com/channelcat/sanic/milestone/3?closed=1](https://github.com/channelcat/sanic/milestone/3?closed=1) + +- Added in redirect method ([#294](https://github.com/channelcat/sanic/issues/294), thanks to @pcdinh and @subyraman) +- Added rich HTML tracebacks for debug mode ([#291](https://github.com/channelcat/sanic/issues/291), thanks to @subyraman) +- Fixes a write_error loop that could lead to stack overflows ([#309](https://github.com/channelcat/sanic/issues/309), [#307](https://github.com/channelcat/sanic/issues/307), [#241](https://github.com/channelcat/sanic/issues/241)) +- Route overloading! Multiple functions for different methods of routes! ([#311](https://github.com/channelcat/sanic/issues/311), thanks to @youknowone) +- Greatly improved documentation along with sphinx compatibility ([#229](https://github.com/channelcat/sanic/issues/229), thanks to @kdelwat) +- Function decorators now have `['GET']` as the default method ([#316](https://github.com/channelcat/sanic/issues/316), thanks to @youknowone) +- Removed the multidict requirement with our own implementation of CIDict ([#302](https://github.com/channelcat/sanic/issues/302), [#328](https://github.com/channelcat/sanic/issues/328)) +- Added an async run function to the app ([#348](https://github.com/channelcat/sanic/issues/348)) +- Removed loop as an argument for the app ([#335](https://github.com/channelcat/sanic/issues/335)) diff --git a/docs/sanic/releases/v0.3.1.md b/docs/sanic/releases/v0.3.1.md new file mode 100644 index 00000000..2042e1bd --- /dev/null +++ b/docs/sanic/releases/v0.3.1.md @@ -0,0 +1,11 @@ +# v0.3.1 (2017-02-09) + +## Dynamic Route Overloading, url_for, Inherited Exceptions, etc. + +To see the exhaustive list of pull requests included in this release see: +[https://github.com/channelcat/sanic/milestone/4?closed=1](https://github.com/channelcat/sanic/milestone/4?closed=1) + +- [#199](https://github.com/channelcat/sanic/issues/199) Add methods to load configs from a file (Thanks to @Tim-Erwin) +- [#362](https://github.com/channelcat/sanic/issues/362) We're on readthedocs! (Thanks to @channelcat) +- [#360](https://github.com/channelcat/sanic/issues/360) Fixed dynamic route overloading +- [#387](https://github.com/channelcat/sanic/issues/387) Added url_for method (Thanks to @subyraman) diff --git a/docs/sanic/releases/v0.4.0.md b/docs/sanic/releases/v0.4.0.md new file mode 100644 index 00000000..c2ef8e09 --- /dev/null +++ b/docs/sanic/releases/v0.4.0.md @@ -0,0 +1,22 @@ +# v0.4.0 (2017-02-26) + +## Test Clients, Content Range, Event Listeners, Coverage, Ensure Future, Request Now includes an App object! + +To see the exhaustive list of pull requests included in this release see: +[https://github.com/channelcat/sanic/milestone/5?closed=1](https://github.com/channelcat/sanic/milestone/5?closed=1) + +- Content range (HTTP 1.1 feature) [#378](https://github.com/channelcat/sanic/issues/378) (Thanks to @aquacash5) +- Added a loop property to app class for easier access [#409](https://github.com/channelcat/sanic/issues/409) (Thanks to @r0fls) +- Middleware decorators now take explicit args [#406](https://github.com/channelcat/sanic/issues/406) (Thanks to @agoose77) +- uvloop is now a soft dependency for Windows users [#402](https://github.com/channelcat/sanic/issues/402) (Thanks to @agoose77) +- Event listeners (like `before_start`, `after_start` etc.) are now handled through decorators [#408](https://github.com/channelcat/sanic/issues/408) (Thanks to @agoose77) +- Ensure future added as a way to ensure execution of functions after an app starts [#411](https://github.com/channelcat/sanic/issues/411) (Thanks to @r0fls) +- CompositionView now has tests! [#416](https://github.com/channelcat/sanic/issues/416) (Thanks to @subyraman) +- Blueprints now support adding HTTPMethodView as routes [#424](https://github.com/channelcat/sanic/issues/424) (Thanks to @growingdever) +- App object now has a flask-like test_client property [#431](https://github.com/channelcat/sanic/issues/431) (Thanks to @subyraman) +- Request object now includes app which acts as the currently running app [#476](https://github.com/channelcat/sanic/issues/476) + + +### Notes + +- This release may be a bit short-lived, we have a number of great pull requests that support features like websockets, HTTP pipelining, streaming content, and http2 support so 0.5.0 may come as early as next week. diff --git a/docs/sanic/releases/v0.4.1.md b/docs/sanic/releases/v0.4.1.md new file mode 100644 index 00000000..fa5ae7be --- /dev/null +++ b/docs/sanic/releases/v0.4.1.md @@ -0,0 +1,6 @@ +# v0.4.1 (2017-02-28) + +## Fix pip installation, Fix minor routing issue + +- Fixes issue [#492](https://github.com/channelcat/sanic/issues/492), where users could not install the pip package with older versions of setuptools +- Fixes issue [#494](https://github.com/channelcat/sanic/issues/494), where multiple handlers with the same route would not be registered correctly to the router. diff --git a/docs/sanic/releases/v0.5.0.md b/docs/sanic/releases/v0.5.0.md new file mode 100644 index 00000000..f83a9cb2 --- /dev/null +++ b/docs/sanic/releases/v0.5.0.md @@ -0,0 +1,13 @@ +# v0.5.0 (2017-04-12) + +## Websockets, Streaming content, Gunicorn Worker + +To see the exhaustive list of pull requests included in this release see: +[https://github.com/channelcat/sanic/milestone/6?closed=1](https://github.com/channelcat/sanic/milestone/6?closed=1) + +- Allow a socket to be passed even when not multiprocessing [#506](https://github.com/channelcat/sanic/issues/506) (Thanks to @zenixls2) +- Websockets! [#469](https://github.com/channelcat/sanic/issues/469) (Thanks to @miguelgrinberg) +- Streaming content handlers [#473](https://github.com/channelcat/sanic/issues/473) (Thanks to @subyraman) +- A gunicorn worker! [#545](https://github.com/channelcat/sanic/issues/545) (Thanks to @messense) +- Setting configurations through environment variables [#573](https://github.com/channelcat/sanic/issues/573) +- Adding a way to pass in a custom request class [#622](https://github.com/channelcat/sanic/issues/622) (Thanks to @aryeh) diff --git a/docs/sanic/releases/v0.5.1.md b/docs/sanic/releases/v0.5.1.md new file mode 100644 index 00000000..80a7a8c1 --- /dev/null +++ b/docs/sanic/releases/v0.5.1.md @@ -0,0 +1,5 @@ +# v0.5.1 (2017-04-15) + +## Fixes static file security hole + +- Quick release to fix a security flaw found by @yeahx in issue [#633](https://github.com/channelcat/sanic/issues/633) diff --git a/docs/sanic/releases/v0.5.2.md b/docs/sanic/releases/v0.5.2.md new file mode 100644 index 00000000..06d28850 --- /dev/null +++ b/docs/sanic/releases/v0.5.2.md @@ -0,0 +1,14 @@ +# v0.5.2 (2017-04-25) + +## Fix gunicorn worker, Update token attribute, etc. + +To see the exhaustive list of pull requests included in this release see: +[https://github.com/channelcat/sanic/milestone/8?closed=1](https://github.com/channelcat/sanic/milestone/8?closed=1) + +- New contributing rules are now present for all incoming PR's +- Now allow unknown status codes per [#643](https://github.com/channelcat/sanic/issues/643) (Thanks to @aryeh) +- Fix absolute path bug for static files [#647](https://github.com/channelcat/sanic/issues/647) +- Fix signals being shared amongst multiple Sanic apps [#652](https://github.com/channelcat/sanic/issues/652) (Thanks to @38elements) +- Fix duplicate signal settings for gunicorn worker [#655](https://github.com/channelcat/sanic/issues/655) +- Update token attribute to function with/without Token: prefix [#656](https://github.com/channelcat/sanic/issues/656) +- Allow disabling of keep-alive functionality through config/environment variable. [#646](https://github.com/channelcat/sanic/issues/646) diff --git a/docs/sanic/releases/v0.5.3.md b/docs/sanic/releases/v0.5.3.md new file mode 100644 index 00000000..0e2b627c --- /dev/null +++ b/docs/sanic/releases/v0.5.3.md @@ -0,0 +1,3 @@ +# v0.5.3 (2017-05-06) + +## Merge pull request [#695](https://github.com/channelcat/sanic/issues/695) from kszucs/aiopeewee diff --git a/docs/sanic/releases/v0.5.4.md b/docs/sanic/releases/v0.5.4.md new file mode 100644 index 00000000..0a647291 --- /dev/null +++ b/docs/sanic/releases/v0.5.4.md @@ -0,0 +1,18 @@ +# v0.5.4 (2017-05-09) + +## Removing some things, Adding an access log + +To see the exhaustive list of pull requests included in this release see: +[https://github.com/channelcat/sanic/milestone/9?closed=1](https://github.com/channelcat/sanic/milestone/9?closed=1) + +If you're wondering why 0.5.3 exists and there's no change-log for it, the release was actually botched by my error. + +Consider 0.5.4 the latest and greatest for sanic. + +- Fix ImportError not preserved in __main__.py [#665](https://github.com/channelcat/sanic/issues/665) (Thanks to @pyx) +- Removed an un-needed if statement [#662](https://github.com/channelcat/sanic/issues/662) (Thanks to @rsrdesarrollo) +- Create an access log [#625](https://github.com/channelcat/sanic/issues/625) (Thanks to @zenixls2) +- Correctly kill child processes [#668](https://github.com/channelcat/sanic/issues/668) +- Added full exception chain rendering [#677](https://github.com/channelcat/sanic/issues/677) (Thanks to @abuckenheimer) +- Remove the things we said we were going to remove [#681](https://github.com/channelcat/sanic/issues/681) [#686](https://github.com/channelcat/sanic/issues/686) (Thanks to @38elements) +- Actually have the README show up correctly on PyPI (hopefully) (Thanks to @graingert) diff --git a/docs/sanic/releases_notes.rst b/docs/sanic/releases_notes.rst new file mode 100644 index 00000000..a4b97b8f --- /dev/null +++ b/docs/sanic/releases_notes.rst @@ -0,0 +1,24 @@ +Release Notes +============= + +.. toctree:: + :maxdepth: 2 + + releases/v0.5.4 + releases/v0.5.3 + releases/v0.5.2 + releases/v0.5.1 + releases/v0.5.0 + releases/v0.4.1 + releases/v0.4.0 + releases/v0.3.1 + releases/v0.3.0 + releases/v0.2.0 + releases/v0.1.9 + releases/v0.1.8 + releases/v0.1.7 + releases/v0.1.6 + releases/v0.1.5 + releases/v0.1.4 + releases/v0.1.3 + releases/v0.1.2 diff --git a/docs/sanic/testing.md b/docs/sanic/testing.md index b8427a00..9127f8ea 100644 --- a/docs/sanic/testing.md +++ b/docs/sanic/testing.md @@ -2,7 +2,7 @@ Sanic endpoints can be tested locally using the `test_client` object, which depends on the additional [aiohttp](https://aiohttp.readthedocs.io/en/stable/) -library. +library. The `test_client` exposes `get`, `post`, `put`, `delete`, `patch`, `head` and `options` methods for you to run against your application. A simple example (using pytest) is like follows: @@ -20,8 +20,8 @@ def test_index_put_not_allowed(): assert response.status == 405 ``` -Internally, each time you call one of the `test_client` methods, the Sanic app is run at `127.0.01:42101` and -your test request is executed against your application, using `aiohttp`. +Internally, each time you call one of the `test_client` methods, the Sanic app is run at `127.0.01:42101` and +your test request is executed against your application, using `aiohttp`. The `test_client` methods accept the following arguments and keyword arguments: @@ -59,7 +59,7 @@ the available arguments to aiohttp can be found [in the documentation for ClientSession](https://aiohttp.readthedocs.io/en/stable/client_reference.html#client-session). -# pytest-sanic +## pytest-sanic [pytest-sanic](https://github.com/yunstanford/pytest-sanic) is a pytest plugin, it helps you to test your code asynchronously. Just write tests like,