Full changelog
==============

What's New in Pylint 2.11.1?
----------------------------
Release date: 2021-09-16

* ``unspecified-encoding`` now checks the encoding of ``pathlib.Path()`` correctly

  Closes #5017


What's New in Pylint 2.11.0?
----------------------------
Release date: 2021-09-16

* The python3 porting mode checker and its ``py3k`` option were removed. You can still find it in older pylint
  versions.

* ``raising-bad-type`` is now properly emitted when  raising a string

* Added new extension ``SetMembershipChecker`` with ``use-set-for-membership`` check:
  Emitted when using an in-place defined ``list`` or ``tuple`` to do a membership test. ``sets`` are better optimized for that.

  Closes #4776

* Added ``py-version`` config key (if ``[MASTER]`` section). Used for version dependent checks.
  Will default to whatever Python version pylint is executed with.

* ``CodeStyleChecker``: Added ``consider-using-assignment-expr``: Emitted when an assignment is directly followed by an if statement
  and both can be combined by using an assignment expression ``:=``. Requires Python 3.8

  Closes #4862

* Added ``consider-using-f-string``: Emitted when .format() or '%' is being used to format a string.

  Closes #3592

* Fix false positive for ``consider-using-with`` if a context manager is assigned to a
  variable in different paths of control flow (e. g. if-else clause).

  Closes #4751

* https is now preferred in the documentation and http://pylint.pycqa.org correctly redirect to https://pylint.pycqa.org

  Closes #3802

* Fix false positive for ``function-redefined`` for simple type annotations

  Closes #4936

* Fix false positive for ``protected-access`` if a protected member is used in type hints of function definitions

* Fix false positive ``dict-iter-missing-items`` for dictionaries only using tuples as keys

  Closes #3282

* The ``unspecified-encoding`` checker now also checks calls to ``pathlib.Path().read_text()``
  and ``pathlib.Path().write_text()``

  Closes #4945

* Fix false positive ``superfluous-parens`` for tuples created with inner tuples

  Closes #4907

* Fix false positive ``unused-private-member`` for accessing attributes in a class using ``cls``

  Closes #4849

* Fix false positive ``unused-private-member`` for private staticmethods accessed in classmethods.

  Closes #4849

* Extended ``consider-using-in`` check to work for attribute access.

* Setting ``min-similarity-lines`` to 0 now makes the similarty checker stop checking for duplicate code

  Closes #4901

* Fix a bug where pylint complained if the cache's parent directory does not exist

  Closes #4900

* The ``global-variable-not-assigned`` checker now catches global variables that are never reassigned in a
  local scope and catches (reassigned) functions

  Closes #1375
  Closes #330

* Fix false positives for :ref:`invalid-all-format` that are lists or tuples at runtime

  Closes #4711

* Fix ``no-self-use`` and ``docparams extension`` for async functions and methods.

* Add documentation for ``pyreverse`` and ``symilar``

  Closes #4616

* Non symbolic messages with the wrong capitalisation now correctly trigger ``use-symbolic-message-instead``

  Closes #5000

* The ``consider-iterating-dictionary`` checker now also considers membership checks

  Closes #4069

* The ``invalid-name`` message is now more detailed when using multiple naming style regexes.
