Revision history — Mypy 0.630+dev-734a166d380bfb0de05ce0e3c61dc7e675898e9c-dirty documentation

# Revision history

List of major changes (the Mypy Blog contains more detailed release notes):

- September 2018
    - Publish `mypy` version 0.630 on PyPI.
      - Recategorize and document `--warn-incomplete-stub` (docs).
      - Document stub-only packages incompatibility with `MYPYPATH` (docs).
      - Reorganize command line documentation (see also docs and more docs).
      - Document callback protocols.
- July 2018
    - Publish `mypy` version 0.620 on PyPI.
      - Improve support for overloads.
      - Add support for dataclasses.
- June 2018
    - Publish `mypy` version 0.610 on PyPI.
      - Major overhaul of documentation.
      - Add the `dmypy run` command to the daemon.
      - Partially revert the prior changes to section pattern semantics in configuration files (docs and more docs).
- May 2018
    - Publish `mypy` version 0.600 on PyPI.
      - Enable strict optional checking by default.
      - Document disabling strict optional checking.
      - Add Mypy daemon (mypy server).
      - Add Using a remote cache to speed up mypy runs.
      - Support user-specific configuration file (docs).
      - Changes to section pattern semantics in configuration files (docs and more docs).
- April 2018
    - Publish `mypy` version 0.590 on PyPI.
      - Document PEP 561 support.
      - Made incremental mode the default.
      - Document `--always-true` and `--always-false` (docs).
      - Document `follow_imports_for_stubs` (docs).
      - Add coroutines to Python 3 cheat sheet.
      - Add `None` return/strict-optional to common issues.
      - Clarify that `SupportsInt` etc. don’t support arithmetic operations (see docs).
- March 2018
    - Publish `mypy` version 0.580 on PyPI.
      - Allow specifying multiple packages on the command line with `-p` and `-m` flags.
    - Publish `mypy` version 0.570 on PyPI.
      - Add support for The attrs package.
- 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 Type hints 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 and global options.
- 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 and solutions.
    - 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 strict optional 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 Type hints 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 typeshed.
- 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 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.