3.0.0 (2017-xx-xx)
++++++++++++++++++

- Support for Python 2.6 has been dropped.

  - The ``OrderedDict`` import no longer exists in compat.py because it is part
    of ``collections`` in Python 2.7 and newer.

- Simplified logic for determining Content-Length and Transfer-Encoding.
  Requests will now avoid setting both headers on the same request, and
  raise an exception if this is done manually by a user.

- Remove the HTTPProxyAuth class in favor of supporting proxy auth via
  the proxies parameter.

- Relax how Requests strips bodies from redirects. 3.0.0 only supports body
  removal on 301/302 POST redirects and all 303 redirects.

- Remove support for non-string/bytes parameters in ``_basic_auth_str``.

- Prevent ``Session.merge_environment`` from erroneously setting the
  ``verify`` parameter to ``None`` instead of ``True``.

- Streaming responses with ``Response.iter_lines`` or ``Response.iter_content``
  now requires an encoding to be set if one isn't provided by the server.

- Exception raised during read timeout for ``Response.iter_content`` and
  ``Response.iter_lines`` changed from ``ConnectionError`` to more
  specific ``ReadTimeout``.

- Raise exception if multiple locations are returned during a redirect.

- Update ConnectionPool connections when TLS/SSL settings change.

- Remove simplejson import and only use standard json module.

- Strip surrounding whitespace from urls.

- MissingSchema and InvalidSchema renamed to MissingScheme and InvalidScheme
  respectively.

- Change merge order for environment settings to avoid excluding Session-level
  settings.

- Encode redirect URIs as latin-1 before performing redirects in Python 3 to
  avoid mangling during the requoting process.

- Remove the ``__bool__`` and ``__nonzero__`` methods from a ``Response``
  object.

  This has been a planned feature for over a year. The behaviour is surprising
  to most people and breaks most of the assumptions that people have about
  Response objects. This resolves issue `#2002`_

- Skip over empty chunks in iterators. Empty chunks could prematurely signal
  the end of a request body's transmission, skipping them allows all of the
  data through. See `#2631`_ for more details.

- Rename the ``req`` argument from ``Session.resolve_redirects`` method
  to ``request``.

- Rename the ``resp`` argument from ``Session.resolve_redirects`` to
  ``response``.

- New ``PreparedRequest.send`` method. Now, you can
  ``Request().prepare().send()``.

- All porcelain API functions (e.g. ``requests.get``, etc) now accept an
  optional ``session`` parameter. If provided, the session given will be used
  for the request, in place of one being created for you.

- URLs are now automatically stripped of leading/trailing whitespace.

- ``Response.raise_for_status()`` now returns the response object for good responses

- Use ``HTTPHeaderDict`` for response headers, allowing easier access to
  individual values when multiple response headers are sent using the same
  header name.

.. _#2002: https://github.com/kennethreitz/requests/issues/2002
.. _#2631: https://github.com/kennethreitz/requests/issues/2631
