3.0.0 -- 2016-07-25
-------------------

- Rewrite our documentation from scratch! (http://flake8.pycqa.org)

- Drop explicit support for Pythons 2.6, 3.2, and 3.3.

- Remove dependence on pep8/pycodestyle for file processing, plugin
  dispatching, and more. We now control all of this while keeping backwards
  compatibility.

- ``--select`` and ``--ignore`` can now both be specified and try to find the
  most specific rule from each. For example, if you do ``--select E --ignore
  E123`` then we will report everything that starts with ``E`` except for
  ``E123``. Previously, you would have had to do ``--ignore E123,F,W`` which
  will also still work, but the former should be far more intuitive.

- Add support for in-line ``# noqa`` comments to specify **only** the error
  codes to be ignored, e.g., ``# noqa: E123,W503``

- Add entry-point for formatters as well as a base class that new formatters
  can inherit from. See the documentation for more details.

- Add detailed verbose output using the standard library logging module.

- Enhance our usage of optparse for plugin developers by adding new parameters
  to the ``add_option`` that plugins use to register new options.

- Update ``--install-hook`` to require the name of version control system hook
  you wish to install a Flake8.

- Stop checking sub-directories more than once via the setuptools command

- When passing a file on standard-in, allow the caller to specify
  ``--stdin-display-name`` so the output is properly formatted

- The Git hook now uses ``sys.executable`` to format the shebang line.
  This allows Flake8 to install a hook script from a virtualenv that points to
  that virtualenv's Flake8 as opposed to a global one (without the virtualenv
  being sourced).

- Print results in a deterministic and consistent ordering when used with
  multiprocessing

- When using ``--count``, the output is no longer written to stderr.

- AST plugins can either be functions or classes and all plugins can now
  register options so long as there are callable attributes named as we
  expect.
