66 :maxdepth: 2
77
88:Release: 2.15
9- :Date: TBA
9+ :Date: 2022-08-26
1010
1111Summary -- Release highlights
1212=============================
@@ -17,4 +17,169 @@ default timeout values that could cause a program to be hanging indefinitely.
1717We improved ``pylint ``'s handling of namespace packages. More packages should
1818be linted without resorting to using the ``--recursive=y `` option.
1919
20+ We still welcome any community effort to help review, integrate, and add good/bad examples to the doc for
21+ <https://github.com/PyCQA/pylint/issues/5953>`_. This should be doable without any ``pylint `` or ``astroid ``
22+ knowledge, so this is the perfect entrypoint if you want to contribute to ``pylint `` or open source without
23+ any experience with our code!
24+
25+ Internally, we changed the way we generate the release notes, thanks to DudeNr33.
26+ There will be no more conflict resolution to do in the changelog, and every contributor rejoice.
27+
28+ Marc Byrne became a maintainer, welcome to the team !
29+
2030.. towncrier release notes start
31+
32+ New Checks
33+ ----------
34+
35+ - Added new checker ``missing-timeout `` to warn of default timeout values that could cause
36+ a program to be hanging indefinitely.
37+
38+ Refs #6780 (`#6780 <https://github.com/PyCQA/pylint/issues/6780 >`_)
39+
40+
41+ False Positives Fixed
42+ ---------------------
43+
44+ - Don't report ``super-init-not-called `` for abstract ``__init__ `` methods.
45+
46+ Closes #3975 (`#3975 <https://github.com/PyCQA/pylint/issues/3975 >`_)
47+ - Don't report ``unsupported-binary-operation `` on Python <= 3.9 when using the ``| `` operator
48+ with types, if one has a metaclass that overloads ``__or__ `` or ``__ror__ `` as appropriate.
49+
50+ Closes #4951 (`#4951 <https://github.com/PyCQA/pylint/issues/4951 >`_)
51+ - Don't report ``no-value-for-parameter `` for dataclasses fields annotated with ``KW_ONLY ``.
52+
53+ Closes #5767 (`#5767 <https://github.com/PyCQA/pylint/issues/5767 >`_)
54+ - Fixed inference of ``Enums `` when they are imported under an alias.
55+
56+ Closes #5776 (`#5776 <https://github.com/PyCQA/pylint/issues/5776 >`_)
57+ - Prevent false positives when accessing ``PurePath.parents `` by index (not slice) on Python 3.10+.
58+
59+ Closes #5832 (`#5832 <https://github.com/PyCQA/pylint/issues/5832 >`_)
60+ - ``unnecessary-list-index-lookup `` is now more conservative to avoid potential false positives.
61+
62+ Closes #6896 (`#6896 <https://github.com/PyCQA/pylint/issues/6896 >`_)
63+ - Fix double emitting ``trailing-whitespace `` for multi-line docstrings.
64+
65+ Closes #6936 (`#6936 <https://github.com/PyCQA/pylint/issues/6936 >`_)
66+ - ``import-error `` now correctly checks for ``contextlib.suppress `` guards on import statements.
67+
68+ Closes #7270 (`#7270 <https://github.com/PyCQA/pylint/issues/7270 >`_)
69+ - Fix false positive for `no-self-argument `/`no-method-argument ` when a staticmethod is applied to a function but uses a different name.
70+
71+ Closes #7300 (`#7300 <https://github.com/PyCQA/pylint/issues/7300 >`_)
72+ - Fix `undefined-loop-variable ` with `break ` and `continue ` statements in `else ` blocks.
73+
74+ Refs #7311 (`#7311 <https://github.com/PyCQA/pylint/issues/7311 >`_)
75+
76+
77+ False Negatives Fixed
78+ ---------------------
79+
80+ - Emit ``used-before-assignment `` when relying on a name that is reimported later in a function.
81+
82+ Closes #4624 (`#4624 <https://github.com/PyCQA/pylint/issues/4624 >`_)
83+ - Emit ``used-before-assignment `` for self-referencing named expressions (``:= ``) lacking
84+ prior assignments.
85+
86+ Closes #5653 (`#5653 <https://github.com/PyCQA/pylint/issues/5653 >`_)
87+ - Emit ``used-before-assignment `` for self-referencing assignments under if conditions.
88+
89+ Closes #6643 (`#6643 <https://github.com/PyCQA/pylint/issues/6643 >`_)
90+ - Emit ``modified-iterating-list `` and analogous messages for dicts and sets when iterating
91+ literals, or when using the ``del `` keyword.
92+
93+ Closes #6648 (`#6648 <https://github.com/PyCQA/pylint/issues/6648 >`_)
94+ - Emit ``used-before-assignment `` when calling nested functions before assignment.
95+
96+ Closes #6812 (`#6812 <https://github.com/PyCQA/pylint/issues/6812 >`_)
97+ - Emit ``nonlocal-without-binding `` when a nonlocal name has been assigned at a later point in the same scope.
98+
99+ Closes #6883 (`#6883 <https://github.com/PyCQA/pylint/issues/6883 >`_)
100+ - Emit ``using-constant-test `` when testing the truth value of a variable or call result
101+ holding a generator.
102+
103+ Closes #6909 (`#6909 <https://github.com/PyCQA/pylint/issues/6909 >`_)
104+ - Rename ``unhashable-dict-key `` to ``unhashable-member `` and emit when creating sets and dicts,
105+ not just when accessing dicts.
106+
107+ Closes #7034, Closes #7055 (`#7034 <https://github.com/PyCQA/pylint/issues/7034 >`_)
108+
109+
110+ Other Bug Fixes
111+ ---------------
112+
113+ - Fix a failure to lint packages with ``__init__.py `` contained in directories lacking ``__init__.py ``.
114+
115+ Closes #1667 (`#1667 <https://github.com/PyCQA/pylint/issues/1667 >`_)
116+ - Fixed a syntax-error crash that was not handled properly when the declared encoding of a file
117+ was ``utf-9 ``.
118+
119+ Closes #3860 (`#3860 <https://github.com/PyCQA/pylint/issues/3860 >`_)
120+ - Fix a crash in the ``not-callable `` check when there is ambiguity whether an instance is being incorrectly provided to ``__new__() ``.
121+
122+ Closes #7109 (`#7109 <https://github.com/PyCQA/pylint/issues/7109 >`_)
123+ - Fix crash when regex option raises a `re.error ` exception.
124+
125+ Closes #7202 (`#7202 <https://github.com/PyCQA/pylint/issues/7202 >`_)
126+ - Fix `undefined-loop-variable ` from walrus in comprehension test.
127+
128+ Closes #7222 (`#7222 <https://github.com/PyCQA/pylint/issues/7222 >`_)
129+ - Check for `<cwd> ` before removing first item from `sys.path ` in `modify_sys_path `.
130+
131+ Closes #7231 (`#7231 <https://github.com/PyCQA/pylint/issues/7231 >`_)
132+ - Fix sys.path pollution in parallel mode.
133+
134+ Closes #7246 (`#7246 <https://github.com/PyCQA/pylint/issues/7246 >`_)
135+ - Prevent `useless-parent-delegation ` for delegating to a builtin
136+ written in C (e.g. `Exception.__init__ `) with non-self arguments.
137+
138+ Closes #7319 (`#7319 <https://github.com/PyCQA/pylint/issues/7319 >`_)
139+
140+
141+ Other Changes
142+ -------------
143+
144+ - ``bad-exception-context `` has been renamed to ``bad-exception-cause `` as it is about the cause and not the context.
145+
146+ Closes #3694 (`#3694 <https://github.com/PyCQA/pylint/issues/3694 >`_)
147+ - The message for ``literal-comparison `` is now more explicit about the problem and the
148+ solution.
149+
150+ Closes #5237 (`#5237 <https://github.com/PyCQA/pylint/issues/5237 >`_)
151+ - ``useless-super-delegation `` has been renamed to ``useless-parent-delegation `` in order to be more generic.
152+
153+ Closes #6953 (`#6953 <https://github.com/PyCQA/pylint/issues/6953 >`_)
154+ - Pylint now uses ``towncrier `` for changelog generation.
155+
156+ Refs #6974 (`#6974 <https://github.com/PyCQA/pylint/issues/6974 >`_)
157+ - Update ``astroid `` to 2.12.
158+
159+ Refs #7153 (`#7153 <https://github.com/PyCQA/pylint/issues/7153 >`_)
160+ - Fix crash when a type-annotated `__slots__ ` with no value is declared.
161+
162+ Closes #7280 (`#7280 <https://github.com/PyCQA/pylint/issues/7280 >`_)
163+
164+
165+ Internal Changes
166+ ----------------
167+
168+ - Fixed an issue where it was impossible to update functional tests output when the existing
169+ output was impossible to parse. Instead of raising an error we raise a warning message and
170+ let the functional test fail with a default value.
171+
172+ Refs #6891 (`#6891 <https://github.com/PyCQA/pylint/issues/6891 >`_)
173+ - ``pylint.testutils.primer `` is now a private API.
174+
175+ Refs #6905 (`#6905 <https://github.com/PyCQA/pylint/issues/6905 >`_)
176+ - We changed the way we handle the changelog internally by using towncrier.
177+ If you're a contributor you won't have to fix merge conflicts in the
178+ changelog anymore.
179+
180+ Closes #6974 (`#6974 <https://github.com/PyCQA/pylint/issues/6974 >`_)
181+ - Pylint is now using Scorecards to implement security recommendations from the
182+ `OpenSSF <https://openssf.org/ >`_. This is done in order to secure our supply chains using a combination
183+ of automated tooling and best practices, most of which were already implemented before.
184+
185+ Refs #7267 (`#7267 <https://github.com/PyCQA/pylint/issues/7267 >`_)
0 commit comments