Tags

Tags give the ability to mark specific points in history as being important
  • 1.4.0

    efccc223 · chore: Remove build tag ·
    Version 1.4.0
    
    Breaking Changes
    ----------------
    
    (None)
    
    Changes to Supported Platforms
    ------------------------------
    
    - Python 3 is now supported on PyPy as of PyPy3.5 v5.10.
    - Support for CPython 3.3 is now deprecated and will be removed in
      Falcon 2.0.
    - As with the previous release, Python 2.6 and Jython 2.7 remain deprecated and
      will no longer be supported in Falcon 2.0.
    
    New & Improved
    --------------
    
    - We added a new method, ``API.add_static_route()``, that makes it easy to
      serve files from a local directory. This feature provides an alternative to
      serving files from the web server when you don't have that option, when
      authorization is required, or for testing purposes.
    - Arguments can now be passed to hooks.
    - The default JSON media type handler will now use
      ``ujson``, if available, to speed up JSON (de)serialization under CPython.
    - Semantic validation via the *format* keyword is now enabled for the
      ``falcon.media.validators.jsonschema.validate()`` JSON Schema decorator.
    - We added a new helper, ``falcon.Request.get_param_as_uuid()``, to the
      ``Request`` class.
    - We added a new property, ``downloadable_as``, to the
      ``Response`` class for setting the Content-Disposition header.
    - Falcon now supports WebDAV methods (RFC 3253), such as UPDATE and REPORT.
    - ``falcon.routing.create_http_method_map`` has been refactored into two
      new methods, ``falcon.routing.map_http_methods`` and
      ``falcon.routing.set_default_responders``, so that
      custom routers can better pick and choose the functionality they need. The
      original method is still available for backwards-compatibility, but will
      be removed in a future release.
    - We added a new `json` param to ``falcon.testing.simulate_request()`` et al.
      to automatically serialize the request body from a JSON serializable object
      or type (for a complete list of serializable types, see
      `json.JSONEncoder <https://docs.python.org/3.6/library/json.html#json.JSONEncoder>`_).
    - ``TestClient``'s ``simulate_*()`` methods now call
      ``TestClient.simulate_request`` to make it easier for subclasses to
      override ``TestClient``'s behavior.
    - ``TestClient`` can now be configured with a default set of headers to
      send with every request.
    - ``testing.Result.json`` now returns None when the response body is
      empty, rather than raising an error.
    - The FAQ has been reorganized and greatly expanded.
    - We restyled the docs to match https://falconframework.org
    
    Fixed
    -----
    
    - Forwarded headers containing quoted strings with commas were not being parsed
      correctly. This has been fixed, and the parser generally made more robust.
    - ``falcon.media.JSONHandler`` was raising an error under Python 2.x when
      serializing strings containing Unicode code points. This issue has been
      fixed.
    - Overriding a resource class and calling its responders via ``super()`` did
      not work when passing URI template params as positional arguments. This has
      now been fixed.
    - Python 3.6 was generating warnings for strings containing ``'\s'`` within
      Falcon. These strings have been converted to raw strings to mitigate the
      warning.
    - Several syntax errors were found and fixed in the code examples used in the
      docs.
    
    Contributors to this Release
    ----------------------------
    
    Many thanks to all of our talented and stylish contributors to this release!
    
    - GriffGeorge
    - hynek
    - kgriffs
    - rhemz
    - santeyio
    - timc13
    - tyronegroves
    - vytas7
    - zhanghanyun
    
  • 1.4.0rc2

    5c57bdcc · chore: Bump tag to rc2 ·
    Version 1.4.0rc2
    
  • 1.4.0rc1

    69ad26d5 · chore: Bumb tag to rc1 ·
    Version 1.4.0rc1
    
  • 1.4.0.b2

    Version 1.4.0b2
    
  • 1.3.0

    93e3d90e · chore: Remove rc2 tag ·
    Version 1.3.0
    
    Breaking Changes
    ----------------
    
    (None)
    
    Changes to Supported Platforms
    ------------------------------
    
    - CPython 3.6 is now fully supported.
    - Falcon appears to work well on PyPy3.5, but we are waiting until
      that platform is out of beta before officially supporting it.
    - Support for both CPython 2.6 and Jython 2.7 is now deprecated and
      will be discontinued in Falcon 2.0.
    
    New & Improved
    --------------
    
    - We added built-in resource representation serialization and
      deserialization, including input validation based on JSON Schema.
    - URI template field converters are now supported. We expect to expand
      this feature over time.
    - A new method, `get_param_as_datetime()`, was added to
      the ``Request`` class.
    - A number of attributes were added to the ``Request`` class to
      make proxy information easier to consume. These include the
      `forwarded`, `forwarded_uri`, `forwarded_scheme`, `forwarded_host`,
      and `forwarded_prefix` attributes. The `prefix` attribute was also
      added as part of this work.
    - A `referer` attribute was added to the ``Request`` class.
    - We implemented `__repr__()` for ``Request``, ``Response``, and
      ``HTTPError`` to aid in debugging.
    - A number of Internet media type constants were defined to make it
      easier to check and set content type headers.
    - Several new 5xx error classes were implemented.
    
    Fixed
    -----
    
    - If even a single cookie in the request to the server is malformed,
      none of the cookies will be parsed (all-or-nothing). Change the
      parser to simply skip bad cookies (best-effort).
    - ``API`` instances are not pickleable. Modify the default router
      to fix this.
    
  • 1.3.0rc2

    090e766d · chore: Bump tag to rc2 ·
    Version 1.3.0rc2
    
  • 1.3.0b1

    13e4b022 · chore: Build with 2.7.13 ·
    Version 1.3.0b1
    
  • 1.2.0

    f375729c · chore: Remove build tag ·
    Version 1.2.0
    
    Breaking Changes
    ----------------
    
    (None)
    
    New & Improved
    --------------
    
    - A new `default` kwarg was added to ``falcon.Request.get_header``.
    - A `delete_header()` method was added to ``falcon.Response``.
    - Several new HTTP status codes and error classes were added, such as
      ``falcon.HTTPFailedDependency``.
    - If `ujson` is installed it will be used in lieu of `json` to speed up
      error serialization and query string parsing under CPython. PyPy users
      should continue to use `json`.
    - The `independent_middleware` kwarg was added to ``falcon.API`` to
      enable the execution of `process_response()` middleware methods, even
      when `process_request()` raises an error.
    - Single-character field names are now allowed in URL templates when
      specifying a route.
    - A detailed error message is now returned when an attempt is made to
      add a route that conflicts with one that has already been added.
    - The HTTP protocol version can now be specified when simulating
      requests with the testing framework.
    - The ``falcon.ResponseOptions`` class was added, along with a
      `secure_cookies_by_default` option to control the default value of
      the "secure" attribute when setting cookies. This can make testing
      easier by providing a way to toggle whether or not HTTPS is required.
    - `port`, `netloc` and `scheme` properties were added to the
      ``falcon.Request`` class. The `protocol` property is now
      deprecated and will be removed in a future release.
    - The `strip_url_path_trailing_slash` was added
      to ``falcon.RequestOptions`` to control whether or not to retain
      the trailing slash in the URL path, if one is present. When this
      option is enabled (the default), the URL path is normalized by
      stripping the trailing slash character. This lets the application
      define a single route to a resource for a path that may or may not end
      in a forward slash. However, this behavior can be problematic in
      certain cases, such as when working with authentication schemes that
      employ URL-based signatures. Therefore, the
      `strip_url_path_trailing_slash` option was introduced to make this
      behavior configurable.
    - Improved the documentation for ``falcon.HTTPError``, particularly
      around customizing error serialization.
    - Misc. improvements to the look and feel of Falcon's documentation.
    - The tutorial in the docs was revamped, and now includes guidance on
      testing Falcon applications.
    
    Fixed
    -----
    
    - Certain non-alphanumeric characters, such as parenthesis, are not
      handled properly in complex URI template path segments that are
      comprised of both literal text and field definitions.
    - When the WSGI server does not provide a `wsgi.file_wrapper` object,
      Falcon wraps ``Response.stream`` in a simple iterator
      object that does not implement `close()`. The iterator should be
      modified to implement a `close()` method that calls the underlying
      stream's `close()` to free system resources.
    - The testing framework does not correctly parse cookies under Jython.
    - Whitespace is not stripped when parsing cookies in the testing
      framework.
    - The Vary header is not always set by the default error serializer.
    - While not specified in PEP-3333 that the status returned to the WSGI
      server must be of type `str`, setting the status on the response to a
      `unicode` string under Python 2.6 or 2.7 can cause WSGI servers to
      raise an error. Therefore, the status string must first be converted
      if it is of the wrong type.
    - The default OPTIONS responder returns 204, when it should return
      200. RFC 7231 specifically states that Content-Length should be zero
      in the response to an OPTIONS request, which implies a status code of
      200 since RFC 7230 states that Content-Length must not be set in any
      response with a status code of 204.
    
  • 1.2.0rc1

    14a9c056 · chore: Tag build as RC1 ·
    Version 1.2.0rc1
    
  • 1.1.0rc1

    918f370e · doc: Use alabaster theme ·
    Version 1.1.0rc1
    
  • 1.1.0b1

    88daf0be · chore: Configure 1.1.0b1 ·
    Version 1.1.0b1
    
  • debian/1.0.0-1

    Debian release 1.0.0-1
    
  • 1.0.0

    Version 1.0.0
    
  • 1.0.0rc1

    Version 1.0.0rc1
    
  • debian/0.3.0-5

    Debian release 0.3.0-5
    
  • debian/0.3.0-4

    ca866b52 · Uploading to unstable. ·
    Debian release 0.3.0-4