Skip to content

Commit 24eaec2

Browse files
Bump pylint to 2.15.0, update changelog (#7355)
* Add Marc Byrne to the maintainer team
1 parent bb0df4a commit 24eaec2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+175
-135
lines changed

CONTRIBUTORS.txt

+4-2
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,13 @@ Ex-maintainers
1313

1414
Maintainers
1515
-----------
16-
1716
- Pierre Sassoulas <[email protected]>
1817
- Daniël van Noord <[email protected]>
1918
- Marc Mueller <[email protected]>
2019
- Jacob Walls <[email protected]>
2120
- Hippo91 <[email protected]>
2221
- Matus Valo <[email protected]>
22+
- Mark Byrne <[email protected]>
2323
- Andreas Finkler <[email protected]>
2424
- Łukasz Rogalski <[email protected]>
2525
- Ashley Whetter <[email protected]>
@@ -51,7 +51,6 @@ contributors:
5151
* wrong-spelling-in-comment
5252
* wrong-spelling-in-docstring
5353
* parallel execution on multiple CPUs
54-
- Mark Byrne <[email protected]>
5554
- Julthep Nandakwang <[email protected]>
5655
- Bruno Daniel <[email protected]>: check_docs extension.
5756
- Sushobhit <[email protected]> (sushobhit27)
@@ -118,6 +117,7 @@ contributors:
118117
- Julien Palard <[email protected]>
119118
- David Liu <[email protected]> (david-yz-liu)
120119
- Dan Goldsmith <[email protected]>: support for msg-template in HTML reporter.
120+
- Buck Evan <[email protected]>
121121
- Mariatta Wijaya <[email protected]>
122122
* Added new check `logging-fstring-interpolation`
123123
* Documentation typo fixes
@@ -434,6 +434,7 @@ contributors:
434434
- Kevin Phillips <[email protected]>
435435
- Kevin Jing Qiu <[email protected]>
436436
- Kayran Schmidt <[email protected]>
437+
- Karthik Nadig <[email protected]>
437438
- Jürgen Hermann <[email protected]>
438439
- Jérome Perrin <[email protected]>
439440
- Josselin Feist <[email protected]>
@@ -484,6 +485,7 @@ contributors:
484485
- Dr. Nick <[email protected]>
485486
- Don Jayamanne <[email protected]>
486487
- Dmytro Kyrychuk <[email protected]>
488+
- DetachHead <[email protected]>
487489
- Denis Laxalde <[email protected]>
488490
- David Cain <[email protected]>
489491
- Danny Hermes <[email protected]>

doc/whatsnew/2/2.15/index.rst

+166-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
:maxdepth: 2
77

88
:Release: 2.15
9-
:Date: TBA
9+
:Date: 2022-08-26
1010

1111
Summary -- Release highlights
1212
=============================
@@ -17,4 +17,169 @@ default timeout values that could cause a program to be hanging indefinitely.
1717
We improved ``pylint``'s handling of namespace packages. More packages should
1818
be 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>`_)

doc/whatsnew/fragments/1667.bugfix

-3
This file was deleted.

doc/whatsnew/fragments/3694.other

-3
This file was deleted.

doc/whatsnew/fragments/3860.bugfix

-4
This file was deleted.

doc/whatsnew/fragments/3975.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/4624.false_negative

-3
This file was deleted.

doc/whatsnew/fragments/4951.false_positive

-4
This file was deleted.

doc/whatsnew/fragments/5237.other

-4
This file was deleted.

doc/whatsnew/fragments/5653.false_negative

-4
This file was deleted.

doc/whatsnew/fragments/5767.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/5776.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/5832.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/6643.false_negative

-3
This file was deleted.

doc/whatsnew/fragments/6648.false_negative

-4
This file was deleted.

doc/whatsnew/fragments/6780.new_check

-4
This file was deleted.

doc/whatsnew/fragments/6812.false_negative

-3
This file was deleted.

doc/whatsnew/fragments/6883.false_negative

-4
This file was deleted.

doc/whatsnew/fragments/6891.internal

-5
This file was deleted.

doc/whatsnew/fragments/6896.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/6905.internal

-3
This file was deleted.

doc/whatsnew/fragments/6909.false_negative

-4
This file was deleted.

doc/whatsnew/fragments/6936.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/6953.other

-3
This file was deleted.

doc/whatsnew/fragments/6974.internal

-5
This file was deleted.

doc/whatsnew/fragments/6974.other

-3
This file was deleted.

doc/whatsnew/fragments/7034.false_negative

-5
This file was deleted.

doc/whatsnew/fragments/7109.bugfix

-3
This file was deleted.

doc/whatsnew/fragments/7153.other

-3
This file was deleted.

doc/whatsnew/fragments/7202.bugfix

-3
This file was deleted.

doc/whatsnew/fragments/7222.bugfix

-3
This file was deleted.

doc/whatsnew/fragments/7231.bugfix

-3
This file was deleted.

doc/whatsnew/fragments/7246.bugfix

-3
This file was deleted.

doc/whatsnew/fragments/7267.internal

-5
This file was deleted.

doc/whatsnew/fragments/7270.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/7280.other

-3
This file was deleted.

doc/whatsnew/fragments/7300.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/7311.false_positive

-3
This file was deleted.

doc/whatsnew/fragments/7319.bugfix

-4
This file was deleted.

pylint/__pkginfo__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from __future__ import annotations
1111

12-
__version__ = "2.15.0-a0"
12+
__version__ = "2.15.0"
1313

1414

1515
def get_numversion_from_version(v: str) -> tuple[int, int, int]:

0 commit comments

Comments
 (0)