6
6
:maxdepth: 2
7
7
8
8
:Release: 2.15
9
- :Date: TBA
9
+ :Date: 2022-08-26
10
10
11
11
Summary -- Release highlights
12
12
=============================
@@ -17,4 +17,169 @@ default timeout values that could cause a program to be hanging indefinitely.
17
17
We improved ``pylint ``'s handling of namespace packages. More packages should
18
18
be linted without resorting to using the ``--recursive=y `` option.
19
19
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
+
20
30
.. 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