diff --git a/doc/whatsnew/3/3.3/index.rst b/doc/whatsnew/3/3.3/index.rst index 787d17c606..5e77e03771 100644 --- a/doc/whatsnew/3/3.3/index.rst +++ b/doc/whatsnew/3/3.3/index.rst @@ -14,6 +14,45 @@ Summary -- Release highlights .. towncrier release notes start +What's new in Pylint 3.3.9? +--------------------------- +Release date: 2025-10-05 + + +False Positives Fixed +--------------------- + +- Fix used-before-assignment for PEP 695 type aliases and parameters. + + Closes #9815 (`#9815 `_) + +- No longer flag undeprecated functions in ``importlib.resources`` as deprecated. + + Closes #10593 (`#10593 `_) + +- Fix false positive ``inconsistent-return-statements`` when using ``quit()`` or ``exit()`` functions. + + Closes #10508 (`#10508 `_) + +- Fix false positive ``undefined-variable`` (E0602) for for-loop variable shadowing patterns like ``for item in item:`` when the variable was previously defined. + + Closes #10562 (`#10562 `_) + + + +Other Bug Fixes +--------------- + +- Fixed crash in ``unnecessary-list-index-lookup`` when starting an enumeration using + minus the length of an iterable inside a dict comprehension when the len call was only + made in this dict comprehension, and not elsewhere. Also changed the approach, + to use inference in all cases but the simple ones, so we don't have to fix crashes + one by one for arbitrarily complex expressions in enumerate. + + Closes #10510 (`#10510 `_) + + + What's new in Pylint 3.3.8? --------------------------- Release date: 2025-08-09 diff --git a/doc/whatsnew/fragments/10508.bugfix b/doc/whatsnew/fragments/10508.bugfix deleted file mode 100644 index 3195b4d441..0000000000 --- a/doc/whatsnew/fragments/10508.bugfix +++ /dev/null @@ -1,3 +0,0 @@ -Fix false positive ``inconsistent-return-statements`` when using ``quit()`` or ``exit()`` functions. - -Closes #10508 diff --git a/doc/whatsnew/fragments/10510.bugfix b/doc/whatsnew/fragments/10510.bugfix deleted file mode 100644 index d7653b3cb4..0000000000 --- a/doc/whatsnew/fragments/10510.bugfix +++ /dev/null @@ -1,7 +0,0 @@ -Fixed crash in 'unnecessary-list-index-lookup' when starting an enumeration using -minus the length of an iterable inside a dict comprehension when the len call was only -made in this dict comprehension, and not elsewhere. Also changed the approach, -to use inference in all cases but the simple ones, so we don't have to fix crashes -one by one for arbitrarily complex expressions in enumerate. - -Closes #10510 diff --git a/doc/whatsnew/fragments/10562.bugfix b/doc/whatsnew/fragments/10562.bugfix deleted file mode 100644 index 001dc72a5a..0000000000 --- a/doc/whatsnew/fragments/10562.bugfix +++ /dev/null @@ -1,3 +0,0 @@ -Fix false positive ``undefined-variable`` (E0602) for for-loop variable shadowing patterns like ``for item in item:`` when the variable was previously defined. - -Closes #10562 diff --git a/doc/whatsnew/fragments/10593.false_positive b/doc/whatsnew/fragments/10593.false_positive deleted file mode 100644 index 44ff2d9f0a..0000000000 --- a/doc/whatsnew/fragments/10593.false_positive +++ /dev/null @@ -1,3 +0,0 @@ -No longer flag undeprecated functions in ``importlib.resources`` as deprecated. - -Closes #10593 diff --git a/doc/whatsnew/fragments/9815.false_positive b/doc/whatsnew/fragments/9815.false_positive deleted file mode 100644 index 28b4ee483a..0000000000 --- a/doc/whatsnew/fragments/9815.false_positive +++ /dev/null @@ -1,3 +0,0 @@ -Fix used-before-assignment for PEP 695 type aliases and parameters. - -Closes #9815 diff --git a/examples/pylintrc b/examples/pylintrc index 8c7580fd0c..c88be1c2af 100644 --- a/examples/pylintrc +++ b/examples/pylintrc @@ -436,9 +436,9 @@ disable=raw-checker-failed, suppressed-message, useless-suppression, deprecated-pragma, + use-symbolic-message-instead, use-implicit-booleaness-not-comparison-to-string, - use-implicit-booleaness-not-comparison-to-zero, - use-symbolic-message-instead + use-implicit-booleaness-not-comparison-to-zero # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option diff --git a/examples/pyproject.toml b/examples/pyproject.toml index 33df0cafc5..3b90784ad7 100644 --- a/examples/pyproject.toml +++ b/examples/pyproject.toml @@ -381,9 +381,9 @@ disable = [ "suppressed-message", "useless-suppression", "deprecated-pragma", + "use-symbolic-message-instead", "use-implicit-booleaness-not-comparison-to-string", "use-implicit-booleaness-not-comparison-to-zero", - "use-symbolic-message-instead", ] # Enable the message, report, category or checker with the given id(s). You can diff --git a/pylint/__pkginfo__.py b/pylint/__pkginfo__.py index 31e091bfa7..561d4afd4d 100644 --- a/pylint/__pkginfo__.py +++ b/pylint/__pkginfo__.py @@ -9,7 +9,7 @@ from __future__ import annotations -__version__ = "3.3.8" +__version__ = "3.3.9" def get_numversion_from_version(v: str) -> tuple[int, int, int]: diff --git a/script/.contributors_aliases.json b/script/.contributors_aliases.json index cf34d00029..912b327ff9 100644 --- a/script/.contributors_aliases.json +++ b/script/.contributors_aliases.json @@ -274,7 +274,8 @@ "66853113+pre-commit-ci[bot]@users.noreply.github.com", "49699333+dependabot[bot]@users.noreply.github.com", "212256041+pylint-backport-bot[bot]@users.noreply.github.com", - "41898282+github-actions[bot]@users.noreply.github.com" + "41898282+github-actions[bot]@users.noreply.github.com", + "212256041+pylint-backport[bot]@users.noreply.github.com" ], "name": "bot" }, diff --git a/tbump.toml b/tbump.toml index 37dd0590cb..6ba58fc533 100644 --- a/tbump.toml +++ b/tbump.toml @@ -1,7 +1,7 @@ github_url = "https://github.com/pylint-dev/pylint" [version] -current = "3.3.8" +current = "3.3.9" regex = ''' ^(?P0|[1-9]\d*) \. diff --git a/towncrier.toml b/towncrier.toml index b2cd891386..9a1bf5f03a 100644 --- a/towncrier.toml +++ b/towncrier.toml @@ -1,5 +1,5 @@ [tool.towncrier] -version = "3.3.8" +version = "3.3.9" directory = "doc/whatsnew/fragments" filename = "doc/whatsnew/3/3.3/index.rst" template = "doc/whatsnew/fragments/_template.rst"