Skip to content

Conversation

@andersk
Copy link
Contributor

@andersk andersk commented Jul 26, 2024

Commit 1072c78 (#17148) converted all quoted types into RawExpressionType, which raised an AssertionError when accepting a TypeTriggersVisitor.

Commit 1072c78 (python#17148) converted all
quoted types into RawExpressionType, which raised an AssertionError
when accepting a TypeTriggersVisitor.

Fixes python#17587.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
@JelleZijlstra
Copy link
Member

This looks like it could work, but one of the mypy-primer runs timed out after 6 hours. Re-running it to see if it's a fluke or this PR is introducing/exposing a bug that makes mypy hang on some code.

@andersk
Copy link
Contributor Author

andersk commented Jul 26, 2024

Hmm. It looks like it’s stuck in the same way (attempt 1, attempt 2).

@andersk
Copy link
Contributor Author

andersk commented Jul 26, 2024

@JelleZijlstra
Copy link
Member

Thanks, let's see if that helps.

@github-actions
Copy link
Contributor

According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅

@JelleZijlstra JelleZijlstra merged commit 8b74b5a into python:master Jul 26, 2024
@andersk andersk deleted the RawExpressionType.accept branch July 26, 2024 23:30
hauntsaninja pushed a commit that referenced this pull request Jul 27, 2024
)

Commit 1072c78 (#17148) converted all
quoted types into `RawExpressionType`, which raised an `AssertionError`
when `accept`ing a `TypeTriggersVisitor`.

- Fixes #17574.
- Fixes #17587.

Signed-off-by: Anders Kaseorg <andersk@mit.edu>
mr-c pushed a commit to mr-c/mypy that referenced this pull request Aug 14, 2024
md384 pushed a commit to md384/mypy that referenced this pull request Aug 14, 2024
hauntsaninja pushed a commit that referenced this pull request Aug 24, 2024
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 15, 2026
This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [deptry](https://github.com/fpgmaas/deptry) ([changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md)) | dev | minor | `^0.16.1` → `^0.24.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fpgmaas/deptry/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fpgmaas/deptry) |
| [flake8](https://github.com/pycqa/flake8) ([changelog](https://flake8.pycqa.org/en/latest/release-notes/index.html)) | dev | minor | `7.1.0` → `7.3.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pycqa/flake8/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pycqa/flake8) |
| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear#change-log) ([changelog](https://github.com/PyCQA/flake8-bugbear#change-log)) | dev | minor | `24.4.26` → `24.12.12` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/PyCQA/flake8-bugbear/badge)](https://securityscorecards.dev/viewer/?uri=github.com/PyCQA/flake8-bugbear) |
| [mypy](https://github.com/python/mypy) ([changelog](https://mypy.readthedocs.io/en/latest/changelog.html)) | dev | minor | `1.10.1` → `1.19.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/python/mypy/badge)](https://securityscorecards.dev/viewer/?uri=github.com/python/mypy) |
| [pip-licenses](https://github.com/raimon49/pip-licenses) ([changelog](https://github.com/raimon49/pip-licenses/releases)) | dev | minor | `5.0.0` → `5.5.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/raimon49/pip-licenses/badge)](https://securityscorecards.dev/viewer/?uri=github.com/raimon49/pip-licenses) |
| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | dev | minor | `3.2.4` → `3.3.9` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pylint-dev/pylint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pylint-dev/pylint) |
| [pylint-pydantic](https://github.com/fcfangcc/pylint-pydantic) | dev | minor | `^0.3.2` → `^0.4.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fcfangcc/pylint-pydantic/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fcfangcc/pylint-pydantic) |
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) ([changelog](https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html)) | test | minor | `^0.23.6` → `^0.26.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest-asyncio/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-asyncio) |
| [pytest-celery](https://github.com/celery/pytest-celery) | test | minor | `1.0.0` → `1.2.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/celery/pytest-celery/badge)](https://securityscorecards.dev/viewer/?uri=github.com/celery/pytest-celery) |
| [pytest-memray](https://github.com/bloomberg/pytest-memray) | test | minor | `1.7.0` → `1.8.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/bloomberg/pytest-memray/badge)](https://securityscorecards.dev/viewer/?uri=github.com/bloomberg/pytest-memray) |
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) ([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html)) | test | minor | `3.14.0` → `3.15.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest-mock/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-mock) |
| [pytest-random-order](https://github.com/jbasko/pytest-random-order) | test | minor | `1.1.1` → `1.2.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/jbasko/pytest-random-order/badge)](https://securityscorecards.dev/viewer/?uri=github.com/jbasko/pytest-random-order) |
| [python-gitlab](https://github.com/python-gitlab/python-gitlab) ([changelog](https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md)) | dev | minor | `6.0.0` → `6.5.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/python-gitlab/python-gitlab/badge)](https://securityscorecards.dev/viewer/?uri=github.com/python-gitlab/python-gitlab) |
| [zstandard](https://github.com/indygreg/python-zstandard) | dev | minor | `^0.23.0` → `^0.25.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/indygreg/python-zstandard/badge)](https://securityscorecards.dev/viewer/?uri=github.com/indygreg/python-zstandard) |

---

### Release Notes

<details>
<summary>fpgmaas/deptry (deptry)</summary>

### [`v0.24.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0240---2025-11-09)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0)

##### Breaking changes

##### Python 3.9 support dropped

Support for Python 3.9 has been dropped, as it has reached its end of life.

##### PyPy 3.10 support dropped, 3.11 added

Support for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.

##### Features

- Add GitHub Actions annotations reporter ([#&#8203;1059](https://github.com/fpgmaas/deptry/pull/1059))
- Add support for Python 3.14 ([#&#8203;1224](https://github.com/fpgmaas/deptry/pull/1224))
- Drop support for Python 3.9 ([#&#8203;1328](https://github.com/fpgmaas/deptry/pull/1328))
- Publish wheels for PyPy 3.11 and drop 3.10 ([#&#8203;1227](https://github.com/fpgmaas/deptry/pull/1227))

##### Full Changelog

### [`v0.23.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0231---2025-07-30)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.0...0.23.1)

##### Bug Fixes

- Improve handling of `TYPE_CHECKING` blocks by supporting `import typing as t` and checking `t.TYPE_CHECKING` ([#&#8203;1218](https://github.com/fpgmaas/deptry/pull/1218))
- Fix missing hyperlink in report output ([#&#8203;1162](https://github.com/fpgmaas/deptry/pull/1162))

##### Full Changelog

### [`v0.23.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0230---2025-01-25)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.22.0...0.23.0)

##### Features

- Correctly detect transitive dependencies with different module names ([#&#8203;1033](https://github.com/fpgmaas/deptry/pull/1033))

##### Full Changelog

### [`v0.22.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0220---2025-01-10)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.2...0.22.0)

Poetry 2.0 introduced support
for [defining project metadata in PEP 621](https://python-poetry.org/blog/announcing-poetry-2.0.0/). This is now
supported by *deptry*. [Documentation](https://deptry.com/supported-dependency-managers/#poetry) has been updated to
detail *deptry*'s behavior.

##### Features

- Support PEP 621 in Poetry 2.0+ ([#&#8203;1003](https://github.com/fpgmaas/deptry/pull/1003))

##### Full Changelog

### [`v0.21.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0212---2024-12-19)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.1...0.21.2)

##### Miscellaneous

- Provide wheels for musllinux ([#&#8203;979](https://github.com/fpgmaas/deptry/pull/979))

##### Full Changelog

### [`v0.21.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0211---2024-11-15)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.0...0.21.1)

##### Bug Fixes

- Handle string requirements files for `setuptools` dynamic
  dependencies ([#&#8203;945](https://github.com/fpgmaas/deptry/pull/945))

##### Full Changelog

### [`v0.21.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0210---2024-11-08)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.20.0...0.21.0)

##### Breaking changes

##### Ignore files handling

Unless [`--exclude`](https://deptry.com/usage/#exclude) is used, *deptry* excludes files found in common ignore
files (`.gitignore`, `.ignore`, `$HOME/.config/git/ignore`. ...), by using [`ignore`](https://crates.io/crates/ignore)
Rust crate. The default behaviour has been changed, so that now:

- git-related ignore rules (`.gitignore`, `$HOME/.config/git/ignore`, ...) are only used if *deptry* is run inside a git
  repository
- `.gitignore` files that are in parent directories of the git repository from where deptry is run are not
  used (previously, *deptry* would traverse parent directories up to the root system)

If you were using `.gitignore` files for non-git repositories, you might want to switch to `.ignore` files, or use
[`--extend-exclude`](https://deptry.com/usage/#extend-exclude).

##### Requirements files parsing

*deptry* now uses [`requirements-parser`](https://pypi.org/project/requirements-parser/) to parse dependencies from
requirements files, meaning that it can now extract nested requirements files referenced in other requirements files
without having to explicitly configure it in *deptry*.

For instance, if you have:

```python

# requirements.txt
-r cli-requirements.txt
httpx==0.27.2
```

```python

# cli-requirements.txt
click==8.1.7
```

With the default configuration, when parsing `requirements.txt`, both `httpx` and `click` will now be listed as
dependencies by *deptry*, while previously, only `httpx` was, unless *deptry* was instructed about
`cli-requirements.txt` by using [`--requirements-files`](https://deptry.com/usage/#requirements-files). This new
behaviour also impacts development requirements files, that can be overridden by
using [`--requirements-files-dev`](https://deptry.com/usage/#requirements-files-dev).

##### Python 3.8 support dropped

Support for Python 3.8 has been dropped, as it has reached its end of life.

##### Features

- *deptry* now detects development dependencies from `[dependency-groups]` section, introduced
  by [PEP 735](https://peps.python.org/pep-0735/) ([#&#8203;892](https://github.com/fpgmaas/deptry/pull/892))
- *deptry* now supports `setuptools` dynamic dependencies set in `[tool.setuptools.dynamic]` section,
  see <https://deptry.com/supported-dependency-managers/#setuptools> for more
  details ([#&#8203;894](https://github.com/fpgmaas/deptry/pull/894), [#&#8203;724](https://github.com/fpgmaas/deptry/pull/724))
- Drop support for Python 3.8 ([#&#8203;874](https://github.com/fpgmaas/deptry/pull/874))
- Improve ignore handling ([#&#8203;908](https://github.com/fpgmaas/deptry/pull/908))
- Parse requirements files with `requirements-parser`, adding support for parsing nested requirements
  files referenced with `-r <requirement_file>` ([#&#8203;913](https://github.com/fpgmaas/deptry/pull/913))

##### Full Changelog

### [`v0.20.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0200---2024-08-27)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.1...0.20.0)

##### Breaking changes

In release [0.15.0](https://github.com/fpgmaas/deptry/releases/tag/0.15.0), we announced the deprecation of the
following flags:

- `--requirements-txt` (and its `requirements_txt` setting counterpart in `pyproject.toml`)
- `--requirements-txt-dev` (and its `requirements_txt_dev` setting counterpart in `pyproject.toml`)

Those flags have now been removed. If you relied on them, you should now use, respectively:

- `--requirements-files` (and its `requirements_files` setting counterpart in `pyproject.toml`)
- `--requirements-files-dev` (and its `requirements_files_dev` setting counterpart in `pyproject.toml`)

##### Features

- deptry now detects [uv](https://github.com/astral-sh/uv) and reads development dependencies from
  `[uv.tool.dev-dependencies]` section ([#&#8203;816](https://github.com/fpgmaas/deptry/pull/816))
- Dynamically set max terminal width for better readability when displaying
  help ([#&#8203;817](https://github.com/fpgmaas/deptry/pull/817))
- Remove deprecated `--requirements-txt`/`--requirements-txt-dev`
  flags ([#&#8203;819](https://github.com/fpgmaas/deptry/pull/819))

##### Full Changelog

### [`v0.19.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0191---2024-08-10)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.0...0.19.1)

##### Features

- Add back PEP 420 support behind `--experimental-namespace-package` feature
  flag ([#&#8203;808](https://github.com/fpgmaas/deptry/pull/808))
- Add support for Python 3.13 ([#&#8203;713](https://github.com/fpgmaas/deptry/pull/713), [#&#8203;809](https://github.com/fpgmaas/deptry/pull/809))

##### Miscellaneous

- Provide Windows ARM64 wheels for Python ([#&#8203;807](https://github.com/fpgmaas/deptry/pull/807))

##### Full Changelog

### [`v0.19.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0190---2024-08-08)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.18.0...0.19.0)

This release reverts [#&#8203;753](https://github.com/fpgmaas/deptry/pull/753) that caused a noticeable performance regression on large
codebases. The intent of the initial MR was to support projects following PEP 420, so if your project currently relies
on this behaviour, feel free to manifest your interest in [#&#8203;740](https://github.com/fpgmaas/deptry/issues/740).

##### Bug Fixes

- Revert "fix(core): use `rglob` to guess local Python modules ([#&#8203;753](https://github.com/fpgmaas/deptry/issues/753))" ([#&#8203;798](https://github.com/fpgmaas/deptry/pull/798))

##### New Contributors

- [@&#8203;huisman](https://github.com/huisman) made their first contribution in [#&#8203;796](https://github.com/fpgmaas/deptry/pull/796)

##### Full Changelog

### [`v0.18.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0180---2024-07-31)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.17.0...0.18.0)

##### Features

- Support imports using `importlib.import_module` ([#&#8203;782](https://github.com/fpgmaas/deptry/pull/782))

##### New Contributors

- [@&#8203;lmmx](https://github.com/lmmx) made their first contribution in [#&#8203;782](https://github.com/fpgmaas/deptry/pull/782)

##### Full Changelog

### [`v0.17.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0170---2024-07-20)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.2...0.17.0)

##### Features

- Add a new rule `DEP005` to detect project dependencies that are in the standard library. ([#&#8203;761](https://github.com/fpgmaas/deptry/pull/761))

##### Full Changelog

### [`v0.16.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0162---2024-07-05)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.1...0.16.2)

##### Bug Fixes

- Avoid crashing on PEP 621 and Poetry projects with no dependencies ([#&#8203;752](https://github.com/fpgmaas/deptry/pull/752))
- Recursively search for Python files to detect local modules, to better support namespace packages ([#&#8203;753](https://github.com/fpgmaas/deptry/pull/753))

##### Miscellaneous

- Provide macOS ARM wheels for PyPy ([#&#8203;691](https://github.com/fpgmaas/deptry/pull/691))

##### Full Changelog

</details>

<details>
<summary>pycqa/flake8 (flake8)</summary>

### [`v7.3.0`](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0)

[Compare Source](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0)

### [`v7.2.0`](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0)

[Compare Source](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0)

### [`v7.1.2`](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2)

[Compare Source](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2)

### [`v7.1.1`](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1)

[Compare Source](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1)

</details>

<details>
<summary>PyCQA/flake8-bugbear (flake8-bugbear)</summary>

### [`v24.12.12`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.12.12)

[Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.10.31...24.12.12)

- B012 and B025 now also handle try/except\* ([#&#8203;500](https://github.com/PyCQA/flake8-bugbear/issues/500))
- Skip B028 if warnings.warn is called with `*args` or `**kwargs` ([#&#8203;501](https://github.com/PyCQA/flake8-bugbear/issues/501))
- Add B911: itertools.batched without strict= ([#&#8203;502](https://github.com/PyCQA/flake8-bugbear/issues/502))
- Readme has anchors per check (they do not seem to render on GitHub tho)

### [`v24.10.31`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.10.31)

[Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.8.19...24.10.31)

- B041: New dictionary same key AND value check ([#&#8203;496](https://github.com/PyCQA/flake8-bugbear/issues/496))
- B037: Fix typo in error message
- B024: No longer treats assigned class variables as abstract ([#&#8203;471](https://github.com/PyCQA/flake8-bugbear/issues/471))
- Bump required attrs version to 22.2.0

### [`v24.8.19`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.8.19)

[Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.4.26...24.8.19)

- B910: implement to suggest using Counter() instead of defaultdict(int) ([#&#8203;489](https://github.com/PyCQA/flake8-bugbear/issues/489))
- B901: Do not trigger with explicit Generator return type ([#&#8203;481](https://github.com/PyCQA/flake8-bugbear/issues/481))
- B008: add some comments, rename b008\_extend\_immutable\_calls ([#&#8203;476](https://github.com/PyCQA/flake8-bugbear/issues/476))
- B040: exception with note added not reraised or used ([#&#8203;477](https://github.com/PyCQA/flake8-bugbear/issues/477))
- B039, Add `ContextVar` with mutable literal or function call as default
- B040: Add Exception with added note not reraised. ([#&#8203;474](https://github.com/PyCQA/flake8-bugbear/issues/474))
- Run tests in Python 3.13
- Type annotated code ([#&#8203;481](https://github.com/PyCQA/flake8-bugbear/issues/481) + [#&#8203;483](https://github.com/PyCQA/flake8-bugbear/issues/483))
- Replace hash with unsafe\_hash ([#&#8203;486](https://github.com/PyCQA/flake8-bugbear/issues/486))

</details>

<details>
<summary>python/mypy (mypy)</summary>

### [`v1.19.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1191)

[Compare Source](https://github.com/python/mypy/compare/v1.19.0...v1.19.1)

- Fix noncommutative joins with bounded TypeVars (Shantanu, MR [20345](https://github.com/python/mypy/pull/20345))
- Respect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, MR [20372](https://github.com/python/mypy/pull/20372))
- Allow `types.NoneType` in match cases (A5rocks, MR [20383](https://github.com/python/mypy/pull/20383))
- Fix mypyc generator regression with empty tuple (BobTheBuidler, MR [20371](https://github.com/python/mypy/pull/20371))
- Fix crash involving Unpack-ed TypeVarTuple (Shantanu, MR [20323](https://github.com/python/mypy/pull/20323))
- Fix crash on star import of redefinition (Ivan Levkivskyi, MR [20333](https://github.com/python/mypy/pull/20333))
- Fix crash on typevar with forward ref used in other module (Ivan Levkivskyi, MR [20334](https://github.com/python/mypy/pull/20334))
- Fail with an explicit error on PyPy (Ivan Levkivskyi, MR [20389](https://github.com/python/mypy/pull/20389))

### [`v1.19.0`](https://github.com/python/mypy/compare/v1.18.2...v1.19.0)

[Compare Source](https://github.com/python/mypy/compare/v1.18.2...v1.19.0)

### [`v1.18.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1182)

[Compare Source](https://github.com/python/mypy/compare/v1.18.1...v1.18.2)

- Fix crash on recursive alias (Ivan Levkivskyi, MR [19845](https://github.com/python/mypy/pull/19845))
- Add additional guidance for stubtest errors when runtime is `object.__init__` (Stephen Morton, MR [19733](https://github.com/python/mypy/pull/19733))
- Fix handling of None values in f-string expressions in mypyc (BobTheBuidler, MR [19846](https://github.com/python/mypy/pull/19846))

### [`v1.18.1`](https://github.com/python/mypy/compare/v1.17.1...v1.18.1)

[Compare Source](https://github.com/python/mypy/compare/v1.17.1...v1.18.1)

### [`v1.17.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1171)

[Compare Source](https://github.com/python/mypy/compare/v1.17.0...v1.17.1)

- Retain `None` as constraints bottom if no bottoms were provided (Stanislav Terliakov, MR [19485](https://github.com/python/mypy/pull/19485))
- Fix "ignored exception in `hasattr`" in dmypy (Stanislav Terliakov, MR [19428](https://github.com/python/mypy/pull/19428))
- Prevent a crash when InitVar is redefined with a method in a subclass (Stanislav Terliakov, MR [19453](https://github.com/python/mypy/pull/19453))

### [`v1.17.0`](https://github.com/python/mypy/compare/v1.16.1...v1.17.0)

[Compare Source](https://github.com/python/mypy/compare/v1.16.1...v1.17.0)

### [`v1.16.1`](https://github.com/python/mypy/compare/v1.16.0...v1.16.1)

[Compare Source](https://github.com/python/mypy/compare/v1.16.0...v1.16.1)

### [`v1.16.0`](https://github.com/python/mypy/compare/v1.15.0...v1.16.0)

[Compare Source](https://github.com/python/mypy/compare/v1.15.0...v1.16.0)

### [`v1.15.0`](https://github.com/python/mypy/compare/v1.14.1...v1.15.0)

[Compare Source](https://github.com/python/mypy/compare/v1.14.1...v1.15.0)

### [`v1.14.1`](https://github.com/python/mypy/compare/v1.14.0...v1.14.1)

[Compare Source](https://github.com/python/mypy/compare/v1.14.0...v1.14.1)

### [`v1.14.0`](https://github.com/python/mypy/compare/v1.13.0...v1.14.0)

[Compare Source](https://github.com/python/mypy/compare/v1.13.0...v1.14.0)

### [`v1.13.0`](https://github.com/python/mypy/compare/v1.12.1...v1.13.0)

[Compare Source](https://github.com/python/mypy/compare/v1.12.1...v1.13.0)

### [`v1.12.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1121)

[Compare Source](https://github.com/python/mypy/compare/v1.12.0...v1.12.1)

- Fix crash when showing partially analyzed type in error message (Ivan Levkivskyi, MR [17961](https://github.com/python/mypy/pull/17961))
- Fix iteration over union (when self type is involved) (Shantanu, MR [17976](https://github.com/python/mypy/pull/17976))
- Fix type object with type var default in union context (Jukka Lehtosalo, MR [17991](https://github.com/python/mypy/pull/17991))
- Revert change to `os.path` stubs affecting use of `os.PathLike[Any]` (Shantanu, MR [17995](https://github.com/python/mypy/pull/17995))

### [`v1.12.0`](https://github.com/python/mypy/compare/v1.11.2...v1.12.0)

[Compare Source](https://github.com/python/mypy/compare/v1.11.2...v1.12.0)

### [`v1.11.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1112)

[Compare Source](https://github.com/python/mypy/compare/v1.11.1...v1.11.2)

- Alternative fix for a union-like literal string (Ivan Levkivskyi, MR [17639](https://github.com/python/mypy/pull/17639))
- Unwrap `TypedDict` item types before storing (Ivan Levkivskyi, MR [17640](https://github.com/python/mypy/pull/17640))

### [`v1.11.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1111)

[Compare Source](https://github.com/python/mypy/compare/v1.11.0...v1.11.1)

- Fix `RawExpressionType.accept` crash with `--cache-fine-grained` (Anders Kaseorg, MR [17588](https://github.com/python/mypy/pull/17588))
- Fix PEP 604 isinstance caching (Shantanu, MR [17563](https://github.com/python/mypy/pull/17563))
- Fix `typing.TypeAliasType` being undefined on python < 3.12 (Nikita Sobolev, MR [17558](https://github.com/python/mypy/pull/17558))
- Fix `types.GenericAlias` lookup crash (Shantanu, MR [17543](https://github.com/python/mypy/pull/17543))

### [`v1.11.0`](https://github.com/python/mypy/compare/v1.10.1...v1.11.0)

[Compare Source](https://github.com/python/mypy/compare/v1.10.1...v1.11.0)

</details>

<details>
<summary>raimon49/pip-licenses (pip-licenses)</summary>

### [`v5.5.0`](https://github.com/raimon49/pip-licenses/blob/HEAD/CHANGELOG.md#550)

- Replace dependency on `tomli` with builtin `tomllib` for Python 3.11
- Added support for `License-Expression` metadata field, see [PEP 639](https://peps.python.org/pep-0639/)
- Added `--from=expression` option
- Breaking change: The `--from=all` output now includes the `License-Expression` value
- Fixed KeyError with `--partial` and `--allow-only` if a license matches multiple allowed licenses.
- Declare support for Python 3.13 and 3.14
- Added RST/Sphinx workflow example for `--with-license-file` option in documentation

</details>

<details>
<summary>pylint-dev/pylint (pylint)</summary>

### [`v3.3.9`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.9)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9)

## 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 [#&#8203;9815](https://github.com/pylint-dev/pylint/issues/9815)

- No longer flag undeprecated functions in `importlib.resources` as deprecated.

  Closes [#&#8203;10593](https://github.com/pylint-dev/pylint/issues/10593)

- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.

  Closes [#&#8203;10508](https://github.com/pylint-dev/pylint/issues/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 [#&#8203;10562](https://github.com/pylint-dev/pylint/issues/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 [#&#8203;10510](https://github.com/pylint-dev/pylint/issues/10510)

### [`v3.3.8`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.8)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.7...v3.3.8)

## What's new in Pylint 3.3.8?

Release date: 2025-08-09

This patch release includes an exceptional fix for a false negative issue. For details, see: [#&#8203;10482 (comment)](https://github.com/pylint-dev/pylint/pull/10482#issuecomment-3164514082)

## False Positives Fixed

- Fix false positives for `possibly-used-before-assignment` when variables are exhaustively
  assigned within a `match` block.

  Closes [#&#8203;9668](https://github.com/pylint-dev/pylint/issues/9668)

- Fix false positive for `missing-raises-doc` and `missing-yield-doc` when the method length is less than docstring-min-length.

  Refs [#&#8203;10104](https://github.com/pylint-dev/pylint/issues/10104)

- Fix a false positive for `unused-variable` when multiple except handlers bind the same name under a try block.

  Closes [#&#8203;10426](https://github.com/pylint-dev/pylint/issues/10426)

## False Negatives Fixed

- Fix false-negative for `used-before-assignment` with `from __future__ import annotations` in function definitions.

  Refs [#&#8203;10482](https://github.com/pylint-dev/pylint/issues/10482)

## Other Bug Fixes

- Fix a bug in Pyreverse where aggregations and associations were included in diagrams regardless of the selected --filter-mode (such as PUB\_ONLY, ALL, etc.).

  Closes [#&#8203;10373](https://github.com/pylint-dev/pylint/issues/10373)

- Fix double underscores erroneously rendering as bold in pyreverse's Mermaid output.

  Closes [#&#8203;10402](https://github.com/pylint-dev/pylint/issues/10402)

### [`v3.3.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.7)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.6...v3.3.7)

## What's new in Pylint 3.3.7?

Release date: 2025-05-04

## False Positives Fixed

- Comparisons between two calls to `type()` won't raise an `unidiomatic-typecheck` warning anymore, consistent with the behavior applied only for `==` previously.

  Closes [#&#8203;10161](https://github.com/pylint-dev/pylint/issues/10161)

## Other Bug Fixes

- Fixed a crash when importing a class decorator that did not exist with the same name as a class attribute after the class definition.

  Closes [#&#8203;10105](https://github.com/pylint-dev/pylint/issues/10105)

- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.

  Closes [#&#8203;10282](https://github.com/pylint-dev/pylint/issues/10282)

- Using a slice as a class decorator now raises a `not-callable` message instead of crashing. A lot of checks that dealt with decorators (too many to list) are now shortcut if the decorator can't immediately be inferred to a function or class definition.

  Closes [#&#8203;10334](https://github.com/pylint-dev/pylint/issues/10334)

## Other Changes

- The algorithm used for `no-member` suggestions is now more efficient and cuts the
  calculation when the distance score is already above the threshold.

  Refs [#&#8203;10277](https://github.com/pylint-dev/pylint/issues/10277)

### [`v3.3.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.6)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.5...v3.3.6)

## What's new in Pylint 3.3.6?

Release date: 2025-03-20

## False Positives Fixed

- Fix a false positive for `used-before-assignment` when an inner function's return type
  annotation is a class defined at module scope.

  Closes [#&#8203;9391](https://github.com/pylint-dev/pylint/issues/9391)

### [`v3.3.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.5)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.4...v3.3.5)

## What's new in Pylint 3.3.5?

Release date: 2025-03-09

## False Positives Fixed

- Fix false positives for `use-implicit-booleaness-not-comparison`, `use-implicit-booleaness-not-comparison-to-string`
  and `use-implicit-booleaness-not-comparison-to-zero` when chained comparisons are checked.

  Closes [#&#8203;10065](https://github.com/pylint-dev/pylint/issues/10065)

- Fix a false positive for `invalid-getnewargs-ex-returned` when the tuple or dict has been assigned to a name.

  Closes [#&#8203;10208](https://github.com/pylint-dev/pylint/issues/10208)

- Remove `getopt` and `optparse` from the list of deprecated modules.

  Closes [#&#8203;10211](https://github.com/pylint-dev/pylint/issues/10211)

## Other Bug Fixes

- Fixed conditional import x.y causing false positive possibly-used-before-assignment.

  Closes [#&#8203;10081](https://github.com/pylint-dev/pylint/issues/10081)

- Fix a crash when something besides a class is found in an except handler.

  Closes [#&#8203;10106](https://github.com/pylint-dev/pylint/issues/10106)

- Fixed raising invalid-name when using camelCase for private methods with two leading underscores.

  Closes [#&#8203;10189](https://github.com/pylint-dev/pylint/issues/10189)

## Other Changes

- Upload release assets to PyPI via Trusted Publishing.

  Closes [#&#8203;10256](https://github.com/pylint-dev/pylint/issues/10256)

### [`v3.3.4`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.4)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.3...v3.3.4)

## Other Bug Fixes

- Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number.

  Closes [#&#8203;10073](https://github.com/pylint-dev/pylint/issues/10073)

- Fixes a crash that occurred when pylint was run in a container on a host with cgroupsv2 and restrictions on CPU usage.

  Closes [#&#8203;10103](https://github.com/pylint-dev/pylint/issues/10103)

- Relaxed the requirements for isort so pylint can benefit from isort 6.

  Closes [#&#8203;10203](https://github.com/pylint-dev/pylint/issues/10203)

### [`v3.3.3`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.3)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.2...v3.3.3)

## What's new in Pylint 3.3.3?

Release date: 2024-12-23

## False Positives Fixed

- Fix false positives for `undefined-variable` for classes using Python 3.12
  generic type syntax.

  Closes [#&#8203;9335](https://github.com/pylint-dev/pylint/issues/9335)

- Fix a false positive for `use-implicit-booleaness-not-len`. No lint should be emitted for
  generators (`len` is not defined for generators).

  Refs [#&#8203;10100](https://github.com/pylint-dev/pylint/issues/10100)

## Other Bug Fixes

- Fix `Unable to import 'collections.abc' (import-error)` on Python 3.13.1.

  Closes [#&#8203;10112](https://github.com/pylint-dev/pylint/issues/10112)

### [`v3.3.2`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.2)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.1...v3.3.2)

## False Positives Fixed

- Fix a false positive for `potential-index-error` when an indexed iterable
  contains a starred element that evaluates to more than one item.

  Closes [#&#8203;10076](https://github.com/pylint-dev/pylint/issues/10076)

## Other Bug Fixes

- Fixes the issue with --source-root option not working when the source files are in a subdirectory of the source root (e.g. when using a /src layout).

  Closes [#&#8203;10026](https://github.com/pylint-dev/pylint/issues/10026)

### [`v3.3.1`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.1)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.0...v3.3.1)

## What's new in Pylint 3.3.1?

Release date: 2024-09-24

## False Positives Fixed

- Fix regression causing some f-strings to not be inferred as strings.

  Closes [#&#8203;9947](https://github.com/pylint-dev/pylint/issues/9947)

### [`v3.3.0`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.0)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.7...v3.3.0)

Release date: 2024-09-20

## Changes requiring user actions

- We migrated `symilar` to argparse, from getopt, so the error and help output changed
  (for the better). We exit with 2 instead of sometime 1, sometime 2. The error output
  is not captured by the runner anymore. It's not possible to use a value for the
  boolean options anymore (`--ignore-comments 1` should become `--ignore-comments`).

  Refs [#&#8203;9731](https://github.com/pylint-dev/pylint/issues/9731)

## New Features

- Add new `declare-non-slot` error which reports when a class has a `__slots__` member and a type hint on the class is not present in `__slots__`.

  Refs [#&#8203;9499](https://github.com/pylint-dev/pylint/issues/9499)

## New Checks

- Added `too-many-positional-arguments` to allow distinguishing the configuration for too many
  total arguments (with keyword-only params specified after `*`) from the configuration
  for too many positional-or-keyword or positional-only arguments.

  As part of evaluating whether this check makes sense for your project, ensure you
  adjust the value of `--max-positional-arguments`.

  Closes [#&#8203;9099](https://github.com/pylint-dev/pylint/issues/9099)

- Add `using-exception-groups-in-unsupported-version` and
  `using-generic-type-syntax-in-unsupported-version` for uses of Python 3.11+ or
  3.12+ features on lower supported versions provided with `--py-version`.

  Closes [#&#8203;9791](https://github.com/pylint-dev/pylint/issues/9791)

- Add `using-assignment-expression-in-unsupported-version` for uses of `:=` (walrus operator)
  on Python versions below 3.8 provided with `--py-version`.

  Closes [#&#8203;9820](https://github.com/pylint-dev/pylint/issues/9820)

- Add `using-positional-only-args-in-unsupported-version` for uses of positional-only args on
  Python versions below 3.8 provided with `--py-version`.

  Closes [#&#8203;9823](https://github.com/pylint-dev/pylint/issues/9823)

- Add `unnecessary-default-type-args` to the `typing` extension to detect the use
  of unnecessary default type args for `typing.Generator` and `typing.AsyncGenerator`.

  Refs [#&#8203;9938](https://github.com/pylint-dev/pylint/issues/9938)

## False Negatives Fixed

- Fix computation of never-returning function: `Never` is handled in addition to `NoReturn`, and priority is given to the explicit `--never-returning-functions` option.

  Closes [#&#8203;7565](https://github.com/pylint-dev/pylint/issues/7565).

- Fix a false negative for `await-outside-async` when await is inside Lambda.

  Refs [#&#8203;9653](https://github.com/pylint-dev/pylint/issues/9653)

- Fix a false negative for `duplicate-argument-name` by including `positional-only`, `*args` and `**kwargs` arguments in the check.

  Closes [#&#8203;9669](https://github.com/pylint-dev/pylint/issues/9669)

- Fix false negative for `multiple-statements` when multiple statements are present on `else` and `finally` lines of `try`.

  Refs [#&#8203;9759](https://github.com/pylint-dev/pylint/issues/9759)

- Fix false negatives when `isinstance` does not have exactly two arguments.
  pylint now emits a `too-many-function-args` or `no-value-for-parameter`
  appropriately for `isinstance` calls.

  Closes [#&#8203;9847](https://github.com/pylint-dev/pylint/issues/9847)

## Other Bug Fixes

- `--enable` with `--disable=all` now produces an error, when an unknown msg code is used. Internal `pylint` messages are no longer affected by `--disable=all`.

  Closes [#&#8203;9403](https://github.com/pylint-dev/pylint/issues/9403)

- Impossible to compile regexes for paths in the configuration or argument given to pylint won't crash anymore but
  raise an argparse error and display the error message from `re.compile` instead.

  Closes [#&#8203;9680](https://github.com/pylint-dev/pylint/issues/9680)

- Fix a bug where a `tox.ini` file with pylint configuration was ignored and it exists in the current directory.

  `.cfg` and `.ini` files containing a `Pylint` configuration may now use a section named `[pylint]`. This enhancement impacts the scenario where these file types are used as defaults when they are present and have not been explicitly referred to, using the `--rcfile` option.

  Closes [#&#8203;9727](https://github.com/pylint-dev/pylint/issues/9727)

- Improve file discovery for directories that are not python packages.

  Closes [#&#8203;9764](https://github.com/pylint-dev/pylint/issues/9764)

## Other Changes

- Remove support for launching pylint with Python 3.8.
  Code that supports Python 3.8 can still be linted with the `--py-version=3.8` setting.

  Refs [#&#8203;9774](https://github.com/pylint-dev/pylint/issues/9774)

- Add support for Python 3.13.

  Refs [#&#8203;9852](https://github.com/pylint-dev/pylint/issues/9852)

## Internal Changes

- All variables, classes, functions and file names containing the word 'similar', when it was,
  in fact, referring to 'symilar' (the standalone program for the duplicate-code check) were renamed
  to 'symilar'.

  Closes [#&#8203;9734](https://github.com/pylint-dev/pylint/issues/9734)

- Remove old-style classes (Python 2) code and remove check for new-style class since everything is new-style in Python 3. Updated doc for exception checker to remove reference to new style class.

  Refs [#&#8203;9925](https://github.com/pylint-dev/pylint/issues/9925)

### [`v3.2.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.7)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.6...v3.2.7)

## What's new in Pylint 3.2.7?

Release date: 2024-08-31

## False Positives Fixed

- Fixed a false positive `unreachable` for `NoReturn` coroutine functions.

  Closes [#&#8203;9840](https://github.com/pylint-dev/pylint/issues/9840)

## Other Bug Fixes

- Fix crash in refactoring checker when calling a lambda bound as a method.

  Closes [#&#8203;9865](https://github.com/pylint-dev/pylint/issues/9865)

- Fix a crash in `undefined-loop-variable` when providing the `iterable` argument to `enumerate()`.

  Closes [#&#8203;9875](https://github.com/pylint-dev/pylint/issues/9875)

- Fix to address indeterminacy of error message in case a module name is same as another in a separate namespace.

  Refs [#&#8203;9883](https://github.com/pylint-dev/pylint/issues/9883)

### [`v3.2.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.6)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.5...v3.2.6)

## What's new in Pylint 3.2.6?

Release date: 2024-07-21

## False Positives Fixed

- Quiet false positives for `unexpected-keyword-arg` when pylint cannot
  determine which of two or more dynamically defined classes is being instantiated.

  Closes [#&#8203;9672](https://github.com/pylint-dev/pylint/issues/9672)

- Fix a false positive for `missing-param-doc` where a method which is decorated with `typing.overload` was expected to have a docstring specifying its parameters.

  Closes [#&#8203;9739](https://github.com/pylint-dev/pylint/issues/9739)

- Fix a regression that raised `invalid-name` on class attributes merely
  overriding invalid names from an ancestor.

  Closes [#&#8203;9765](https://github.com/pylint-dev/pylint/issues/9765)

- Treat `assert_never()` the same way when imported from `typing_extensions`.

  Closes [#&#8203;9780](https://github.com/pylint-dev/pylint/issues/9780)

- Fix a false positive for `consider-using-min-max-builtin` when the assignment target is an attribute.

  Refs [#&#8203;9800](https://github.com/pylint-dev/pylint/issues/9800)

## Other Bug Fixes

- Fix an `AssertionError` arising from properties that return partial functions.

  Closes [#&#8203;9214](https://github.com/pylint-dev/pylint/issues/9214)

- Fix a crash when a subclass extends `__slots__`.

  Closes [#&#8203;9814](https://github.com/pylint-dev/pylint/issues/9814)

### [`v3.2.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.5)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.4...v3.2.5)

## What's new in Pylint 3.2.5 ?

Release date: 2024-06-28

## Other Bug Fixes

- Fixed a false positive `unreachable-code` when using `typing.Any` as return type in python
  3.8, the `typing.NoReturn` are not taken into account anymore for python 3.8 however.

  Closes [#&#8203;9751](https://github.com/pylint-dev/pylint/issues/9751)

</details>

<details>
<summary>fcfangcc/pylint-pydantic (pylint-pydantic)</summary>

### [`v0.4.1`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.1)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.4.0...v0.4.1)

fixed [#&#8203;41](https://github.com/fcfangcc/pylint-pydantic/issues/41)

### [`v0.4.0`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.0)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.5...v0.4.0)

1. Support pylint4
2. Remove support for python3.9

### [`v0.3.5`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.5)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.4...v0.3.5)

- updates setup to add 3.13
- updates workflow with 3.13
- updates logic of transform\_pydantic\_json to resolve
  contribution by [@&#8203;litsolac](https://github.com/litsolac)

### [`v0.3.4`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.4)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.3...v0.3.4)

fixed [#&#8203;35](https://github.com/fcfangcc/pylint-pydantic/issues/35)

### [`v0.3.3`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.3)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.2...v0.3.3)

Fixed
[#&#8203;33](https://github.com/fcfangcc/pylint-pydantic/issues/33)
[#&#8203;32](https://github.com/fcfangcc/pylint-pydantic/issues/32)

</details>

<details>
<summary>pytest-dev/pytest-asyncio (pytest-asyncio)</summary>

### [`v0.26.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.26.0): pytest-asyncio 0.26.0

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.3...v0.26.0)

- Adds configuration option that sets default event loop scope for all tests [#&#8203;793](https://github.com/pytest-dev/pytest-asyncio/issues/793)
- Improved type annotations for `pytest_asyncio.fixture` [#&#8203;1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045)
- Added `typing-extensions` as additional dependency for Python `<3.10` [#&#8203;1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045)

### [`v0.25.3`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.3): pytest-asyncio 0.25.3

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.2...v0.25.3)

- Avoid errors in cleanup of async generators when event loop is already closed [#&#8203;1040](https://github.com/pytest-dev/pytest-asyncio/issues/1040)

### [`v0.25.2`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.2): pytest-asyncio 0.25.2

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.1...v0.25.2)

- Call `loop.shutdown_asyncgens()` before closing the event loop to ensure async generators are closed in the same manner as `asyncio.run` does [#&#8203;1034](https://github.com/pytest-dev/pytest-asyncio/pull/1034)

### [`v0.25.1`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.1): pytest-asyncio 0.25.1

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.0...v0.25.1)

- Fixes an issue that caused a broken event loop when a function-scoped test was executed in between two tests with wider loop scope [#&#8203;950](https://github.com/pytest-dev/pytest-asyncio/issues/950)
- Improves test collection speed in auto mode [#&#8203;1020](https://github.com/pytest-dev/pytest-asyncio/pull/1020)
- Corrects the warning that is emitted upon redefining the event\_loop fixture

### [`v0.25.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.0): pytest-asyncio 0.25.0

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.24.0...v0.25.0)

### 0.25.0 (2024-12-13)

- Deprecated: Added warning when asyncio test requests async `@pytest.fixture` in strict mode. This will become an error in a future version of flake8-asyncio. [#&#8203;979](https://github.com/pytest-dev/pytest-asyncio/pull/979)
- Updates the error message about *pytest.mark.asyncio*'s *scope* keyword argument to say *loop\_scope* instead. [#&#8203;1004](https://github.com/pytest-dev/pytest-asyncio/pull/1004)
- Verbose log displays correct parameter name: asyncio\_default\_fixture\_loop\_scope [#&#8203;990](https://github.com/pytest-dev/pytest-asyncio/pull/990)
- Propagates *contextvars* set in async fixtures to other fixtures and tests on Python 3.11 and above. [#&#8203;1008](https://github.com/pytest-dev/pytest-asyncio/pull/1008)

### [`v0.24.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.24.0): pytest-asyncio 0.24.0

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.8...v0.24.0)

### 0.24.0 (2024-08-22)

- BREAKING: Updated minimum supported pytest version to v8.2.0
- Adds an optional *loop\_scope* keyword argument to *pytest.mark.asyncio*. This argument controls which event loop is used to run the marked async test. [#&#8203;706](https://github.com/pytest-dev/pytest-asyncio/issues/706), [#&#8203;871](https://github.com/pytest-dev/pytest-asyncio/pull/871)
- Deprecates the optional *scope* keyword argument to *pytest.mark.asyncio* for API consistency with `pytest_asyncio.fixture`. Users are encouraged to use the *loop\_scope* keyword argument, which does exactly the same.
- Raises an error when passing *scope* or *loop\_scope* as a positional argument to `@pytest.mark.asyncio`. [#&#8203;812](https://github.com/pytest-dev/pytest-asyncio/issues/812)
- Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules [#&#8203;862](https://github.com/pytest-dev/pytest-asyncio/issues/862) [#&#8203;668](https://github.com/pytest-dev/pytest-asyncio/issues/668)

### [`v0.23.8`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.23.8): pytest-asyncio 0.23.8

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.7...v0.23.8)

### 0.23.8 (2024-07-17)

- Fixes a bug that caused duplicate markers in async tests [#&#8203;813](https://github.com/pytest-dev/pytest-asyncio/issues/813)

#### Known issues

As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see [#&#8203;706](https://github.com/pytest-dev/pytest-asyncio/issues/706)). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.

</details>

<details>
<summary>celery/pytest-celery (pytest-celery)</summary>

### [`v1.2.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#121)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.2.0...v1.2.1)

\=====
:release-date: 30 July, 2025
:release-by: Tomer Nosrati

### [`v1.2.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#120)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.3...v1.2.0)

\=====
:release-date: 21 February, 2025
:release-by: Tomer Nosrati

### [`v1.1.3`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#113)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.2...v1.1.3)

\=====
:release-date: 20 September, 2024
:release-by: Tomer Nosrati

### [`v1.1.2`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#112)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.1...v1.1.2)

\=====
:release-date: 14 September, 2024
:release-by: Tomer Nosrati

### [`v1.1.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#111)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.0...v1.1.1)

\=====
:release-date: 12 August, 2024
:release-by: Tomer Nosrati

### [`v1.1.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#110)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.1...v1.1.0)

\=====
:release-date: 11 August, 2024
:release-by: Tomer Nosrati

### [`v1.0.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#101)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.0...v1.0.1)

\=====
:release-date: 17 July, 2024
:release-by: Tomer Nosrati

</details>

<details>
<summary>bloomberg/pytest-memray (pytest-memray)</summary>

### [`v1.8.0`](https://github.com/bloomberg/pytest-memray/releases/tag/v1.8.0)

[Compare Source](https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0)

#### What's Changed

- Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;124](https://github.com/bloomberg/pytest-memray/pull/124)
- Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;125](https://github.com/bloomberg/pytest-memray/pull/125)
- Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;127](https://github.com/bloomberg/pytest-memray/pull/127)
- Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.11.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;129](https://github.com/bloomberg/pytest-memray/pull/129)
- Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.4 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;139](https://github.com/bloomberg/pytest-memray/pull/139)
- Declare 3.14 support by [@&#8203;godlygeek](https://github.com/godlygeek) in [#&#8203;148](https://github.com/bloomberg/pytest-memray/pull/148)
- Bump actions/download-artifact from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;146](https://github.com/bloomberg/pytest-memray/pull/146)
- Bump actions/checkout from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;147](https://github.com/bloomberg/pytest-memray/pull/147)
- Release 1.8.0 by [@&#8203;pablogsal](https://github.com/pablogsal) in [#&#8203;149](https://github.com/bloomberg/pytest-memray/pull/149)

**Full Changelog**: <https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0>

</details>

<details>
<summary>pytest-dev/pytest-mock (pytest-mock)</summary>

### [`v3.15.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3151)

[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.15.0...v3.15.1)

*2025-09-16*

- `#&#8203;529 <https://github.com/pytest-dev/pytest-mock/issues/529>`\_: Fixed `itertools._tee object has no attribute error` -- now `duplicate_iterators=True` must be passed to `mocker.spy` to duplicate iterators.

### [`v3.15.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3150)

[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0)

*2025-09-04*

- Python 3.8 (EOL) is no longer supported.
- `#&#8203;524 <https://github.com/pytest-dev/pytest-mock/pull/524>`\_: Added `spy_return_iter` to `mocker.spy`, which contains a duplicate of the return value of the spied method if it is an `Iterator`.

### [`v3.14.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3141-2025-05-26)

[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.14.1)

- `#&#8203;503 <https://github.com/pytest-dev/pytest-mock/pull/503>`\_: Python 3.14 is now officially supported.

</details>

<details>
<summary>jbasko/pytest-random-order (pytest-random-order)</summary>

### [`v1.2.0`](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0)

[Compare Source](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0)

</details>

<details>
<summary>python-gitlab/python-gitlab (python-gitlab)</summary>

### [`v6.5.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v650-2025-10-17)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0)

##### Bug Fixes

- **semantic-release**: Enable CHANGELOG.md generation
  ([`fb9693b`](https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47))

##### Continuous Integration

- **stale**: Fix permission for stale action and allow manual run
  ([`9357a37`](https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160))

##### Documentation

- **pull\_mirror**: Fix incorrect start() method usage example
  ([`2acac19`](https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18))

##### Features

- **api**: Add content\_ref and dry\_run\_ref parameters to ProjectCiLintManager
  ([`e8d2538`](https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd))

- **users**: Implement 'skip\_confirmation' in users 'emails' creation
  ([`2981730`](https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328))

### [`v6.4.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v640-2025-09-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.3.0...v6.4.0)

##### Features

- **users**: Implement missing arguments in users 'list'
  ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02))

- **users**: Sort 'user list' arguments against documentation
  ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02))

### [`v6.3.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v630-2025-08-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.2.0...v6.3.0)

##### Features

- Add sync method to force remote mirror updates
  ([`f3c6678`](https://github.com/python-gitlab/python-gitlab/commit/f3c6678482b7ca35b1dd1e3bc49fc0c56cd03639))

- **api**: Add missing ProjectJob list filters
  ([`5fe0e71`](https://github.com/python-gitlab/python-gitlab/commit/5fe0e715448b00a666f76cdce6db321686f6a271))

- **api**: Add missing ProjectPackageManager list filters
  ([`b1696be`](https://github.com/python-gitlab/python-gitlab/commit/b1696be5fb223028755e303069e23e42a11cab42))

- **users**: Implement support for 'admins' in administrators 'list'
  ([`aaed51c`](https://github.com/python-gitlab/python-gitlab/commit/aaed51cdec65c8acabe8b9a39fd18c7e1e48519c))

### [`v6.2.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v620-2025-07-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.1.0...v6.2.0)

##### Build System

- **release**: Use correct python-semantic-release/publish-action
  ([`2f20634`](https://github.com/python-gitlab/python-gitlab/commit/2f20634b9700bc802177278ffdd7bdf83ef1605a))

##### Continuous Integration

- **stale**: Improve formatting of stale message
  ([`0ef20d1`](https://github.com/python-gitlab/python-gitlab/commit/0ef20d1b0ee6cd82c4e34003aca4c0c72935f4d9))

- **stale**: Increase `operations-per-run` to 500
  ([`326e1a4`](https://github.com/python-gitlab/python-gitlab/commit/326e1a46881467f41dc3de5f060ac654924fbe40))

##### Features

- **api**: Add ListMixin to ProjectIssueDiscussionNoteManager
  ([`f908f0e`](https://github.com/python-gitlab/python-gitlab/commit/f908f0e82840a5df374e8fbfb1298608d23f02bd))

- **api**: Add ListMixin to ProjectMergeRequestDiscussionNoteManager
  ([`865339a`](https://github.com/python-gitlab/python-gitlab/commit/865339ac037fb125280180b05a2c4e44067dc5e9))

### [`v6.1.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v610-2025-06-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.0.0...v6.1.0)

##### Chores

- Update to mypy 1.16.0 and resolve issues found
  ([`f734c58`](https://github.com/python-gitlab/python-gitlab/commit/f734c586e3fe5a0e866bcf60030107ca142fa763))

##### Documentation

- Update CONTRIBUTING.rst with policy on issue management
  ([`45dda50`](https://github.com/python-gitlab/python-gitlab/commit/45dda50ff4c0e01307480befa86498600563f818))

##### Features

- **api**: Add listing user contributed projects
  ([`98c1307`](https://github.com/python-gitlab/python-gitlab/commit/98c13074127ae46d85545498746d55c8b75aef48))

- **api**: Add support for project tag list filters
  ([`378a836`](https://github.com/python-gitlab/python-gitlab/commit/378a836bf5744ca6c9409dd60899e5d2f90b55be))

- **api**: Pipeline inputs support
  ([#&#8203;3194](https://github.com/python-gitlab/python-gitlab/pull/3194),
  [`306c4b1`](https://github.com/python-gitlab/python-gitlab/commit/306c4b1931e2b03d7cbcef5773668e876d5644b1))

- **const**: Add PLANNER\_ACCESS constant
  ([`ba6f174`](https://github.com/python-gitlab/python-gitlab/commit/ba6f174896f908ba711e1e3e8ebf4692c86bd3d4))

- **groups**: Add protectedbranches to group class
  ([#&#8203;3164](https://github.com/python-gitlab/python-gitlab/pull/3164),
  [`bfd31a8`](https://github.com/python-gitlab/python-gitlab/commit/bfd31a867547dffb2c2d54127e184fefa058cb30))

</details>

<details>
<summary>indygreg/python-zstandard (zstandard)</summary>

### [`v0.25.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.25.0)

[Compare Source](https://github.com/indygreg/python-zstandard/compare/0.24.0...0.25.0)

- PyO3 Rust created upgraded from 0.24 to 0.25. ([#&#8203;273](https://github.com/indygreg/python-zstandard/issues/273))
- We now use `Py_REFCNT(obj)` instead of accessing `(*obj)->ob_refcnt` directly.
  This fixes a nogil / multi-threaded compile error. ([#&#8203;201](https://github.com/indygreg/python-zstandard/issues/201), [#&#8203;275](https://github.com/indygreg/python-zstandard/issues/275))
- A zstandard commit to fix qsort detection on BSD operating systems
  has been backported. ([#&#8203;272](https://github.com/indygreg/python-zstandard/issues/272))
- The `PYTHON_ZSTANDARD_IMPORT_POLICY` environment variable now has leading
  and trailing whitespace stripped. Values like ` cffi` and `cffi ` are
  now equivalent to `cffi`.
- The CI jobs for building wheels have been overhauled to always use
  `cibuildwheel` and `uv` (where possible). This change should be backwards
  compatible. But wheel building for this project has historically been
  fragile and there may be unwanted changes. We're optimistic that standardizing
  on uv (except for musllinux ppc64le and s390x where uv isn't available)
  will lead to more stability over time.
- CI now runs tests against the wheels we distribute. Previously, we ran
  tests against a separate build that was theoretically identical. But the
  builds may have been subtly different, leading to preventable bugs in our
  wheels. (Enabling this test coverage did not uncover any failures.)
- The `pyproject.toml` build backend has been switched from
  `setuptools.build_meta:__legacy__` to `setuptools.build_meta`.
- The setuptools build dependency has been upgraded from <69.0.0 to >=77.0.0.
  Modern versions of setuptools broke
  `--config-settings=--build-option=...` as part of implementing PEP 660.
  A workaround is to use `--config-settings=--global-option=...` instead.
  `--global-option` apparently is deprecated and the setuptools folks have yet
  to figure out how to thread config settings into `setup.py` invocations.
  (`--build-option` is sent to the `build_wheel` command but not the
  `build_editable` command.)
- Python 3.14 wheels are now built with `manylinux_2_28` (versus
  `manylinux2014`) for older Python versions. This may raise the minimum
  glibc version, effectively dropping support for Debian 8 and 9, Ubuntu
  13.10 through 18.04, Fedora 19 to 28, and RHEL/Centos 7. However, in
  practice most platforms don't container newer glibc symbols and are still
  ABI compatible with `manylinux2014` and glibc 2.17.
- We now require cffi >= 2.0.0b on Python 3.14. <3.14 still requires 1.17.
  ([#&#8203;274](https://github.com/indygreg/python-zstandard/issues/274))
- The cffi backend is now automatically disabled for free-threaded builds
  on Python <3.14, as cffi didn't implement free-threaded support until
  the 2.0 release. ([#&#8203;274](https://github.com/indygreg/python-zstandard/issues/274))
- Added CI coverage for free-threaded CPython 3.13 and 3.14. We do not yet
  formally support free-threaded builds. ([#&#8203;276](https://github.com/indygreg/python-zstandard/issues/276))
- The C and Rust backends now declare the GIL as unused.
- The `pythoncapi_compat.h` file has been upgraded to the latest version. ([#&#8203;278](https://github.com/indygreg/python-zstandard/issues/278))
- `setup.py` now depends on `packaging` and uses `packaging.version.Version`
  for version comparisons. This removes some deprecation warnings from usage of
  legacy distutils `Version` classes.
- Relax run-time libzstd version checking in C extension from exactly 1.5.7
  to >=1.5.6. ([#&#8203;254](https://github.com/indygreg/python-zstandard/issues/254), [#&#8203;267](https://github.com/indygreg/python-zstandard/issues/267))
- C extension types now (correctly) declare their fully qualified type names
  as `zstandard.backend_c.*` versus `zstd.*` before. The names have been
  subtly broken for years. We believe the only practical exposure to this change
  is via pickling (possibly encountered when using the `multiprocessing` or
  `concurrent.futures` packages), which would fail to pickle types like
  `ZstdError` before since the fully qualified type name referenced an
  incorrect and likely missing package (`zstd`). ([#&#8203;248](https://github.com/indygreg/python-zstandard/issues/248))

### [`v0.24.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.24.0)

[Compare Source](https://github.com/indygreg/python-zstandard/compare/0.23.0...0.24.0)

### Backwards Compatibility Notes

- Support for Python 3.8 has been dropped because it reached end of life. Python 3.9 is the minimum supported Python version. The code should still be compatible with Python 3.8 and removing of version checks from `setup.py` will likely yield a working install. However, this is not officially supported.

### Changes

- Bundled zstd library upgraded from 1.5.6 to 1.5.7. ([#&#8203;255](https://github.com/indygreg/python-zstandard/issues/255))
- We now use and require cffi 1.17.0 or newer. Previously, the constraint was >=1.11.0 on Python <3.13.
- The `pyproject.toml` file now defines a `[project]` section.
- We now use GitHub's native ARM Linux runners to build wheels and run tests. Previously, Linux ARM wheels were built inside a QEMU virtualized environment and we didn't run tests on this platform.
- We now use GitHub's native ARM Windows runners to build wheels and run tests. Previously, Windows ARM wheels were cross compiled from an x86-64 runner and we never ran tests for the Windows ARM platform.
- We now `collections.abs.Buffer` on Python 3.12+ instead of `typing.ByteString`, as `typing.ByteString` was deprecated and later removed. ([#&#8203;238](https://github.co…
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Jan 15, 2026
chore(deps): update root dev dependencies (minor) (minor)

This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [deptry](https://github.com/fpgmaas/deptry) ([changelog](https://github.com/fpgmaas/deptry/blob/main/CHANGELOG.md)) | dev | minor | `^0.16.1` → `^0.24.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fpgmaas/deptry/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fpgmaas/deptry) |
| [flake8](https://github.com/pycqa/flake8) ([changelog](https://flake8.pycqa.org/en/latest/release-notes/index.html)) | dev | minor | `7.1.0` → `7.3.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pycqa/flake8/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pycqa/flake8) |
| [flake8-bugbear](https://github.com/PyCQA/flake8-bugbear#change-log) ([changelog](https://github.com/PyCQA/flake8-bugbear#change-log)) | dev | minor | `24.4.26` → `24.12.12` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/PyCQA/flake8-bugbear/badge)](https://securityscorecards.dev/viewer/?uri=github.com/PyCQA/flake8-bugbear) |
| [mypy](https://github.com/python/mypy) ([changelog](https://mypy.readthedocs.io/en/latest/changelog.html)) | dev | minor | `1.10.1` → `1.19.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/python/mypy/badge)](https://securityscorecards.dev/viewer/?uri=github.com/python/mypy) |
| [pip-licenses](https://github.com/raimon49/pip-licenses) ([changelog](https://github.com/raimon49/pip-licenses/releases)) | dev | minor | `5.0.0` → `5.5.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/raimon49/pip-licenses/badge)](https://securityscorecards.dev/viewer/?uri=github.com/raimon49/pip-licenses) |
| [pylint](https://github.com/pylint-dev/pylint) ([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/3/)) | dev | minor | `3.2.4` → `3.3.9` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pylint-dev/pylint/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pylint-dev/pylint) |
| [pylint-pydantic](https://github.com/fcfangcc/pylint-pydantic) | dev | minor | `^0.3.2` → `^0.4.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fcfangcc/pylint-pydantic/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fcfangcc/pylint-pydantic) |
| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) ([changelog](https://pytest-asyncio.readthedocs.io/en/latest/reference/changelog.html)) | test | minor | `^0.23.6` → `^0.26.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest-asyncio/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-asyncio) |
| [pytest-celery](https://github.com/celery/pytest-celery) | test | minor | `1.0.0` → `1.2.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/celery/pytest-celery/badge)](https://securityscorecards.dev/viewer/?uri=github.com/celery/pytest-celery) |
| [pytest-memray](https://github.com/bloomberg/pytest-memray) | test | minor | `1.7.0` → `1.8.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/bloomberg/pytest-memray/badge)](https://securityscorecards.dev/viewer/?uri=github.com/bloomberg/pytest-memray) |
| [pytest-mock](https://github.com/pytest-dev/pytest-mock) ([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html)) | test | minor | `3.14.0` → `3.15.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/pytest-dev/pytest-mock/badge)](https://securityscorecards.dev/viewer/?uri=github.com/pytest-dev/pytest-mock) |
| [pytest-random-order](https://github.com/jbasko/pytest-random-order) | test | minor | `1.1.1` → `1.2.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/jbasko/pytest-random-order/badge)](https://securityscorecards.dev/viewer/?uri=github.com/jbasko/pytest-random-order) |
| [python-gitlab](https://github.com/python-gitlab/python-gitlab) ([changelog](https://github.com/python-gitlab/python-gitlab/blob/main/CHANGELOG.md)) | dev | minor | `6.0.0` → `6.5.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/python-gitlab/python-gitlab/badge)](https://securityscorecards.dev/viewer/?uri=github.com/python-gitlab/python-gitlab) |
| [zstandard](https://github.com/indygreg/python-zstandard) | dev | minor | `^0.23.0` → `^0.25.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/indygreg/python-zstandard/badge)](https://securityscorecards.dev/viewer/?uri=github.com/indygreg/python-zstandard) |

---

### Release Notes

<details>
<summary>fpgmaas/deptry (deptry)</summary>

### [`v0.24.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0240---2025-11-09)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.1...0.24.0)

##### Breaking changes

##### Python 3.9 support dropped

Support for Python 3.9 has been dropped, as it has reached its end of life.

##### PyPy 3.10 support dropped, 3.11 added

Support for PyPy 3.10 has been dropped, since it is unsupported. We now only test against PyPy 3.11, and only publish wheels for this version.

##### Features

- Add GitHub Actions annotations reporter ([#&#8203;1059](https://github.com/fpgmaas/deptry/pull/1059))
- Add support for Python 3.14 ([#&#8203;1224](https://github.com/fpgmaas/deptry/pull/1224))
- Drop support for Python 3.9 ([#&#8203;1328](https://github.com/fpgmaas/deptry/pull/1328))
- Publish wheels for PyPy 3.11 and drop 3.10 ([#&#8203;1227](https://github.com/fpgmaas/deptry/pull/1227))

##### Full Changelog

### [`v0.23.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0231---2025-07-30)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.23.0...0.23.1)

##### Bug Fixes

- Improve handling of `TYPE_CHECKING` blocks by supporting `import typing as t` and checking `t.TYPE_CHECKING` ([#&#8203;1218](https://github.com/fpgmaas/deptry/pull/1218))
- Fix missing hyperlink in report output ([#&#8203;1162](https://github.com/fpgmaas/deptry/pull/1162))

##### Full Changelog

### [`v0.23.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0230---2025-01-25)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.22.0...0.23.0)

##### Features

- Correctly detect transitive dependencies with different module names ([#&#8203;1033](https://github.com/fpgmaas/deptry/pull/1033))

##### Full Changelog

### [`v0.22.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0220---2025-01-10)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.2...0.22.0)

Poetry 2.0 introduced support
for [defining project metadata in PEP 621](https://python-poetry.org/blog/announcing-poetry-2.0.0/). This is now
supported by *deptry*. [Documentation](https://deptry.com/supported-dependency-managers/#poetry) has been updated to
detail *deptry*'s behavior.

##### Features

- Support PEP 621 in Poetry 2.0+ ([#&#8203;1003](https://github.com/fpgmaas/deptry/pull/1003))

##### Full Changelog

### [`v0.21.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0212---2024-12-19)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.1...0.21.2)

##### Miscellaneous

- Provide wheels for musllinux ([#&#8203;979](https://github.com/fpgmaas/deptry/pull/979))

##### Full Changelog

### [`v0.21.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0211---2024-11-15)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.21.0...0.21.1)

##### Bug Fixes

- Handle string requirements files for `setuptools` dynamic
  dependencies ([#&#8203;945](https://github.com/fpgmaas/deptry/pull/945))

##### Full Changelog

### [`v0.21.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0210---2024-11-08)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.20.0...0.21.0)

##### Breaking changes

##### Ignore files handling

Unless [`--exclude`](https://deptry.com/usage/#exclude) is used, *deptry* excludes files found in common ignore
files (`.gitignore`, `.ignore`, `$HOME/.config/git/ignore`. ...), by using [`ignore`](https://crates.io/crates/ignore)
Rust crate. The default behaviour has been changed, so that now:

- git-related ignore rules (`.gitignore`, `$HOME/.config/git/ignore`, ...) are only used if *deptry* is run inside a git
  repository
- `.gitignore` files that are in parent directories of the git repository from where deptry is run are not
  used (previously, *deptry* would traverse parent directories up to the root system)

If you were using `.gitignore` files for non-git repositories, you might want to switch to `.ignore` files, or use
[`--extend-exclude`](https://deptry.com/usage/#extend-exclude).

##### Requirements files parsing

*deptry* now uses [`requirements-parser`](https://pypi.org/project/requirements-parser/) to parse dependencies from
requirements files, meaning that it can now extract nested requirements files referenced in other requirements files
without having to explicitly configure it in *deptry*.

For instance, if you have:

```python

# requirements.txt
-r cli-requirements.txt
httpx==0.27.2
```

```python

# cli-requirements.txt
click==8.1.7
```

With the default configuration, when parsing `requirements.txt`, both `httpx` and `click` will now be listed as
dependencies by *deptry*, while previously, only `httpx` was, unless *deptry* was instructed about
`cli-requirements.txt` by using [`--requirements-files`](https://deptry.com/usage/#requirements-files). This new
behaviour also impacts development requirements files, that can be overridden by
using [`--requirements-files-dev`](https://deptry.com/usage/#requirements-files-dev).

##### Python 3.8 support dropped

Support for Python 3.8 has been dropped, as it has reached its end of life.

##### Features

- *deptry* now detects development dependencies from `[dependency-groups]` section, introduced
  by [PEP 735](https://peps.python.org/pep-0735/) ([#&#8203;892](https://github.com/fpgmaas/deptry/pull/892))
- *deptry* now supports `setuptools` dynamic dependencies set in `[tool.setuptools.dynamic]` section,
  see <https://deptry.com/supported-dependency-managers/#setuptools> for more
  details ([#&#8203;894](https://github.com/fpgmaas/deptry/pull/894), [#&#8203;724](https://github.com/fpgmaas/deptry/pull/724))
- Drop support for Python 3.8 ([#&#8203;874](https://github.com/fpgmaas/deptry/pull/874))
- Improve ignore handling ([#&#8203;908](https://github.com/fpgmaas/deptry/pull/908))
- Parse requirements files with `requirements-parser`, adding support for parsing nested requirements
  files referenced with `-r <requirement_file>` ([#&#8203;913](https://github.com/fpgmaas/deptry/pull/913))

##### Full Changelog

### [`v0.20.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0200---2024-08-27)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.1...0.20.0)

##### Breaking changes

In release [0.15.0](https://github.com/fpgmaas/deptry/releases/tag/0.15.0), we announced the deprecation of the
following flags:

- `--requirements-txt` (and its `requirements_txt` setting counterpart in `pyproject.toml`)
- `--requirements-txt-dev` (and its `requirements_txt_dev` setting counterpart in `pyproject.toml`)

Those flags have now been removed. If you relied on them, you should now use, respectively:

- `--requirements-files` (and its `requirements_files` setting counterpart in `pyproject.toml`)
- `--requirements-files-dev` (and its `requirements_files_dev` setting counterpart in `pyproject.toml`)

##### Features

- deptry now detects [uv](https://github.com/astral-sh/uv) and reads development dependencies from
  `[uv.tool.dev-dependencies]` section ([#&#8203;816](https://github.com/fpgmaas/deptry/pull/816))
- Dynamically set max terminal width for better readability when displaying
  help ([#&#8203;817](https://github.com/fpgmaas/deptry/pull/817))
- Remove deprecated `--requirements-txt`/`--requirements-txt-dev`
  flags ([#&#8203;819](https://github.com/fpgmaas/deptry/pull/819))

##### Full Changelog

### [`v0.19.1`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0191---2024-08-10)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.19.0...0.19.1)

##### Features

- Add back PEP 420 support behind `--experimental-namespace-package` feature
  flag ([#&#8203;808](https://github.com/fpgmaas/deptry/pull/808))
- Add support for Python 3.13 ([#&#8203;713](https://github.com/fpgmaas/deptry/pull/713), [#&#8203;809](https://github.com/fpgmaas/deptry/pull/809))

##### Miscellaneous

- Provide Windows ARM64 wheels for Python ([#&#8203;807](https://github.com/fpgmaas/deptry/pull/807))

##### Full Changelog

### [`v0.19.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0190---2024-08-08)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.18.0...0.19.0)

This release reverts [#&#8203;753](https://github.com/fpgmaas/deptry/pull/753) that caused a noticeable performance regression on large
codebases. The intent of the initial MR was to support projects following PEP 420, so if your project currently relies
on this behaviour, feel free to manifest your interest in [#&#8203;740](https://github.com/fpgmaas/deptry/issues/740).

##### Bug Fixes

- Revert "fix(core): use `rglob` to guess local Python modules ([#&#8203;753](https://github.com/fpgmaas/deptry/issues/753))" ([#&#8203;798](https://github.com/fpgmaas/deptry/pull/798))

##### New Contributors

- [@&#8203;huisman](https://github.com/huisman) made their first contribution in [#&#8203;796](https://github.com/fpgmaas/deptry/pull/796)

##### Full Changelog

### [`v0.18.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0180---2024-07-31)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.17.0...0.18.0)

##### Features

- Support imports using `importlib.import_module` ([#&#8203;782](https://github.com/fpgmaas/deptry/pull/782))

##### New Contributors

- [@&#8203;lmmx](https://github.com/lmmx) made their first contribution in [#&#8203;782](https://github.com/fpgmaas/deptry/pull/782)

##### Full Changelog

### [`v0.17.0`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0170---2024-07-20)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.2...0.17.0)

##### Features

- Add a new rule `DEP005` to detect project dependencies that are in the standard library. ([#&#8203;761](https://github.com/fpgmaas/deptry/pull/761))

##### Full Changelog

### [`v0.16.2`](https://github.com/fpgmaas/deptry/blob/HEAD/CHANGELOG.md#0162---2024-07-05)

[Compare Source](https://github.com/fpgmaas/deptry/compare/0.16.1...0.16.2)

##### Bug Fixes

- Avoid crashing on PEP 621 and Poetry projects with no dependencies ([#&#8203;752](https://github.com/fpgmaas/deptry/pull/752))
- Recursively search for Python files to detect local modules, to better support namespace packages ([#&#8203;753](https://github.com/fpgmaas/deptry/pull/753))

##### Miscellaneous

- Provide macOS ARM wheels for PyPy ([#&#8203;691](https://github.com/fpgmaas/deptry/pull/691))

##### Full Changelog

</details>

<details>
<summary>pycqa/flake8 (flake8)</summary>

### [`v7.3.0`](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0)

[Compare Source](https://github.com/pycqa/flake8/compare/7.2.0...7.3.0)

### [`v7.2.0`](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0)

[Compare Source](https://github.com/pycqa/flake8/compare/7.1.2...7.2.0)

### [`v7.1.2`](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2)

[Compare Source](https://github.com/pycqa/flake8/compare/7.1.1...7.1.2)

### [`v7.1.1`](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1)

[Compare Source](https://github.com/pycqa/flake8/compare/7.1.0...7.1.1)

</details>

<details>
<summary>PyCQA/flake8-bugbear (flake8-bugbear)</summary>

### [`v24.12.12`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.12.12)

[Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.10.31...24.12.12)

- B012 and B025 now also handle try/except\* ([#&#8203;500](https://github.com/PyCQA/flake8-bugbear/issues/500))
- Skip B028 if warnings.warn is called with `*args` or `**kwargs` ([#&#8203;501](https://github.com/PyCQA/flake8-bugbear/issues/501))
- Add B911: itertools.batched without strict= ([#&#8203;502](https://github.com/PyCQA/flake8-bugbear/issues/502))
- Readme has anchors per check (they do not seem to render on GitHub tho)

### [`v24.10.31`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.10.31)

[Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.8.19...24.10.31)

- B041: New dictionary same key AND value check ([#&#8203;496](https://github.com/PyCQA/flake8-bugbear/issues/496))
- B037: Fix typo in error message
- B024: No longer treats assigned class variables as abstract ([#&#8203;471](https://github.com/PyCQA/flake8-bugbear/issues/471))
- Bump required attrs version to 22.2.0

### [`v24.8.19`](https://github.com/PyCQA/flake8-bugbear/releases/tag/24.8.19)

[Compare Source](https://github.com/PyCQA/flake8-bugbear/compare/24.4.26...24.8.19)

- B910: implement to suggest using Counter() instead of defaultdict(int) ([#&#8203;489](https://github.com/PyCQA/flake8-bugbear/issues/489))
- B901: Do not trigger with explicit Generator return type ([#&#8203;481](https://github.com/PyCQA/flake8-bugbear/issues/481))
- B008: add some comments, rename b008\_extend\_immutable\_calls ([#&#8203;476](https://github.com/PyCQA/flake8-bugbear/issues/476))
- B040: exception with note added not reraised or used ([#&#8203;477](https://github.com/PyCQA/flake8-bugbear/issues/477))
- B039, Add `ContextVar` with mutable literal or function call as default
- B040: Add Exception with added note not reraised. ([#&#8203;474](https://github.com/PyCQA/flake8-bugbear/issues/474))
- Run tests in Python 3.13
- Type annotated code ([#&#8203;481](https://github.com/PyCQA/flake8-bugbear/issues/481) + [#&#8203;483](https://github.com/PyCQA/flake8-bugbear/issues/483))
- Replace hash with unsafe\_hash ([#&#8203;486](https://github.com/PyCQA/flake8-bugbear/issues/486))

</details>

<details>
<summary>python/mypy (mypy)</summary>

### [`v1.19.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1191)

[Compare Source](https://github.com/python/mypy/compare/v1.19.0...v1.19.1)

- Fix noncommutative joins with bounded TypeVars (Shantanu, MR [20345](https://github.com/python/mypy/pull/20345))
- Respect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, MR [20372](https://github.com/python/mypy/pull/20372))
- Allow `types.NoneType` in match cases (A5rocks, MR [20383](https://github.com/python/mypy/pull/20383))
- Fix mypyc generator regression with empty tuple (BobTheBuidler, MR [20371](https://github.com/python/mypy/pull/20371))
- Fix crash involving Unpack-ed TypeVarTuple (Shantanu, MR [20323](https://github.com/python/mypy/pull/20323))
- Fix crash on star import of redefinition (Ivan Levkivskyi, MR [20333](https://github.com/python/mypy/pull/20333))
- Fix crash on typevar with forward ref used in other module (Ivan Levkivskyi, MR [20334](https://github.com/python/mypy/pull/20334))
- Fail with an explicit error on PyPy (Ivan Levkivskyi, MR [20389](https://github.com/python/mypy/pull/20389))

### [`v1.19.0`](https://github.com/python/mypy/compare/v1.18.2...v1.19.0)

[Compare Source](https://github.com/python/mypy/compare/v1.18.2...v1.19.0)

### [`v1.18.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1182)

[Compare Source](https://github.com/python/mypy/compare/v1.18.1...v1.18.2)

- Fix crash on recursive alias (Ivan Levkivskyi, MR [19845](https://github.com/python/mypy/pull/19845))
- Add additional guidance for stubtest errors when runtime is `object.__init__` (Stephen Morton, MR [19733](https://github.com/python/mypy/pull/19733))
- Fix handling of None values in f-string expressions in mypyc (BobTheBuidler, MR [19846](https://github.com/python/mypy/pull/19846))

### [`v1.18.1`](https://github.com/python/mypy/compare/v1.17.1...v1.18.1)

[Compare Source](https://github.com/python/mypy/compare/v1.17.1...v1.18.1)

### [`v1.17.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1171)

[Compare Source](https://github.com/python/mypy/compare/v1.17.0...v1.17.1)

- Retain `None` as constraints bottom if no bottoms were provided (Stanislav Terliakov, MR [19485](https://github.com/python/mypy/pull/19485))
- Fix "ignored exception in `hasattr`" in dmypy (Stanislav Terliakov, MR [19428](https://github.com/python/mypy/pull/19428))
- Prevent a crash when InitVar is redefined with a method in a subclass (Stanislav Terliakov, MR [19453](https://github.com/python/mypy/pull/19453))

### [`v1.17.0`](https://github.com/python/mypy/compare/v1.16.1...v1.17.0)

[Compare Source](https://github.com/python/mypy/compare/v1.16.1...v1.17.0)

### [`v1.16.1`](https://github.com/python/mypy/compare/v1.16.0...v1.16.1)

[Compare Source](https://github.com/python/mypy/compare/v1.16.0...v1.16.1)

### [`v1.16.0`](https://github.com/python/mypy/compare/v1.15.0...v1.16.0)

[Compare Source](https://github.com/python/mypy/compare/v1.15.0...v1.16.0)

### [`v1.15.0`](https://github.com/python/mypy/compare/v1.14.1...v1.15.0)

[Compare Source](https://github.com/python/mypy/compare/v1.14.1...v1.15.0)

### [`v1.14.1`](https://github.com/python/mypy/compare/v1.14.0...v1.14.1)

[Compare Source](https://github.com/python/mypy/compare/v1.14.0...v1.14.1)

### [`v1.14.0`](https://github.com/python/mypy/compare/v1.13.0...v1.14.0)

[Compare Source](https://github.com/python/mypy/compare/v1.13.0...v1.14.0)

### [`v1.13.0`](https://github.com/python/mypy/compare/v1.12.1...v1.13.0)

[Compare Source](https://github.com/python/mypy/compare/v1.12.1...v1.13.0)

### [`v1.12.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1121)

[Compare Source](https://github.com/python/mypy/compare/v1.12.0...v1.12.1)

- Fix crash when showing partially analyzed type in error message (Ivan Levkivskyi, MR [17961](https://github.com/python/mypy/pull/17961))
- Fix iteration over union (when self type is involved) (Shantanu, MR [17976](https://github.com/python/mypy/pull/17976))
- Fix type object with type var default in union context (Jukka Lehtosalo, MR [17991](https://github.com/python/mypy/pull/17991))
- Revert change to `os.path` stubs affecting use of `os.PathLike[Any]` (Shantanu, MR [17995](https://github.com/python/mypy/pull/17995))

### [`v1.12.0`](https://github.com/python/mypy/compare/v1.11.2...v1.12.0)

[Compare Source](https://github.com/python/mypy/compare/v1.11.2...v1.12.0)

### [`v1.11.2`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1112)

[Compare Source](https://github.com/python/mypy/compare/v1.11.1...v1.11.2)

- Alternative fix for a union-like literal string (Ivan Levkivskyi, MR [17639](https://github.com/python/mypy/pull/17639))
- Unwrap `TypedDict` item types before storing (Ivan Levkivskyi, MR [17640](https://github.com/python/mypy/pull/17640))

### [`v1.11.1`](https://github.com/python/mypy/blob/HEAD/CHANGELOG.md#Mypy-1111)

[Compare Source](https://github.com/python/mypy/compare/v1.11.0...v1.11.1)

- Fix `RawExpressionType.accept` crash with `--cache-fine-grained` (Anders Kaseorg, MR [17588](https://github.com/python/mypy/pull/17588))
- Fix PEP 604 isinstance caching (Shantanu, MR [17563](https://github.com/python/mypy/pull/17563))
- Fix `typing.TypeAliasType` being undefined on python < 3.12 (Nikita Sobolev, MR [17558](https://github.com/python/mypy/pull/17558))
- Fix `types.GenericAlias` lookup crash (Shantanu, MR [17543](https://github.com/python/mypy/pull/17543))

### [`v1.11.0`](https://github.com/python/mypy/compare/v1.10.1...v1.11.0)

[Compare Source](https://github.com/python/mypy/compare/v1.10.1...v1.11.0)

</details>

<details>
<summary>raimon49/pip-licenses (pip-licenses)</summary>

### [`v5.5.0`](https://github.com/raimon49/pip-licenses/blob/HEAD/CHANGELOG.md#550)

- Replace dependency on `tomli` with builtin `tomllib` for Python 3.11
- Added support for `License-Expression` metadata field, see [PEP 639](https://peps.python.org/pep-0639/)
- Added `--from=expression` option
- Breaking change: The `--from=all` output now includes the `License-Expression` value
- Fixed KeyError with `--partial` and `--allow-only` if a license matches multiple allowed licenses.
- Declare support for Python 3.13 and 3.14
- Added RST/Sphinx workflow example for `--with-license-file` option in documentation

</details>

<details>
<summary>pylint-dev/pylint (pylint)</summary>

### [`v3.3.9`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.9)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.8...v3.3.9)

## 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 [#&#8203;9815](https://github.com/pylint-dev/pylint/issues/9815)

- No longer flag undeprecated functions in `importlib.resources` as deprecated.

  Closes [#&#8203;10593](https://github.com/pylint-dev/pylint/issues/10593)

- Fix false positive `inconsistent-return-statements` when using `quit()` or `exit()` functions.

  Closes [#&#8203;10508](https://github.com/pylint-dev/pylint/issues/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 [#&#8203;10562](https://github.com/pylint-dev/pylint/issues/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 [#&#8203;10510](https://github.com/pylint-dev/pylint/issues/10510)

### [`v3.3.8`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.8)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.7...v3.3.8)

## What's new in Pylint 3.3.8?

Release date: 2025-08-09

This patch release includes an exceptional fix for a false negative issue. For details, see: [#&#8203;10482 (comment)](https://github.com/pylint-dev/pylint/pull/10482#issuecomment-3164514082)

## False Positives Fixed

- Fix false positives for `possibly-used-before-assignment` when variables are exhaustively
  assigned within a `match` block.

  Closes [#&#8203;9668](https://github.com/pylint-dev/pylint/issues/9668)

- Fix false positive for `missing-raises-doc` and `missing-yield-doc` when the method length is less than docstring-min-length.

  Refs [#&#8203;10104](https://github.com/pylint-dev/pylint/issues/10104)

- Fix a false positive for `unused-variable` when multiple except handlers bind the same name under a try block.

  Closes [#&#8203;10426](https://github.com/pylint-dev/pylint/issues/10426)

## False Negatives Fixed

- Fix false-negative for `used-before-assignment` with `from __future__ import annotations` in function definitions.

  Refs [#&#8203;10482](https://github.com/pylint-dev/pylint/issues/10482)

## Other Bug Fixes

- Fix a bug in Pyreverse where aggregations and associations were included in diagrams regardless of the selected --filter-mode (such as PUB\_ONLY, ALL, etc.).

  Closes [#&#8203;10373](https://github.com/pylint-dev/pylint/issues/10373)

- Fix double underscores erroneously rendering as bold in pyreverse's Mermaid output.

  Closes [#&#8203;10402](https://github.com/pylint-dev/pylint/issues/10402)

### [`v3.3.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.7)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.6...v3.3.7)

## What's new in Pylint 3.3.7?

Release date: 2025-05-04

## False Positives Fixed

- Comparisons between two calls to `type()` won't raise an `unidiomatic-typecheck` warning anymore, consistent with the behavior applied only for `==` previously.

  Closes [#&#8203;10161](https://github.com/pylint-dev/pylint/issues/10161)

## Other Bug Fixes

- Fixed a crash when importing a class decorator that did not exist with the same name as a class attribute after the class definition.

  Closes [#&#8203;10105](https://github.com/pylint-dev/pylint/issues/10105)

- Fix a crash caused by malformed format strings when using `.format` with keyword arguments.

  Closes [#&#8203;10282](https://github.com/pylint-dev/pylint/issues/10282)

- Using a slice as a class decorator now raises a `not-callable` message instead of crashing. A lot of checks that dealt with decorators (too many to list) are now shortcut if the decorator can't immediately be inferred to a function or class definition.

  Closes [#&#8203;10334](https://github.com/pylint-dev/pylint/issues/10334)

## Other Changes

- The algorithm used for `no-member` suggestions is now more efficient and cuts the
  calculation when the distance score is already above the threshold.

  Refs [#&#8203;10277](https://github.com/pylint-dev/pylint/issues/10277)

### [`v3.3.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.6)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.5...v3.3.6)

## What's new in Pylint 3.3.6?

Release date: 2025-03-20

## False Positives Fixed

- Fix a false positive for `used-before-assignment` when an inner function's return type
  annotation is a class defined at module scope.

  Closes [#&#8203;9391](https://github.com/pylint-dev/pylint/issues/9391)

### [`v3.3.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.5)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.4...v3.3.5)

## What's new in Pylint 3.3.5?

Release date: 2025-03-09

## False Positives Fixed

- Fix false positives for `use-implicit-booleaness-not-comparison`, `use-implicit-booleaness-not-comparison-to-string`
  and `use-implicit-booleaness-not-comparison-to-zero` when chained comparisons are checked.

  Closes [#&#8203;10065](https://github.com/pylint-dev/pylint/issues/10065)

- Fix a false positive for `invalid-getnewargs-ex-returned` when the tuple or dict has been assigned to a name.

  Closes [#&#8203;10208](https://github.com/pylint-dev/pylint/issues/10208)

- Remove `getopt` and `optparse` from the list of deprecated modules.

  Closes [#&#8203;10211](https://github.com/pylint-dev/pylint/issues/10211)

## Other Bug Fixes

- Fixed conditional import x.y causing false positive possibly-used-before-assignment.

  Closes [#&#8203;10081](https://github.com/pylint-dev/pylint/issues/10081)

- Fix a crash when something besides a class is found in an except handler.

  Closes [#&#8203;10106](https://github.com/pylint-dev/pylint/issues/10106)

- Fixed raising invalid-name when using camelCase for private methods with two leading underscores.

  Closes [#&#8203;10189](https://github.com/pylint-dev/pylint/issues/10189)

## Other Changes

- Upload release assets to PyPI via Trusted Publishing.

  Closes [#&#8203;10256](https://github.com/pylint-dev/pylint/issues/10256)

### [`v3.3.4`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.4)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.3...v3.3.4)

## Other Bug Fixes

- Fixes "skipped files" count calculation; the previous method was displaying an arbitrary number.

  Closes [#&#8203;10073](https://github.com/pylint-dev/pylint/issues/10073)

- Fixes a crash that occurred when pylint was run in a container on a host with cgroupsv2 and restrictions on CPU usage.

  Closes [#&#8203;10103](https://github.com/pylint-dev/pylint/issues/10103)

- Relaxed the requirements for isort so pylint can benefit from isort 6.

  Closes [#&#8203;10203](https://github.com/pylint-dev/pylint/issues/10203)

### [`v3.3.3`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.3)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.2...v3.3.3)

## What's new in Pylint 3.3.3?

Release date: 2024-12-23

## False Positives Fixed

- Fix false positives for `undefined-variable` for classes using Python 3.12
  generic type syntax.

  Closes [#&#8203;9335](https://github.com/pylint-dev/pylint/issues/9335)

- Fix a false positive for `use-implicit-booleaness-not-len`. No lint should be emitted for
  generators (`len` is not defined for generators).

  Refs [#&#8203;10100](https://github.com/pylint-dev/pylint/issues/10100)

## Other Bug Fixes

- Fix `Unable to import 'collections.abc' (import-error)` on Python 3.13.1.

  Closes [#&#8203;10112](https://github.com/pylint-dev/pylint/issues/10112)

### [`v3.3.2`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.2)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.1...v3.3.2)

## False Positives Fixed

- Fix a false positive for `potential-index-error` when an indexed iterable
  contains a starred element that evaluates to more than one item.

  Closes [#&#8203;10076](https://github.com/pylint-dev/pylint/issues/10076)

## Other Bug Fixes

- Fixes the issue with --source-root option not working when the source files are in a subdirectory of the source root (e.g. when using a /src layout).

  Closes [#&#8203;10026](https://github.com/pylint-dev/pylint/issues/10026)

### [`v3.3.1`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.1)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.3.0...v3.3.1)

## What's new in Pylint 3.3.1?

Release date: 2024-09-24

## False Positives Fixed

- Fix regression causing some f-strings to not be inferred as strings.

  Closes [#&#8203;9947](https://github.com/pylint-dev/pylint/issues/9947)

### [`v3.3.0`](https://github.com/pylint-dev/pylint/releases/tag/v3.3.0)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.7...v3.3.0)

Release date: 2024-09-20

## Changes requiring user actions

- We migrated `symilar` to argparse, from getopt, so the error and help output changed
  (for the better). We exit with 2 instead of sometime 1, sometime 2. The error output
  is not captured by the runner anymore. It's not possible to use a value for the
  boolean options anymore (`--ignore-comments 1` should become `--ignore-comments`).

  Refs [#&#8203;9731](https://github.com/pylint-dev/pylint/issues/9731)

## New Features

- Add new `declare-non-slot` error which reports when a class has a `__slots__` member and a type hint on the class is not present in `__slots__`.

  Refs [#&#8203;9499](https://github.com/pylint-dev/pylint/issues/9499)

## New Checks

- Added `too-many-positional-arguments` to allow distinguishing the configuration for too many
  total arguments (with keyword-only params specified after `*`) from the configuration
  for too many positional-or-keyword or positional-only arguments.

  As part of evaluating whether this check makes sense for your project, ensure you
  adjust the value of `--max-positional-arguments`.

  Closes [#&#8203;9099](https://github.com/pylint-dev/pylint/issues/9099)

- Add `using-exception-groups-in-unsupported-version` and
  `using-generic-type-syntax-in-unsupported-version` for uses of Python 3.11+ or
  3.12+ features on lower supported versions provided with `--py-version`.

  Closes [#&#8203;9791](https://github.com/pylint-dev/pylint/issues/9791)

- Add `using-assignment-expression-in-unsupported-version` for uses of `:=` (walrus operator)
  on Python versions below 3.8 provided with `--py-version`.

  Closes [#&#8203;9820](https://github.com/pylint-dev/pylint/issues/9820)

- Add `using-positional-only-args-in-unsupported-version` for uses of positional-only args on
  Python versions below 3.8 provided with `--py-version`.

  Closes [#&#8203;9823](https://github.com/pylint-dev/pylint/issues/9823)

- Add `unnecessary-default-type-args` to the `typing` extension to detect the use
  of unnecessary default type args for `typing.Generator` and `typing.AsyncGenerator`.

  Refs [#&#8203;9938](https://github.com/pylint-dev/pylint/issues/9938)

## False Negatives Fixed

- Fix computation of never-returning function: `Never` is handled in addition to `NoReturn`, and priority is given to the explicit `--never-returning-functions` option.

  Closes [#&#8203;7565](https://github.com/pylint-dev/pylint/issues/7565).

- Fix a false negative for `await-outside-async` when await is inside Lambda.

  Refs [#&#8203;9653](https://github.com/pylint-dev/pylint/issues/9653)

- Fix a false negative for `duplicate-argument-name` by including `positional-only`, `*args` and `**kwargs` arguments in the check.

  Closes [#&#8203;9669](https://github.com/pylint-dev/pylint/issues/9669)

- Fix false negative for `multiple-statements` when multiple statements are present on `else` and `finally` lines of `try`.

  Refs [#&#8203;9759](https://github.com/pylint-dev/pylint/issues/9759)

- Fix false negatives when `isinstance` does not have exactly two arguments.
  pylint now emits a `too-many-function-args` or `no-value-for-parameter`
  appropriately for `isinstance` calls.

  Closes [#&#8203;9847](https://github.com/pylint-dev/pylint/issues/9847)

## Other Bug Fixes

- `--enable` with `--disable=all` now produces an error, when an unknown msg code is used. Internal `pylint` messages are no longer affected by `--disable=all`.

  Closes [#&#8203;9403](https://github.com/pylint-dev/pylint/issues/9403)

- Impossible to compile regexes for paths in the configuration or argument given to pylint won't crash anymore but
  raise an argparse error and display the error message from `re.compile` instead.

  Closes [#&#8203;9680](https://github.com/pylint-dev/pylint/issues/9680)

- Fix a bug where a `tox.ini` file with pylint configuration was ignored and it exists in the current directory.

  `.cfg` and `.ini` files containing a `Pylint` configuration may now use a section named `[pylint]`. This enhancement impacts the scenario where these file types are used as defaults when they are present and have not been explicitly referred to, using the `--rcfile` option.

  Closes [#&#8203;9727](https://github.com/pylint-dev/pylint/issues/9727)

- Improve file discovery for directories that are not python packages.

  Closes [#&#8203;9764](https://github.com/pylint-dev/pylint/issues/9764)

## Other Changes

- Remove support for launching pylint with Python 3.8.
  Code that supports Python 3.8 can still be linted with the `--py-version=3.8` setting.

  Refs [#&#8203;9774](https://github.com/pylint-dev/pylint/issues/9774)

- Add support for Python 3.13.

  Refs [#&#8203;9852](https://github.com/pylint-dev/pylint/issues/9852)

## Internal Changes

- All variables, classes, functions and file names containing the word 'similar', when it was,
  in fact, referring to 'symilar' (the standalone program for the duplicate-code check) were renamed
  to 'symilar'.

  Closes [#&#8203;9734](https://github.com/pylint-dev/pylint/issues/9734)

- Remove old-style classes (Python 2) code and remove check for new-style class since everything is new-style in Python 3. Updated doc for exception checker to remove reference to new style class.

  Refs [#&#8203;9925](https://github.com/pylint-dev/pylint/issues/9925)

### [`v3.2.7`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.7)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.6...v3.2.7)

## What's new in Pylint 3.2.7?

Release date: 2024-08-31

## False Positives Fixed

- Fixed a false positive `unreachable` for `NoReturn` coroutine functions.

  Closes [#&#8203;9840](https://github.com/pylint-dev/pylint/issues/9840)

## Other Bug Fixes

- Fix crash in refactoring checker when calling a lambda bound as a method.

  Closes [#&#8203;9865](https://github.com/pylint-dev/pylint/issues/9865)

- Fix a crash in `undefined-loop-variable` when providing the `iterable` argument to `enumerate()`.

  Closes [#&#8203;9875](https://github.com/pylint-dev/pylint/issues/9875)

- Fix to address indeterminacy of error message in case a module name is same as another in a separate namespace.

  Refs [#&#8203;9883](https://github.com/pylint-dev/pylint/issues/9883)

### [`v3.2.6`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.6)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.5...v3.2.6)

## What's new in Pylint 3.2.6?

Release date: 2024-07-21

## False Positives Fixed

- Quiet false positives for `unexpected-keyword-arg` when pylint cannot
  determine which of two or more dynamically defined classes is being instantiated.

  Closes [#&#8203;9672](https://github.com/pylint-dev/pylint/issues/9672)

- Fix a false positive for `missing-param-doc` where a method which is decorated with `typing.overload` was expected to have a docstring specifying its parameters.

  Closes [#&#8203;9739](https://github.com/pylint-dev/pylint/issues/9739)

- Fix a regression that raised `invalid-name` on class attributes merely
  overriding invalid names from an ancestor.

  Closes [#&#8203;9765](https://github.com/pylint-dev/pylint/issues/9765)

- Treat `assert_never()` the same way when imported from `typing_extensions`.

  Closes [#&#8203;9780](https://github.com/pylint-dev/pylint/issues/9780)

- Fix a false positive for `consider-using-min-max-builtin` when the assignment target is an attribute.

  Refs [#&#8203;9800](https://github.com/pylint-dev/pylint/issues/9800)

## Other Bug Fixes

- Fix an `AssertionError` arising from properties that return partial functions.

  Closes [#&#8203;9214](https://github.com/pylint-dev/pylint/issues/9214)

- Fix a crash when a subclass extends `__slots__`.

  Closes [#&#8203;9814](https://github.com/pylint-dev/pylint/issues/9814)

### [`v3.2.5`](https://github.com/pylint-dev/pylint/releases/tag/v3.2.5)

[Compare Source](https://github.com/pylint-dev/pylint/compare/v3.2.4...v3.2.5)

## What's new in Pylint 3.2.5 ?

Release date: 2024-06-28

## Other Bug Fixes

- Fixed a false positive `unreachable-code` when using `typing.Any` as return type in python
  3.8, the `typing.NoReturn` are not taken into account anymore for python 3.8 however.

  Closes [#&#8203;9751](https://github.com/pylint-dev/pylint/issues/9751)

</details>

<details>
<summary>fcfangcc/pylint-pydantic (pylint-pydantic)</summary>

### [`v0.4.1`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.1)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.4.0...v0.4.1)

fixed [#&#8203;41](https://github.com/fcfangcc/pylint-pydantic/issues/41)

### [`v0.4.0`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.4.0)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.5...v0.4.0)

1. Support pylint4
2. Remove support for python3.9

### [`v0.3.5`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.5)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.4...v0.3.5)

- updates setup to add 3.13
- updates workflow with 3.13
- updates logic of transform\_pydantic\_json to resolve
  contribution by [@&#8203;litsolac](https://github.com/litsolac)

### [`v0.3.4`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.4)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.3...v0.3.4)

fixed [#&#8203;35](https://github.com/fcfangcc/pylint-pydantic/issues/35)

### [`v0.3.3`](https://github.com/fcfangcc/pylint-pydantic/releases/tag/v0.3.3)

[Compare Source](https://github.com/fcfangcc/pylint-pydantic/compare/v0.3.2...v0.3.3)

Fixed
[#&#8203;33](https://github.com/fcfangcc/pylint-pydantic/issues/33)
[#&#8203;32](https://github.com/fcfangcc/pylint-pydantic/issues/32)

</details>

<details>
<summary>pytest-dev/pytest-asyncio (pytest-asyncio)</summary>

### [`v0.26.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.26.0): pytest-asyncio 0.26.0

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.3...v0.26.0)

- Adds configuration option that sets default event loop scope for all tests [#&#8203;793](https://github.com/pytest-dev/pytest-asyncio/issues/793)
- Improved type annotations for `pytest_asyncio.fixture` [#&#8203;1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045)
- Added `typing-extensions` as additional dependency for Python `<3.10` [#&#8203;1045](https://github.com/pytest-dev/pytest-asyncio/pull/1045)

### [`v0.25.3`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.3): pytest-asyncio 0.25.3

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.2...v0.25.3)

- Avoid errors in cleanup of async generators when event loop is already closed [#&#8203;1040](https://github.com/pytest-dev/pytest-asyncio/issues/1040)

### [`v0.25.2`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.2): pytest-asyncio 0.25.2

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.1...v0.25.2)

- Call `loop.shutdown_asyncgens()` before closing the event loop to ensure async generators are closed in the same manner as `asyncio.run` does [#&#8203;1034](https://github.com/pytest-dev/pytest-asyncio/pull/1034)

### [`v0.25.1`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.1): pytest-asyncio 0.25.1

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.0...v0.25.1)

- Fixes an issue that caused a broken event loop when a function-scoped test was executed in between two tests with wider loop scope [#&#8203;950](https://github.com/pytest-dev/pytest-asyncio/issues/950)
- Improves test collection speed in auto mode [#&#8203;1020](https://github.com/pytest-dev/pytest-asyncio/pull/1020)
- Corrects the warning that is emitted upon redefining the event\_loop fixture

### [`v0.25.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.25.0): pytest-asyncio 0.25.0

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.24.0...v0.25.0)

### 0.25.0 (2024-12-13)

- Deprecated: Added warning when asyncio test requests async `@pytest.fixture` in strict mode. This will become an error in a future version of flake8-asyncio. [#&#8203;979](https://github.com/pytest-dev/pytest-asyncio/pull/979)
- Updates the error message about *pytest.mark.asyncio*'s *scope* keyword argument to say *loop\_scope* instead. [#&#8203;1004](https://github.com/pytest-dev/pytest-asyncio/pull/1004)
- Verbose log displays correct parameter name: asyncio\_default\_fixture\_loop\_scope [#&#8203;990](https://github.com/pytest-dev/pytest-asyncio/pull/990)
- Propagates *contextvars* set in async fixtures to other fixtures and tests on Python 3.11 and above. [#&#8203;1008](https://github.com/pytest-dev/pytest-asyncio/pull/1008)

### [`v0.24.0`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.24.0): pytest-asyncio 0.24.0

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.8...v0.24.0)

### 0.24.0 (2024-08-22)

- BREAKING: Updated minimum supported pytest version to v8.2.0
- Adds an optional *loop\_scope* keyword argument to *pytest.mark.asyncio*. This argument controls which event loop is used to run the marked async test. [#&#8203;706](https://github.com/pytest-dev/pytest-asyncio/issues/706), [#&#8203;871](https://github.com/pytest-dev/pytest-asyncio/pull/871)
- Deprecates the optional *scope* keyword argument to *pytest.mark.asyncio* for API consistency with `pytest_asyncio.fixture`. Users are encouraged to use the *loop\_scope* keyword argument, which does exactly the same.
- Raises an error when passing *scope* or *loop\_scope* as a positional argument to `@pytest.mark.asyncio`. [#&#8203;812](https://github.com/pytest-dev/pytest-asyncio/issues/812)
- Fixes a bug that caused module-scoped async fixtures to fail when reused in other modules [#&#8203;862](https://github.com/pytest-dev/pytest-asyncio/issues/862) [#&#8203;668](https://github.com/pytest-dev/pytest-asyncio/issues/668)

### [`v0.23.8`](https://github.com/pytest-dev/pytest-asyncio/releases/tag/v0.23.8): pytest-asyncio 0.23.8

[Compare Source](https://github.com/pytest-dev/pytest-asyncio/compare/v0.23.7...v0.23.8)

### 0.23.8 (2024-07-17)

- Fixes a bug that caused duplicate markers in async tests [#&#8203;813](https://github.com/pytest-dev/pytest-asyncio/issues/813)

#### Known issues

As of v0.23, pytest-asyncio attaches an asyncio event loop to each item of the test suite (i.e. session, packages, modules, classes, functions) and allows tests to be run in those loops when marked accordingly. Pytest-asyncio currently assumes that async fixture scope is correlated with the new event loop scope. This prevents fixtures from being evaluated independently from the event loop scope and breaks some existing test suites (see [#&#8203;706](https://github.com/pytest-dev/pytest-asyncio/issues/706)). For example, a test suite may require all fixtures and tests to run in the same event loop, but have async fixtures that are set up and torn down for each module. If you're affected by this issue, please continue using the v0.21 release, until it is resolved.

</details>

<details>
<summary>celery/pytest-celery (pytest-celery)</summary>

### [`v1.2.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#121)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.2.0...v1.2.1)

\=====
:release-date: 30 July, 2025
:release-by: Tomer Nosrati

### [`v1.2.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#120)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.3...v1.2.0)

\=====
:release-date: 21 February, 2025
:release-by: Tomer Nosrati

### [`v1.1.3`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#113)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.2...v1.1.3)

\=====
:release-date: 20 September, 2024
:release-by: Tomer Nosrati

### [`v1.1.2`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#112)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.1...v1.1.2)

\=====
:release-date: 14 September, 2024
:release-by: Tomer Nosrati

### [`v1.1.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#111)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.1.0...v1.1.1)

\=====
:release-date: 12 August, 2024
:release-by: Tomer Nosrati

### [`v1.1.0`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#110)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.1...v1.1.0)

\=====
:release-date: 11 August, 2024
:release-by: Tomer Nosrati

### [`v1.0.1`](https://github.com/celery/pytest-celery/blob/HEAD/Changelog.rst#101)

[Compare Source](https://github.com/celery/pytest-celery/compare/v1.0.0...v1.0.1)

\=====
:release-date: 17 July, 2024
:release-by: Tomer Nosrati

</details>

<details>
<summary>bloomberg/pytest-memray (pytest-memray)</summary>

### [`v1.8.0`](https://github.com/bloomberg/pytest-memray/releases/tag/v1.8.0)

[Compare Source](https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0)

#### What's Changed

- Bump pypa/gh-action-pypi-publish from 1.9.0 to 1.10.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;124](https://github.com/bloomberg/pytest-memray/pull/124)
- Bump pypa/gh-action-pypi-publish from 1.10.0 to 1.10.1 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;125](https://github.com/bloomberg/pytest-memray/pull/125)
- Bump pypa/gh-action-pypi-publish from 1.10.1 to 1.10.2 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;127](https://github.com/bloomberg/pytest-memray/pull/127)
- Bump pypa/gh-action-pypi-publish from 1.10.2 to 1.11.0 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;129](https://github.com/bloomberg/pytest-memray/pull/129)
- Bump pypa/gh-action-pypi-publish from 1.11.0 to 1.12.4 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;139](https://github.com/bloomberg/pytest-memray/pull/139)
- Declare 3.14 support by [@&#8203;godlygeek](https://github.com/godlygeek) in [#&#8203;148](https://github.com/bloomberg/pytest-memray/pull/148)
- Bump actions/download-artifact from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;146](https://github.com/bloomberg/pytest-memray/pull/146)
- Bump actions/checkout from 4 to 5 by [@&#8203;dependabot](https://github.com/dependabot)\[bot] in [#&#8203;147](https://github.com/bloomberg/pytest-memray/pull/147)
- Release 1.8.0 by [@&#8203;pablogsal](https://github.com/pablogsal) in [#&#8203;149](https://github.com/bloomberg/pytest-memray/pull/149)

**Full Changelog**: <https://github.com/bloomberg/pytest-memray/compare/1.7.0...v1.8.0>

</details>

<details>
<summary>pytest-dev/pytest-mock (pytest-mock)</summary>

### [`v3.15.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3151)

[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.15.0...v3.15.1)

*2025-09-16*

- `#&#8203;529 <https://github.com/pytest-dev/pytest-mock/issues/529>`\_: Fixed `itertools._tee object has no attribute error` -- now `duplicate_iterators=True` must be passed to `mocker.spy` to duplicate iterators.

### [`v3.15.0`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3150)

[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.1...v3.15.0)

*2025-09-04*

- Python 3.8 (EOL) is no longer supported.
- `#&#8203;524 <https://github.com/pytest-dev/pytest-mock/pull/524>`\_: Added `spy_return_iter` to `mocker.spy`, which contains a duplicate of the return value of the spied method if it is an `Iterator`.

### [`v3.14.1`](https://github.com/pytest-dev/pytest-mock/blob/HEAD/CHANGELOG.rst#3141-2025-05-26)

[Compare Source](https://github.com/pytest-dev/pytest-mock/compare/v3.14.0...v3.14.1)

- `#&#8203;503 <https://github.com/pytest-dev/pytest-mock/pull/503>`\_: Python 3.14 is now officially supported.

</details>

<details>
<summary>jbasko/pytest-random-order (pytest-random-order)</summary>

### [`v1.2.0`](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0)

[Compare Source](https://github.com/jbasko/pytest-random-order/compare/v1.1.1...v1.2.0)

</details>

<details>
<summary>python-gitlab/python-gitlab (python-gitlab)</summary>

### [`v6.5.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v650-2025-10-17)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.4.0...v6.5.0)

##### Bug Fixes

- **semantic-release**: Enable CHANGELOG.md generation
  ([`fb9693b`](https://github.com/python-gitlab/python-gitlab/commit/fb9693bf1e6798149196e57fed87bf2588ad3b47))

##### Continuous Integration

- **stale**: Fix permission for stale action and allow manual run
  ([`9357a37`](https://github.com/python-gitlab/python-gitlab/commit/9357a374702dcc8049a6d8af636f48c736d3f160))

##### Documentation

- **pull\_mirror**: Fix incorrect start() method usage example
  ([`2acac19`](https://github.com/python-gitlab/python-gitlab/commit/2acac19356c8624def90c7e54237b256bceece18))

##### Features

- **api**: Add content\_ref and dry\_run\_ref parameters to ProjectCiLintManager
  ([`e8d2538`](https://github.com/python-gitlab/python-gitlab/commit/e8d2538cdf85a7c57babbc00074efbdab97548cd))

- **users**: Implement 'skip\_confirmation' in users 'emails' creation
  ([`2981730`](https://github.com/python-gitlab/python-gitlab/commit/298173017be387f26aa0828cae1e9a48e3cce328))

### [`v6.4.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v640-2025-09-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.3.0...v6.4.0)

##### Features

- **users**: Implement missing arguments in users 'list'
  ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02))

- **users**: Sort 'user list' arguments against documentation
  ([`99923d4`](https://github.com/python-gitlab/python-gitlab/commit/99923d40dcb4f32f02bcbc5e8ef5ec4b77e3cb02))

### [`v6.3.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v630-2025-08-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.2.0...v6.3.0)

##### Features

- Add sync method to force remote mirror updates
  ([`f3c6678`](https://github.com/python-gitlab/python-gitlab/commit/f3c6678482b7ca35b1dd1e3bc49fc0c56cd03639))

- **api**: Add missing ProjectJob list filters
  ([`5fe0e71`](https://github.com/python-gitlab/python-gitlab/commit/5fe0e715448b00a666f76cdce6db321686f6a271))

- **api**: Add missing ProjectPackageManager list filters
  ([`b1696be`](https://github.com/python-gitlab/python-gitlab/commit/b1696be5fb223028755e303069e23e42a11cab42))

- **users**: Implement support for 'admins' in administrators 'list'
  ([`aaed51c`](https://github.com/python-gitlab/python-gitlab/commit/aaed51cdec65c8acabe8b9a39fd18c7e1e48519c))

### [`v6.2.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v620-2025-07-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.1.0...v6.2.0)

##### Build System

- **release**: Use correct python-semantic-release/publish-action
  ([`2f20634`](https://github.com/python-gitlab/python-gitlab/commit/2f20634b9700bc802177278ffdd7bdf83ef1605a))

##### Continuous Integration

- **stale**: Improve formatting of stale message
  ([`0ef20d1`](https://github.com/python-gitlab/python-gitlab/commit/0ef20d1b0ee6cd82c4e34003aca4c0c72935f4d9))

- **stale**: Increase `operations-per-run` to 500
  ([`326e1a4`](https://github.com/python-gitlab/python-gitlab/commit/326e1a46881467f41dc3de5f060ac654924fbe40))

##### Features

- **api**: Add ListMixin to ProjectIssueDiscussionNoteManager
  ([`f908f0e`](https://github.com/python-gitlab/python-gitlab/commit/f908f0e82840a5df374e8fbfb1298608d23f02bd))

- **api**: Add ListMixin to ProjectMergeRequestDiscussionNoteManager
  ([`865339a`](https://github.com/python-gitlab/python-gitlab/commit/865339ac037fb125280180b05a2c4e44067dc5e9))

### [`v6.1.0`](https://github.com/python-gitlab/python-gitlab/blob/HEAD/CHANGELOG.md#v610-2025-06-28)

[Compare Source](https://github.com/python-gitlab/python-gitlab/compare/v6.0.0...v6.1.0)

##### Chores

- Update to mypy 1.16.0 and resolve issues found
  ([`f734c58`](https://github.com/python-gitlab/python-gitlab/commit/f734c586e3fe5a0e866bcf60030107ca142fa763))

##### Documentation

- Update CONTRIBUTING.rst with policy on issue management
  ([`45dda50`](https://github.com/python-gitlab/python-gitlab/commit/45dda50ff4c0e01307480befa86498600563f818))

##### Features

- **api**: Add listing user contributed projects
  ([`98c1307`](https://github.com/python-gitlab/python-gitlab/commit/98c13074127ae46d85545498746d55c8b75aef48))

- **api**: Add support for project tag list filters
  ([`378a836`](https://github.com/python-gitlab/python-gitlab/commit/378a836bf5744ca6c9409dd60899e5d2f90b55be))

- **api**: Pipeline inputs support
  ([#&#8203;3194](https://github.com/python-gitlab/python-gitlab/pull/3194),
  [`306c4b1`](https://github.com/python-gitlab/python-gitlab/commit/306c4b1931e2b03d7cbcef5773668e876d5644b1))

- **const**: Add PLANNER\_ACCESS constant
  ([`ba6f174`](https://github.com/python-gitlab/python-gitlab/commit/ba6f174896f908ba711e1e3e8ebf4692c86bd3d4))

- **groups**: Add protectedbranches to group class
  ([#&#8203;3164](https://github.com/python-gitlab/python-gitlab/pull/3164),
  [`bfd31a8`](https://github.com/python-gitlab/python-gitlab/commit/bfd31a867547dffb2c2d54127e184fefa058cb30))

</details>

<details>
<summary>indygreg/python-zstandard (zstandard)</summary>

### [`v0.25.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.25.0)

[Compare Source](https://github.com/indygreg/python-zstandard/compare/0.24.0...0.25.0)

- PyO3 Rust created upgraded from 0.24 to 0.25. ([#&#8203;273](https://github.com/indygreg/python-zstandard/issues/273))
- We now use `Py_REFCNT(obj)` instead of accessing `(*obj)->ob_refcnt` directly.
  This fixes a nogil / multi-threaded compile error. ([#&#8203;201](https://github.com/indygreg/python-zstandard/issues/201), [#&#8203;275](https://github.com/indygreg/python-zstandard/issues/275))
- A zstandard commit to fix qsort detection on BSD operating systems
  has been backported. ([#&#8203;272](https://github.com/indygreg/python-zstandard/issues/272))
- The `PYTHON_ZSTANDARD_IMPORT_POLICY` environment variable now has leading
  and trailing whitespace stripped. Values like ` cffi` and `cffi ` are
  now equivalent to `cffi`.
- The CI jobs for building wheels have been overhauled to always use
  `cibuildwheel` and `uv` (where possible). This change should be backwards
  compatible. But wheel building for this project has historically been
  fragile and there may be unwanted changes. We're optimistic that standardizing
  on uv (except for musllinux ppc64le and s390x where uv isn't available)
  will lead to more stability over time.
- CI now runs tests against the wheels we distribute. Previously, we ran
  tests against a separate build that was theoretically identical. But the
  builds may have been subtly different, leading to preventable bugs in our
  wheels. (Enabling this test coverage did not uncover any failures.)
- The `pyproject.toml` build backend has been switched from
  `setuptools.build_meta:__legacy__` to `setuptools.build_meta`.
- The setuptools build dependency has been upgraded from <69.0.0 to >=77.0.0.
  Modern versions of setuptools broke
  `--config-settings=--build-option=...` as part of implementing PEP 660.
  A workaround is to use `--config-settings=--global-option=...` instead.
  `--global-option` apparently is deprecated and the setuptools folks have yet
  to figure out how to thread config settings into `setup.py` invocations.
  (`--build-option` is sent to the `build_wheel` command but not the
  `build_editable` command.)
- Python 3.14 wheels are now built with `manylinux_2_28` (versus
  `manylinux2014`) for older Python versions. This may raise the minimum
  glibc version, effectively dropping support for Debian 8 and 9, Ubuntu
  13.10 through 18.04, Fedora 19 to 28, and RHEL/Centos 7. However, in
  practice most platforms don't container newer glibc symbols and are still
  ABI compatible with `manylinux2014` and glibc 2.17.
- We now require cffi >= 2.0.0b on Python 3.14. <3.14 still requires 1.17.
  ([#&#8203;274](https://github.com/indygreg/python-zstandard/issues/274))
- The cffi backend is now automatically disabled for free-threaded builds
  on Python <3.14, as cffi didn't implement free-threaded support until
  the 2.0 release. ([#&#8203;274](https://github.com/indygreg/python-zstandard/issues/274))
- Added CI coverage for free-threaded CPython 3.13 and 3.14. We do not yet
  formally support free-threaded builds. ([#&#8203;276](https://github.com/indygreg/python-zstandard/issues/276))
- The C and Rust backends now declare the GIL as unused.
- The `pythoncapi_compat.h` file has been upgraded to the latest version. ([#&#8203;278](https://github.com/indygreg/python-zstandard/issues/278))
- `setup.py` now depends on `packaging` and uses `packaging.version.Version`
  for version comparisons. This removes some deprecation warnings from usage of
  legacy distutils `Version` classes.
- Relax run-time libzstd version checking in C extension from exactly 1.5.7
  to >=1.5.6. ([#&#8203;254](https://github.com/indygreg/python-zstandard/issues/254), [#&#8203;267](https://github.com/indygreg/python-zstandard/issues/267))
- C extension types now (correctly) declare their fully qualified type names
  as `zstandard.backend_c.*` versus `zstd.*` before. The names have been
  subtly broken for years. We believe the only practical exposure to this change
  is via pickling (possibly encountered when using the `multiprocessing` or
  `concurrent.futures` packages), which would fail to pickle types like
  `ZstdError` before since the fully qualified type name referenced an
  incorrect and likely missing package (`zstd`). ([#&#8203;248](https://github.com/indygreg/python-zstandard/issues/248))

### [`v0.24.0`](https://github.com/indygreg/python-zstandard/releases/tag/0.24.0)

[Compare Source](https://github.com/indygreg/python-zstandard/compare/0.23.0...0.24.0)

### Backwards Compatibility Notes

- Support for Python 3.8 has been dropped because it reached end of life. Python 3.9 is the minimum supported Python version. The code should still be compatible with Python 3.8 and removing of version checks from `setup.py` will likely yield a working install. However, this is not officially supported.

### Changes

- Bundled zstd library upgraded from 1.5.6 to 1.5.7. ([#&#8203;255](https://github.com/indygreg/python-zstandard/issues/255))
- We now use and require cffi 1.17.0 or newer. Previously, the constraint was >=1.11.0 on Python <3.13.
- The `pyproject.toml` file now defines a `[project]` section.
- We now use GitHub's native ARM Linux runners to build wheels and run tests. Previously, Linux ARM wheels were built inside a QEMU virtualized environment and we didn't run tests on this platform.
- We now use GitHub's native ARM Windows runners to build wheels and run tests. Previously, Windows ARM wheels were cross compiled from an x86-64 runner and we never ran tests for the Windows ARM platform.
- We now `collections.abs.Buffer` on Python 3.12+ instead of `typing.ByteString`, as `typing.ByteString` was dep…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Another AssertionError with TypedDict and --cache-fine-grained in v1.11.0 dmypy crashes since version 1.11.0 / "normal" mypy runs without problems

2 participants