# Revision history

List of major changes:

- December 2017
    - Publish `mypy` version 0.560 on PyPI.
      - Various types in `typing` that used to be ABCs are now protocols and support structural subtyping.
      - Explain how to silence invalid complaints by linters about unused imports due to type comments.
- November 2017
    - Publish `mypy` version 0.550 on PyPI.
      - Running mypy now requires Python 3.4 or higher. However Python 3.3 is still valid for the target of the analysis (i.e. the `--python-version` flag).
      - Split `--disallow-any` flag into separate boolean flags.
      - The `--old-html-report` flag was removed.
- October 2017
    - Publish `mypy` version 0.540 on PyPI.
    - Publish `mypy` version 0.530 on PyPI.
- August-September 2017
    - Add Protocols and structural subtyping.
    - Other updates to The mypy command line:
      - Add `--warn-unused-configs`.
      - Add `--disallow-untyped-decorators`.
      - Add `--disallow-incomplete-defs`.
- July 2017
    - Publish `mypy` version 0.521 on PyPI.
    - Publish `mypy` version 0.520 on PyPI.
    - Add fine-grained control of Any types.
    - Add TypedDict.
    - Other updates to The mypy command line:
      - Add `--no-implicit-optional`.
      - Add `--shadow-file`.
      - Add `--no-incremental`.
- May 2017
    - Publish `mypy` version 0.510 on PyPI.
    - Remove option `--no-fast-parser`.
    - Deprecate option `--strict-boolean`.
    - Drop support for Python 3.2 as type checking target.
    - Add support for overloaded functions with implementations.
    - Add Extended Callable types.
    - Add Asynchronous generators (PEP 525) and comprehensions (PEP 530).
    - Add ClassVar.
    - Add quick mode.
- March 2017
    - Publish `mypy` version 0.500 on PyPI.
    - Add The NoReturn type.
    - Add Defining sub-classes of generic classes.
    - Add Variance of generic types.
    - Add Invariance vs covariance.
    - Updates to New features in Python 3.6.
    - Updates to Integrating mypy into another Python application.
    - Updates to The mypy command line:
      - Add option `--warn-return-any`.
      - Add option `--strict-boolean`.
      - Add option `--strict`.
    - Updates to The mypy configuration file:
      - `warn_no_return` is on by default.
      - Read settings from `setup.cfg` if `mypy.ini` does not exist.
      - Add option `warn_return_any`.
      - Add option `strict_boolean`.
- January 2017
    - Publish `mypy` version 0.470 on PyPI.
    - Change package name from `mypy-lang` to `mypy`.
    - Add Integrating mypy into another Python application.
    - Add Mypy syntax cheat sheet (Python 3).
    - Major update to How imports are found.
    - Add –ignore-missing-imports.
    - Updates to The mypy configuration file.
    - Document underscore support in numeric literals.
    - Document that arguments prefixed with `__` are positional-only.
    - Document that `--hide-error-context` is now on by default, and there is a new flag `--show-error-context`.
    - Add `ignore_errors` to Per-module flags.
- November 2016
    - Publish `mypy-lang` version 0.4.6 on PyPI.
    - Add Getting started.
    - Add Generic methods and generic self (experimental).
    - Add Declaring decorators.
    - Discuss generic type aliases in Type aliases.
    - Discuss Python 3.6 named tuple syntax in Named tuples.
    - Updates to Common issues.
    - Updates to New features in Python 3.6.
    - Updates to The mypy command line:
      - `--custom-typeshed-dir`
      - `--junit-xml`
      - `--find-occurrences`
      - `--cobertura-xml-report`
      - `--warn-no-return`
    - Updates to The mypy configuration file:
      - Sections with fnmatch patterns now use module name patterns (previously they were path patterns).
      - Added `custom_typeshed_dir`, `mypy_path` and `show_column_numbers`.
    - Mention the magic `MYPY` constant in Import cycles.
- October 2016
    - Publish `mypy-lang` version 0.4.5 on PyPI.
    - Add New features in Python 3.6.
    - Add The mypy configuration file.
    - Updates to The mypy command line: `--strict-optional-white-list`, `--disallow-subclassing-any`, `--config-file`, `@flagfile`, `--hide-error-context` (replaces `--suppress-error-context`), `--show-column-numbers` and `--scripts-are-modules`.
    - Mention `typing.TYPE_CHECKING` in Import cycles.
- August 2016
    - Publish `mypy-lang` version 0.4.4 on PyPI.
    - Add NewTypes.
    - Add Typing async/await.
    - Add Text and AnyStr.
    - Add Python version and system platform checks.
- July 2016
    - Publish `mypy-lang` version 0.4.3 on PyPI.
    - Add Experimental strict optional type and None checking.
    - Add Multi-line Python 2 function annotations.
- June 2016
    - Publish `mypy-lang` version 0.4.2 on PyPI.
    - Add The type of class objects.
    - Add Mypy syntax cheat sheet (Python 2).
    - Add Displaying the type of an expression.
- May 2016
    - Publish `mypy-lang` version 0.4 on PyPI.
    - Add Type variables with upper bounds.
    - Document The mypy command line.
- Feb 2016
    - Publish `mypy-lang` version 0.3.1 on PyPI.
    - Document Python 2 support.
- Nov 2015
    Add Library stubs and the Typeshed repo.
- Jun 2015
    Remove `Undefined` and `Dynamic`, as they are not in PEP 484.
- Apr 2015
    Publish `mypy-lang` version 0.2.0 on PyPI.
- Mar 2015
    Update documentation to reflect PEP 484:
    - Add Named tuples and The type of None and optional types.
    - Do not mention type application syntax (for example, `List[int]()`), as it’s no longer supported, due to PEP 484 compatibility.
    - Rename `typevar` to `TypeVar`.
    - Document `# type: ignore` which allows locally ignoring spurious errors (Spurious errors and locally silencing the checker).
    - No longer mention `Any(x)` as a valid cast, as it will be phased out soon.
    - Mention the new `.pyi` stub file extension. Stubs can live in the same directory as the rest of the program.
- Jan 2015
    Mypy moves closer to PEP 484:
    - Add Type aliases.
    - Update discussion of overloading – it’s now only supported in stubs.
    - Rename `Function[...]` to `Callable[...]`.
- Dec 2014
    Publish mypy version 0.1.0 on PyPI.
- Oct 2014
    Major restructuring. Split the HTML documentation into multiple pages.
- Sep 2014
    Migrated docs to Sphinx.
- Aug 2014
    Don’t discuss native semantics. There is only Python semantics.
- Jul 2013
    Rewrite to use new syntax. Shift focus to discussing Python semantics. Add more content, including short discussions of Generic functions and Union types.