doc(Changelogs): Add Changelog for 1.0.0 and prepare docs for release
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
Falcon |Docs| |Build Status| |codecov.io|
|
||||
==================================
|
||||
=========================================
|
||||
|
||||
Perfection is finally attained not when there is no longer anything
|
||||
to add, but when there is no longer anything to take away.
|
||||
|
||||
@@ -29,7 +29,7 @@ handling. It takes status, additional headers and body as input arguments.
|
||||
HTTPStatus
|
||||
----------
|
||||
|
||||
.. autoclass:: falcon.http_status.HTTPStatus
|
||||
.. autoclass:: falcon.HTTPStatus
|
||||
:members:
|
||||
|
||||
|
||||
|
||||
@@ -1,8 +1,23 @@
|
||||
Changelog for Falcon 0.2.0
|
||||
==========================
|
||||
|
||||
New
|
||||
---
|
||||
Breaking Changes
|
||||
----------------
|
||||
|
||||
- The deprecated util.misc.percent\_escape and
|
||||
util.misc.percent\_unescape functions were removed. Please use the
|
||||
functions in the util.uri module instead.
|
||||
- The deprecated function, API.set\_default\_route, was removed. Please
|
||||
use sinks instead.
|
||||
- HTTPRangeNotSatisfiable no longer accepts a media\_type parameter.
|
||||
- When using the comma-delimited list convention,
|
||||
req.get\_param\_as\_list(...) will no longer insert placeholders,
|
||||
using the None type, for empty elements. For example, where
|
||||
previously the query string "foo=1,,3" would result in ['1', None,
|
||||
'3'], it will now result in ['1', '3'].
|
||||
|
||||
New & Improved
|
||||
--------------
|
||||
|
||||
- Since 0.1 we've added proper RTD docs to make it easier for everyone
|
||||
to get started with the framework. Over time we will continue adding
|
||||
@@ -64,21 +79,6 @@ New
|
||||
- Python 3.4 is now fully supported.
|
||||
- Various minor performance improvements
|
||||
|
||||
Breaking Changes
|
||||
----------------
|
||||
|
||||
- The deprecated util.misc.percent\_escape and
|
||||
util.misc.percent\_unescape functions were removed. Please use the
|
||||
functions in the util.uri module instead.
|
||||
- The deprecated function, API.set\_default\_route, was removed. Please
|
||||
use sinks instead.
|
||||
- HTTPRangeNotSatisfiable no longer accepts a media\_type parameter.
|
||||
- When using the comma-delimited list convention,
|
||||
req.get\_param\_as\_list(...) will no longer insert placeholders,
|
||||
using the None type, for empty elements. For example, where
|
||||
previously the query string "foo=1,,3" would result in ['1', None,
|
||||
'3'], it will now result in ['1', '3'].
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
@@ -97,4 +97,4 @@ Fixed
|
||||
submitted by the client, wsgiref will set the value of that header to
|
||||
an empty string in the WSGI environ.
|
||||
- Resolved an issue causing several source files to not be Cythonized.
|
||||
- Docstrings have been edited for clarity and correctness.
|
||||
- Docstrings have been edited for clarity and correctness.
|
||||
|
||||
@@ -1,8 +1,13 @@
|
||||
Changelog for Falcon 0.3.0
|
||||
==========================
|
||||
|
||||
New
|
||||
---
|
||||
Breaking Changes
|
||||
----------------
|
||||
- Date headers are now returned as :py:class:`datetime.datetime` objects
|
||||
instead of strings.
|
||||
|
||||
New & Improved
|
||||
--------------
|
||||
|
||||
- This release includes a new router architecture for improved performance
|
||||
and flexibility.
|
||||
@@ -23,11 +28,6 @@ New
|
||||
:py:attr:`falcon.HTTP_NO_CONTENT` vs. :py:attr:`falcon.HTTP_204`.)
|
||||
- Several minor performance optimizations were made to the code base.
|
||||
|
||||
Breaking Changes
|
||||
----------------
|
||||
- Date headers are now returned as :py:class:`datetime.datetime` objects
|
||||
instead of strings.
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
@@ -36,4 +36,4 @@ Fixed
|
||||
- Several errors in the documentation were corrected.
|
||||
- The :py:mod:`six` package was pinned to 1.4.0 or better.
|
||||
:py:attr:`six.PY2` is required by Falcon, but that wasn't added to
|
||||
:py:mod:`six` until version 1.4.0.
|
||||
:py:mod:`six` until version 1.4.0.
|
||||
|
||||
147
doc/changes/1.0.0.rst
Normal file
147
doc/changes/1.0.0.rst
Normal file
@@ -0,0 +1,147 @@
|
||||
Changelog for Falcon 1.0.0
|
||||
==========================
|
||||
|
||||
Breaking Changes
|
||||
----------------
|
||||
- The deprecated global hooks feature has been removed.
|
||||
:class:`~falcon.API` no longer accepts `before` and `after`
|
||||
kwargs. Applications can work around this by migrating any logic
|
||||
contained in global hooks to reside in middleware components instead.
|
||||
- The middleware method :meth:`process_resource` must now accept
|
||||
an additional `params` argument. This gives the middleware method an
|
||||
opportunity to interact with the values for any fields defined in a
|
||||
route's URI template.
|
||||
- The middleware method :meth:`process_resource` is now skipped when
|
||||
no route is found for the incoming request. This avoids having to
|
||||
include an ``if resource is not None`` check when implementing this
|
||||
method. A sink may be used instead to execute logic in the case that
|
||||
no route is found.
|
||||
- An option was added to toggle automatic parsing of form params. Falcon
|
||||
will no longer automatically parse, by default, requests that have the
|
||||
content type "application/x-www-form-urlencoded". This was done to
|
||||
avoid unintended side-effects that may arise from consuming the
|
||||
request stream. It also makes it more straightforward for applications
|
||||
to customize and extend the handling of form submissions. Applications
|
||||
that require this functionality must re-enable it explicitly, by
|
||||
setting a new request option that was added for that purpose, per the
|
||||
example below::
|
||||
|
||||
app = falcon.API()
|
||||
app.req_options.auto_parse_form_urlencoded = True
|
||||
|
||||
- The performance of composing the response body was
|
||||
improved. As part of this work, the :attr:`Response.body_encoded`
|
||||
attribute was removed. This property was only intended to be used by
|
||||
the framework itself, but any dependent code can be migrated per
|
||||
the example below::
|
||||
|
||||
# Before
|
||||
body = resp.body_encoded
|
||||
|
||||
# After
|
||||
if resp.body:
|
||||
body = resp.body.encode('utf-8')
|
||||
else:
|
||||
body = b''
|
||||
|
||||
New & Improved
|
||||
--------------
|
||||
|
||||
- A `code of conduct <https://github.com/falconry/falcon/blob/master/CODEOFCONDUCT.md>`_
|
||||
was added to solidify our community's commitment to sustaining a
|
||||
welcoming, respectful culture.
|
||||
- CPython 3.5 is now fully supported.
|
||||
- The constants HTTP_422, HTTP_428, HTTP_429, HTTP_431, HTTP_451, and
|
||||
HTTP_511 were added.
|
||||
- The :class:`~falcon.HTTPUnprocessableEntity`,
|
||||
:class:`~falcon.HTTPTooManyRequests`, and
|
||||
:class:`~falcon.HTTPUnavailableForLegalReasons` error classes were
|
||||
added.
|
||||
- The :any:`HTTPStatus` class is now available directly under
|
||||
the `falcon` module, and has been properly documented.
|
||||
- Support for HTTP redirections was added via a set of
|
||||
:any:`HTTPStatus` subclasses. This should avoid the problem
|
||||
of hooks and responder methods possibly overriding the redirect.
|
||||
Raising an instance of one of these new redirection classes will
|
||||
short-circuit request processing, similar to raising an instance of
|
||||
:class:`~falcon.HTTPError`.
|
||||
- The default 404 responder now raises an instance of
|
||||
:class:`~falcon.HTTPError` instead of manipulating the
|
||||
response object directly. This makes it possible to customize the
|
||||
response body using a custom error handler or serializer.
|
||||
- A new method, :meth:`~falcon.Response.get_header`, was added to
|
||||
:class:`~falcon.Response`. Previously there was no way to check if a
|
||||
header had been set. The new :meth:`~falcon.Response.get_header`
|
||||
method facilitates this and other use cases.
|
||||
- :meth:`falcon.Request.client_accepts_msgpack` now recognizes
|
||||
"application/msgpack", in addition to "application/x-msgpack".
|
||||
- The :any:`access_route` and
|
||||
:any:`remote_addr` properties were added to
|
||||
:class:`~falcon.Request` for getting upstream IP addresses.
|
||||
- :class:`~falcon.Request` and :class:`~falcon.Response` now support
|
||||
range units other than bytes.
|
||||
- The `API` and `srmock` class types can now be customized in
|
||||
:class:`~falcon.testing.TestBase`.
|
||||
- Path segments with multiple field expressions may now be defined at
|
||||
the same level as path segments having only a single field
|
||||
expression. For example::
|
||||
|
||||
api.add_route('/files/{file_id}', resource_1)
|
||||
api.add_route('/files/{file_id}.{ext}', resource_2)
|
||||
|
||||
- Support was added to :any:`API.add_route()` for passing through
|
||||
additional args and kwargs to custom routers.
|
||||
- Digits and the underscore character are now allowed in the
|
||||
:meth:`falcon.routing.compile_uri_template` helper, for use in custom
|
||||
router implementations.
|
||||
- A new testing framework was added that should be more intuitive to
|
||||
use than the old one. Several of Falcon's own tests were ported to use
|
||||
the new framework (the remainder to be ported in a
|
||||
subsequent release.) The new testing framework performs wsgiref
|
||||
validation on all requests.
|
||||
- The performance of setting :attr:`Response.content_range` was
|
||||
improved by ~50%.
|
||||
- A new param, `obs_date`, was added to
|
||||
:meth:`falcon.Request.get_header_as_datetime`, and defaults to
|
||||
``False``. This improves the method's performance when obsolete date
|
||||
formats do not need to be supported.
|
||||
|
||||
Fixed
|
||||
-----
|
||||
|
||||
- Field expressions at a given level in the routing tree no longer
|
||||
mask alternative branches. When a single segment in a requested path
|
||||
can match more than one node at that branch in the routing tree, and
|
||||
the first branch taken happens to be the wrong one (i.e., the
|
||||
subsequent nodes do not match, but they would have under a different
|
||||
branch), the other branches that could result in a
|
||||
successful resolution of the requested path will now be subsequently
|
||||
tried, whereas previously the framework would behave as if no route
|
||||
could be found.
|
||||
- The user agent is now instructed to expire the cookie when it is
|
||||
cleared via :meth:`~falcon.Response.unset_cookie`.
|
||||
- Support was added for hooks that have been defined via
|
||||
:meth:`functools.partial`.
|
||||
- Tunneled UTF-8 characters in the request path are now properly
|
||||
decoded, and a placeholder character is substituted for any invalid
|
||||
code points.
|
||||
- The instantiation of :any:`Request.context_type` is now
|
||||
delayed until after all other properties of the
|
||||
:class:`~falcon.Request` class have been initialized, in case the
|
||||
context type's own initialization depends on any of
|
||||
:class:`~falcon.Request`'s properties.
|
||||
- A case was fixed in which reading from :any:`Request.stream`
|
||||
could hang when using :mod:`wsgiref` to host the app.
|
||||
- The default error serializer now sets the Vary header in responses.
|
||||
Implementing this required passing the :class:`~falcon.Response`
|
||||
object to the serializer, which would normally be a breaking change.
|
||||
However, the framework was modified to detect old-style error
|
||||
serializers and wrap them with a shim to make them compatible with
|
||||
the new interface.
|
||||
- A query string containing malformed percent-encoding no longer causes
|
||||
the framework to raise an error.
|
||||
- Additional tests were added for a few lines of code that were
|
||||
previously not covered, due to deficiencies in code coverage reporting
|
||||
that have since been corrected.
|
||||
- The Cython note is no longer displayed when installing under Jython.
|
||||
- Several errors and ambiguities in the documentation were corrected.
|
||||
@@ -3,5 +3,6 @@ Changelogs
|
||||
|
||||
.. toctree::
|
||||
|
||||
1.0.0 <1.0.0>
|
||||
0.3.0 <0.3.0>
|
||||
0.2.0 <0.2.0>
|
||||
0.2.0 <0.2.0>
|
||||
|
||||
@@ -55,16 +55,16 @@ master_doc = 'index'
|
||||
|
||||
# General information about the project.
|
||||
project = u'Falcon'
|
||||
copyright = u'2015, Rackspace Hosting et al. (as noted in the source code)'
|
||||
copyright = u'2016, Rackspace Hosting et al. (as noted in the source code)'
|
||||
|
||||
# The version info for the project you're documenting, acts as replacement for
|
||||
# |version| and |release|, also used in various other places throughout the
|
||||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.4'
|
||||
version = '1.0'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
release = '0.4.0'
|
||||
release = '1.0.0'
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
|
||||
@@ -8,10 +8,6 @@ The Falcon Web Framework
|
||||
|
||||
Release v\ |version| (:ref:`Installation <install>`)
|
||||
|
||||
.. note::
|
||||
|
||||
This documentation targets the upcoming |version| release of Falcon.
|
||||
|
||||
Falcon is a minimalist WSGI library for building speedy web APIs and app
|
||||
backends. We like to think of Falcon as the `Dieter Rams` of web frameworks.
|
||||
|
||||
|
||||
@@ -293,6 +293,13 @@ class API(object):
|
||||
corresponding request handlers, and Falcon will do the right
|
||||
thing.
|
||||
|
||||
Note:
|
||||
Any additional args and kwargs not defined above are passed
|
||||
through to the underlying router's ``add_route()`` method. The
|
||||
default router does not expect any additional arguments, but
|
||||
custom routers may take advantage of this feature to receive
|
||||
additional options when setting up routes.
|
||||
|
||||
"""
|
||||
|
||||
# NOTE(richardolsson): Doing the validation here means it doesn't have
|
||||
|
||||
Reference in New Issue
Block a user