************************** What's New in Pylint 2.8 ************************** :Release: 2.8 :Date: 2021-04-24 Summary -- Release highlights ============================= Breaking changes ================ * The 'doc' extra-require has been removed. `__pkginfo__`` does not contain the package metadata anymore (except ``numversion``, until 3.0). Meta-information are accessible with ```python from importlib import metadata metadata.metadata('pylint') ``` Prefer that to an import from ``__pkginfo__``. New checkers ============ * New refactoring message ``consider-using-with``. This message is emitted if resource-allocating functions or methods of the standard library (like ``open()`` or ``threading.Lock.acquire()``) that can be used as a context manager are called without a ``with`` block. * Add ``deprecated-argument`` check for deprecated arguments. * Add new extension ``ConfusingConsecutiveElifChecker``. This optional checker emits a refactoring message (R5601 ``confusing-consecutive-elif``) if if/elif statements with different indentation levels follow directly one after the other. * Add ``consider-using-min-max-builtin`` check for if statement which could be replaced by Python builtin min or max. * Add new extension ``TypingChecker``. This optional checker can detect the use of deprecated typing aliases and can suggest the use of the alternative union syntax where possible. (For example, 'typing.Dict' can be replaced by 'dict', and 'typing.Unions' by '|', etc.) Make sure to check the config options if you plan on using it! * Add ``deprecated-class`` check for deprecated classes. Other Changes ============= * New option ``--output=`` to output result to a file rather than printing to stdout. Closes #1070 * Reduce usage of blacklist/whitelist terminology. Notably, ``extension-pkg-allow-list`` is an alternative to ``extension-pkg-whitelist`` and the message ``blacklisted-name`` is now emitted as ``disallowed-name``. The previous names are accepted to maintain backward compatibility. * The packaging is now done via setuptools exclusively. ``doc``, ``tests``, ``man``, ``elisp`` and ``Changelog`` are not packaged anymore - reducing the size of the package by 75%. * Updated ``astroid`` to 2.5.4 * COPYING has been renamed to LICENSE for standardization.