Bumps the other-deps group with 4 updates in the /libs/model-profiles directory: [pytest](https://github.com/pytest-dev/pytest), [pytest-watcher](https://github.com/olzhasar/pytest-watcher), [ruff](https://github.com/astral-sh/ruff) and [mypy](https://github.com/python/mypy). Bumps the other-deps group with 3 updates in the /libs/standard-tests directory: [pytest](https://github.com/pytest-dev/pytest), [ruff](https://github.com/astral-sh/ruff) and [pytest-codspeed](https://github.com/CodSpeedHQ/pytest-codspeed). Bumps the other-deps group with 6 updates in the /libs/text-splitters directory: | Package | From | To | | --- | --- | --- | | [pytest](https://github.com/pytest-dev/pytest) | `8.4.2` | `9.0.2` | | [pytest-watcher](https://github.com/olzhasar/pytest-watcher) | `0.4.3` | `0.6.3` | | [ruff](https://github.com/astral-sh/ruff) | `0.14.11` | `0.15.0` | | [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` | | [beautifulsoup4](https://www.crummy.com/software/BeautifulSoup/bs4/) | `4.14.2` | `4.14.3` | | [transformers](https://github.com/huggingface/transformers) | `4.56.2` | `5.1.0` | Updates `pytest` from 8.4.2 to 9.0.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>9.0.2</h2> <h1>pytest 9.0.2 (2025-12-06)</h1> <h2>Bug fixes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13896">#13896</a>: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.</p> <p>You may enable it again by passing <code>-p terminalprogress</code>. We may enable it by default again once compatibility improves in the future.</p> <p>Additionally, when the environment variable <code>TERM</code> is <code>dumb</code>, the escape codes are no longer emitted, even if the plugin is enabled.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13904">#13904</a>: Fixed the TOML type of the <code>tmp_path_retention_count</code> settings in the API reference from number to string.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13946">#13946</a>: The private <code>config.inicfg</code> attribute was changed in a breaking manner in pytest 9.0.0. Due to its usage in the ecosystem, it is now restored to working order using a compatibility shim. It will be deprecated in pytest 9.1 and removed in pytest 10.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13965">#13965</a>: Fixed quadratic-time behavior when handling <code>unittest</code> subtests in Python 3.10.</p> </li> </ul> <h2>Improved documentation</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/4492">#4492</a>: The API Reference now contains cross-reference-able documentation of <code>pytest's command-line flags <command-line-flags></code>.</li> </ul> <h2>9.0.1</h2> <h1>pytest 9.0.1 (2025-11-12)</h1> <h2>Bug fixes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13895">#13895</a>: Restore support for skipping tests via <code>raise unittest.SkipTest</code>.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13896">#13896</a>: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13904">#13904</a>: Fixed the TOML type of the verbosity settings in the API reference from number to string.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13910">#13910</a>: Fixed <!-- raw HTML omitted -->UserWarning: Do not expect file_or_dir<!-- raw HTML omitted --> on some earlier Python 3.12 and 3.13 point versions.</li> </ul> <h2>Packaging updates and notes for downstreams</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13933">#13933</a>: The tox configuration has been adjusted to make sure the desired version string can be passed into its <code>package_env</code> through the <code>SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST</code> environment variable as a part of the release process -- by <code>webknjaz</code>.</li> </ul> <h2>Contributor-facing changes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13891">#13891</a>, <a href="https://redirect.github.com/pytest-dev/pytest/issues/13942">#13942</a>: The CI/CD part of the release automation is now capable of creating GitHub Releases without having a Git checkout on disk -- by <code>bluetech</code> and <code>webknjaz</code>.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13933">#13933</a>: The tox configuration has been adjusted to make sure the desired version string can be passed into its <code>package_env</code> through the <code>SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST</code> environment variable as a part of the release process -- by <code>webknjaz</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="3d10b5148e"><code>3d10b51</code></a> Prepare release version 9.0.2</li> <li><a href="188750b725"><code>188750b</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14030">#14030</a> from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...</li> <li><a href="b7d7bef90c"><code>b7d7bef</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14014">#14014</a> from bluetech/compat-note</li> <li><a href="bd08e85ac7"><code>bd08e85</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14013">#14013</a> from pytest-dev/patchback/backports/9.0.x/922b60377...</li> <li><a href="bc78386299"><code>bc78386</code></a> Add CLI options reference documentation (<a href="https://redirect.github.com/pytest-dev/pytest/issues/13930">#13930</a>)</li> <li><a href="5a4e398ce8"><code>5a4e398</code></a> Fix docs typo (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14005">#14005</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14008">#14008</a>)</li> <li><a href="d7ae6df394"><code>d7ae6df</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14006">#14006</a> from pytest-dev/maintenance/update-plugin-list-tmpl...</li> <li><a href="556f6a22e1"><code>556f6a2</code></a> pre-commit: fix rst-lint after new release (<a href="https://redirect.github.com/pytest-dev/pytest/issues/13999">#13999</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14001">#14001</a>)</li> <li><a href="c60fbe63a2"><code>c60fbe6</code></a> Fix quadratic-time behavior when handling <code>unittest</code> subtests in Python 3.10 ...</li> <li><a href="73d9b01118"><code>73d9b01</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/13995">#13995</a> from nicoddemus/patchback/backports/9.0.x/1b5200c0f...</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2">compare view</a></li> </ul> </details> <br /> Updates `pytest-watcher` from 0.4.3 to 0.6.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/olzhasar/pytest-watcher/releases">pytest-watcher's releases</a>.</em></p> <blockquote> <h2>v0.6.3</h2> <h3>Features</h3> <ul> <li>Add debug mode activated with <code>PTW_DEBUG</code> environment variable and improve log messages.</li> </ul> <h3>Bugfixes</h3> <ul> <li>Fix terminal flushing after menu and header prints.</li> <li>Use monotonic clock for trigger detection to avoid misbehavior on clock changes.</li> </ul> <h2>v0.6.2</h2> <h3>Bugfixes</h3> <ul> <li>Allow specifying blank patterns via CLI</li> <li>Fix duplicate command entries in menu</li> </ul> <h2>v0.6.1</h2> <h3>Bugfixes</h3> <ul> <li>Trigger tests in interactive mode for carriage return character</li> </ul> <h3>Improved Documentation</h3> <ul> <li>Add contributing guide</li> </ul> <h3>Misc</h3> <ul> <li>Integrate <a href="https://towncrier.readthedocs.io/en/stable/index.html">towncrier</a> into the development process</li> </ul> <h2>v0.6.0</h2> <h2>Features</h2> <ul> <li>Add <code>notify-on-failure</code> flag (and config option) to emit BEL symbol on test suite failure.</li> </ul> <h2>Infrastructure</h2> <ul> <li>Migrate from poetry to uv.</li> <li>Remove tox.</li> </ul> <h2>v0.5.0</h2> <h2>Fixes</h2> <ul> <li>Merge arguments passed to the runner from config and CLI instead of overriding.</li> </ul> <h2>Changes</h2> <ul> <li>Drop support for Python 3.7 & 3.8</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/olzhasar/pytest-watcher/blob/master/CHANGELOG.md">pytest-watcher's changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/olzhasar/pytest-watcher/releases/tag/0.6.3">0.6.3</a> - 2026-01-11</h2> <h3>Features</h3> <ul> <li>Add debug mode activated with <code>PTW_DEBUG</code> environment variable and improve log messages.</li> </ul> <h3>Bugfixes</h3> <ul> <li>Fix terminal flushing after menu and header prints.</li> <li>Use monotonic clock for trigger detection to avoid misbehavior on clock changes.</li> </ul> <h2><a href="https://github.com/olzhasar/pytest-watcher/releases/tag/0.6.2">0.6.2</a> - 2025-12-28</h2> <h3>Bugfixes</h3> <ul> <li>Allow specifying blank patterns via CLI</li> <li>Fix duplicate command entries in menu</li> </ul> <h2><a href="https://github.com/olzhasar/pytest-watcher/releases/tag/0.6.1">0.6.1</a> - 2025-12-26</h2> <h3>Bugfixes</h3> <ul> <li>Trigger tests in interactive mode for carriage return character</li> </ul> <h3>Improved Documentation</h3> <ul> <li>Add contributing guide</li> </ul> <h3>Misc</h3> <ul> <li>Integrate <a href="https://towncrier.readthedocs.io/en/stable/index.html">towncrier</a> into the development process</li> </ul> <h2><a href="https://github.com/olzhasar/pytest-watcher/releases/tag/0.6.0">0.6.0</a> - 2025-12-22</h2> <h3>Features</h3> <ul> <li>Add notify-on-failure flag (and config option) to emit BEL symbol on test suite failure.</li> </ul> <h3>Infrastructure</h3> <ul> <li>Migrate from <code>poetry</code> to <code>uv</code>.</li> <li>Remove <code>tox</code>.</li> </ul> <h2><a href="https://github.com/olzhasar/pytest-watcher/releases/tag/0.5.0">0.5.0</a> - 2025-12-21</h2> <h3>Fixes</h3> <ul> <li>Merge arguments passed to the runner from config and CLI instead of overriding.</li> </ul> <h3>Changes</h3> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="c52925b613"><code>c52925b</code></a> release v0.6.3</li> <li><a href="23d49893f7"><code>23d4989</code></a> Add debug mode. Improve log messages</li> <li><a href="e3dffa1cb3"><code>e3dffa1</code></a> Fix terminal flushing after menu and header prints</li> <li><a href="0eeaf6080e"><code>0eeaf60</code></a> Use monotonic clock for trigger detection</li> <li><a href="5ed9d0e262"><code>5ed9d0e</code></a> Update CHANGELOG. Fix changelog_reader action</li> <li><a href="756f005f5d"><code>756f005</code></a> release v0.6.2</li> <li><a href="902aa9e07b"><code>902aa9e</code></a> Merge pull request <a href="https://redirect.github.com/olzhasar/pytest-watcher/issues/51">#51</a> from olzhasar/fix-duplicate-menu</li> <li><a href="e6b20d35b9"><code>e6b20d3</code></a> Allow specifying empty patterns via CLI</li> <li><a href="2d522dabf9"><code>2d522da</code></a> Fix duplicate menu entries</li> <li><a href="171e6f1282"><code>171e6f1</code></a> Fix towncrier CHANGELOG versioning</li> <li>Additional commits viewable in <a href="https://github.com/olzhasar/pytest-watcher/compare/v0.4.3...v0.6.3">compare view</a></li> </ul> </details> <br /> Updates `pytest-asyncio` from 1.2.0 to 1.3.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest-asyncio/releases">pytest-asyncio's releases</a>.</em></p> <blockquote> <h2>pytest-asyncio 1.3.0</h2> <h1><a href="https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0">1.3.0</a> - 2025-11-10</h1> <h2>Removed</h2> <ul> <li>Support for Python 3.9 (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278">#1278</a>)</li> </ul> <h2>Added</h2> <ul> <li>Support for pytest 9 (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279">#1279</a>)</li> </ul> <h2>Notes for Downstream Packagers</h2> <ul> <li>Tested Python versions include free threaded Python 3.14t (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274">#1274</a>)</li> <li>Tests are run in the same pytest process, instead of spawning a subprocess with <code>pytest.Pytester.runpytest_subprocess</code>. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (<a href="https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275">#1275</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="2e9695fcf8"><code>2e9695f</code></a> docs: Compile changelog for v1.3.0</li> <li><a href="dd0e9ba3fa"><code>dd0e9ba</code></a> docs: Reference correct issue in news fragment.</li> <li><a href="4c31abe5bf"><code>4c31abe</code></a> Build(deps): Bump nh3 from 0.3.1 to 0.3.2</li> <li><a href="13e94770d7"><code>13e9477</code></a> Link to migration guides from changelog</li> <li><a href="4d2cf3c36f"><code>4d2cf3c</code></a> tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings</li> <li><a href="ee3549b6ef"><code>ee3549b</code></a> test: Remove obsolete test for the event_loop fixture.</li> <li><a href="7a67c82c5a"><code>7a67c82</code></a> tests: Fix failing test by preventing warning conversion to error.</li> <li><a href="a17b689a75"><code>a17b689</code></a> test: add pytest config to isolated test directories</li> <li><a href="18afc9df5a"><code>18afc9d</code></a> fix(tests): replace runpytest_subprocess with runpytest</li> <li><a href="cdc6bd1de7"><code>cdc6bd1</code></a> Add support for pytest 9 and drop Python 3.9 support</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-asyncio/compare/v1.2.0...v1.3.0">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 4.9.1 to 5.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.1.0</h2> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">5.1.0</a> (2026-01-25)</h1> <h3>Features</h3> <ul> <li>add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>) (<a href="df9bc8f6b3">df9bc8f</a>)</li> </ul> <h2>v5.0.0</h2> <h2>Syrupy 5.0.0</h2> <p><em>(2025-09-28)</em></p> <p>This release introduces new features, bug fixes, and a major license change. It also includes several <strong>breaking changes</strong>, so please review those carefully before upgrading.</p> <hr /> <h3>New Features ✨</h3> <ul> <li><strong>Add <code>--snapshot-dirname</code> option:</strong> A new option, <code>--snapshot-dirname</code>, is now available to change the default directory snapshots are stored in. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/810">#810</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/810">syrupy-project/syrupy#810</a>))</li> <li><strong>Remove private underscore prefix:</strong> The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([<a href="8cfc9059d3">8cfc905</a>](<a href="8cfc9059d3</a>))</li> </ul> <hr /> <h3>Bug Fixes 🐛</h3> <ul> <li><strong>Fix terminal summary for <code>xdist</code> workers:</strong> Resolves an issue where the terminal summary was not displayed correctly with <code>xdist</code> workers. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/978">#978</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/978">syrupy-project/syrupy#978</a>))</li> <li><strong>Ensure <code>pytest_assertrepr_compare</code> hook is called first:</strong> This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/984">#984</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/984">syrupy-project/syrupy#984</a>))</li> </ul> <hr /> <h3>Breaking Changes ⚠️</h3> <ul> <li> <p><strong>License change:</strong> The project has switched to the more permissive <strong>MIT license</strong>. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/945">#945</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/945">syrupy-project/syrupy#945</a>))</p> </li> <li> <p><strong>Python and pytest version requirements:</strong> Syrupy now requires <strong>Python 3.10</strong> or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of <strong>pytest is v8</strong>. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/904">#904</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/904">syrupy-project/syrupy#904</a>), [<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1024">#1024</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1024">syrupy-project/syrupy#1024</a>))</p> </li> <li> <p><strong>Method and constant name changes:</strong> Several methods and constants have been renamed for improved clarity and to align with public API standards.</p> <ul> <li> <p><strong><code>SnapshotCollectionStorage</code></strong></p> <ul> <li><code>_read_snapshot_collection</code> -> <code>read_snapshot_collection</code></li> <li><code>_read_snapshot_data_from_location</code> -> <code>read_snapshot_data_from_location</code></li> <li><code>_write_snapshot_collection</code> -> <code>write_snapshot_collection</code></li> <li><code>_get_file_basename</code> -> <code>get_file_basename</code></li> <li><code>_file_extension</code> -> <code>file_extension</code></li> </ul> </li> <li> <p><strong><code>AmberDataSerializer</code></strong></p> <ul> <li><code>_snapshot_sort_key</code> -> <code>snapshot_sort_key</code></li> </ul> </li> <li> <p><strong>Constants</strong></p> <ul> <li><code>SNAPSHOT_EMPTY_FOSSIL_KEY</code> -> <code>SNAPSHOT_EMPTY_COLLECTION_KEY</code></li> <li><code>SNAPSHOT_UNKNOWN_FOSSIL_KEY</code> -> <code>SNAPSHOT_UNKNOWN_COLLECTION_KEY</code></li> </ul> </li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">5.1.0</a> (2026-01-25)</h1> <h3>Features</h3> <ul> <li>add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>) (<a href="df9bc8f6b3">df9bc8f</a>)</li> </ul> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0">5.0.0</a> (2025-09-28)</h1> <ul> <li>Switch to MIT license (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/945">#945</a>) (<a href="d74d340f88">d74d340</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Block terminal summary for xdist workers. (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/978">#978</a>) (<a href="33a848df7c">33a848d</a>)</li> <li>ensure syrupy's pytest_assertrepr_compare hook is called first. (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/984">#984</a>) (<a href="eb0024d339">eb0024d</a>)</li> </ul> <h3>Code Refactoring</h3> <ul> <li>remove incorrect private underscore prefix from public methods (<a href="8cfc9059d3">8cfc905</a>)</li> </ul> <h3>Features</h3> <ul> <li>add --snapshot-dirname option, close <a href="https://redirect.github.com/syrupy-project/syrupy/issues/810">#810</a> (<a href="27135c7c86">27135c7</a>)</li> <li>drop support for py3.8, raise min. pytest to v8 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/904">#904</a>) (<a href="a879ff15ad">a879ff1</a>)</li> <li>update min. python version to 3.10 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1024">#1024</a>) (<a href="16b4113cd5">16b4113</a>)</li> </ul> <h3>BREAKING CHANGES</h3> <ul> <li>The following methods have been renamed:</li> </ul> <p>SnapshotCollectionStorage</p> <ul> <li>_read_snapshot_collection -> read_snapshot_collection</li> <li>_read_snapshot_data_from_location -> read_snapshot_data_from_location</li> <li>_write_snapshot_collection -> write_snapshot_collection</li> <li>_get_file_basename -> get_file_basename</li> <li>_file_extension -> file_extension</li> </ul> <p>AmberDataSerializer</p> <ul> <li>_snapshot_sort_key -> snapshot_sort_key</li> </ul> <p>Renamed constants to improve clarity:</p> <p>constants</p> <ul> <li>SNAPSHOT_EMPTY_FOSSIL_KEY -> SNAPSHOT_EMPTY_COLLECTION_KEY</li> <li>SNAPSHOT_UNKNOWN_FOSSIL_KEY -> SNAPSHOT_UNKNOWN_COLLECTION_KEY</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="7096efdee6"><code>7096efd</code></a> chore(release): 5.1.0 [skip ci]</li> <li><a href="07aa00dd48"><code>07aa00d</code></a> chore(deps): update dependency attrs to v25 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1063">#1063</a>)</li> <li><a href="1f29ae061e"><code>1f29ae0</code></a> docs: add bwrob as a contributor for code (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1064">#1064</a>)</li> <li><a href="df9bc8f6b3"><code>df9bc8f</code></a> feat: add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>)</li> <li><a href="841257deaf"><code>841257d</code></a> chore(deps): update dependency coverage to v7.13.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1061">#1061</a>)</li> <li><a href="2d8dfa7f7b"><code>2d8dfa7</code></a> chore(deps): update codecov/codecov-action action to v5.5.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1056">#1056</a>)</li> <li><a href="f5f9ef7702"><code>f5f9ef7</code></a> chore(deps): update dependency debugpy to v1.8.18 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1057">#1057</a>)</li> <li><a href="eaeb6ae11f"><code>eaeb6ae</code></a> chore(deps): update dependency pytest to v9.0.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1055">#1055</a>)</li> <li><a href="263b23b768"><code>263b23b</code></a> chore(deps): update python docker tag to v3.14.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1054">#1054</a>)</li> <li><a href="a0dd77b023"><code>a0dd77b</code></a> chore(deps): update actions/checkout action to v6.0.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1053">#1053</a>)</li> <li>Additional commits viewable in <a href="https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.1.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.12.12 to 0.15.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.0</h2> <h2>Release Notes</h2> <p>Released on 2026-02-03.</p> <p>Check out the <a href="https://astral.sh/blog/ruff-v0.15.0">blog post</a> for a migration guide and overview of the changes!</p> <h3>Breaking changes</h3> <ul> <li> <p>Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes.</p> </li> <li> <p>The linter now supports block suppression comments. For example, to suppress <code>N803</code> for all parameters in this function:</p> <pre lang="python"><code># ruff: disable[N803] def foo( legacyArg1, legacyArg2, legacyArg3, legacyArg4, ): ... # ruff: enable[N803] </code></pre> <p>See the <a href="https://docs.astral.sh/ruff/linter/#block-level">documentation</a> for more details.</p> </li> <li> <p>The <code>ruff:alpine</code> Docker image is now based on Alpine 3.23 (up from 3.21).</p> </li> <li> <p>The <code>ruff:debian</code> and <code>ruff:debian-slim</code> Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."</p> </li> <li> <p>Binaries for the <code>ppc64</code> (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.</p> </li> <li> <p>Ruff now resolves all <code>extend</code>ed configuration files before falling back on a default Python version.</p> </li> </ul> <h3>Stabilization</h3> <p>The following rules have been stabilized and are no longer in preview:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/blocking-http-call-httpx-in-async-function"><code>blocking-http-call-httpx-in-async-function</code></a> (<code>ASYNC212</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/blocking-path-method-in-async-function"><code>blocking-path-method-in-async-function</code></a> (<code>ASYNC240</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/blocking-input-in-async-function"><code>blocking-input-in-async-function</code></a> (<code>ASYNC250</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/map-without-explicit-strict"><code>map-without-explicit-strict</code></a> (<code>B912</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/if-exp-instead-of-or-operator"><code>if-exp-instead-of-or-operator</code></a> (<code>FURB110</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/single-item-membership-test"><code>single-item-membership-test</code></a> (<code>FURB171</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/missing-maxsplit-arg"><code>missing-maxsplit-arg</code></a> (<code>PLC0207</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/unnecessary-lambda"><code>unnecessary-lambda</code></a> (<code>PLW0108</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/unnecessary-empty-iterable-within-deque-call"><code>unnecessary-empty-iterable-within-deque-call</code></a> (<code>RUF037</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/in-empty-collection"><code>in-empty-collection</code></a> (<code>RUF060</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/legacy-form-pytest-raises"><code>legacy-form-pytest-raises</code></a> (<code>RUF061</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/non-octal-permissions"><code>non-octal-permissions</code></a> (<code>RUF064</code>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.0</h2> <p>Released on 2026-02-03.</p> <p>Check out the <a href="https://astral.sh/blog/ruff-v0.15.0">blog post</a> for a migration guide and overview of the changes!</p> <h3>Breaking changes</h3> <ul> <li> <p>Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes.</p> </li> <li> <p>The linter now supports block suppression comments. For example, to suppress <code>N803</code> for all parameters in this function:</p> <pre lang="python"><code># ruff: disable[N803] def foo( legacyArg1, legacyArg2, legacyArg3, legacyArg4, ): ... # ruff: enable[N803] </code></pre> <p>See the <a href="https://docs.astral.sh/ruff/linter/#block-level">documentation</a> for more details.</p> </li> <li> <p>The <code>ruff:alpine</code> Docker image is now based on Alpine 3.23 (up from 3.21).</p> </li> <li> <p>The <code>ruff:debian</code> and <code>ruff:debian-slim</code> Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."</p> </li> <li> <p>Binaries for the <code>ppc64</code> (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.</p> </li> <li> <p>Ruff now resolves all <code>extend</code>ed configuration files before falling back on a default Python version.</p> </li> </ul> <h3>Stabilization</h3> <p>The following rules have been stabilized and are no longer in preview:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/blocking-http-call-httpx-in-async-function"><code>blocking-http-call-httpx-in-async-function</code></a> (<code>ASYNC212</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/blocking-path-method-in-async-function"><code>blocking-path-method-in-async-function</code></a> (<code>ASYNC240</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/blocking-input-in-async-function"><code>blocking-input-in-async-function</code></a> (<code>ASYNC250</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/map-without-explicit-strict"><code>map-without-explicit-strict</code></a> (<code>B912</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/if-exp-instead-of-or-operator"><code>if-exp-instead-of-or-operator</code></a> (<code>FURB110</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/single-item-membership-test"><code>single-item-membership-test</code></a> (<code>FURB171</code>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="ce5f7b6127"><code>ce5f7b6</code></a> Bump 0.15.0 (<a href="https://redirect.github.com/astral-sh/ruff/issues/23055">#23055</a>)</li> <li><a href="b4e40f539c"><code>b4e40f5</code></a> [ty] Fix <code>__contains__</code> to respect descriptors (<a href="https://redirect.github.com/astral-sh/ruff/issues/23056">#23056</a>)</li> <li><a href="848cb72dc1"><code>848cb72</code></a> [ty] Fix narrowing of nonlocal variables with conditional assignments (<a href="https://redirect.github.com/astral-sh/ruff/issues/22966">#22966</a>)</li> <li><a href="da7f33af22"><code>da7f33a</code></a> [ty] Add a diagnostic for <code>Final</code> without assignment (<a href="https://redirect.github.com/astral-sh/ruff/issues/23001">#23001</a>)</li> <li><a href="e65f9a6b03"><code>e65f9a6</code></a> Document markdown formatting feature (<a href="https://redirect.github.com/astral-sh/ruff/issues/22990">#22990</a>)</li> <li><a href="c0c1b985c9"><code>c0c1b98</code></a> Format markdown code blocks with line-by-line regex parse (<a href="https://redirect.github.com/astral-sh/ruff/issues/22996">#22996</a>)</li> <li><a href="9f8f3e196b"><code>9f8f3e1</code></a> Allow positional-only params with defaults in method overrides (<a href="https://redirect.github.com/astral-sh/ruff/issues/23037">#23037</a>)</li> <li><a href="ef83810e11"><code>ef83810</code></a> [ty] ecosystem-analyzer: Support bare git repositories (<a href="https://redirect.github.com/astral-sh/ruff/issues/23054">#23054</a>)</li> <li><a href="54dfee4cb8"><code>54dfee4</code></a> Customize where the <code>fix_title</code> sub-diagnostic appears (<a href="https://redirect.github.com/astral-sh/ruff/issues/23044">#23044</a>)</li> <li><a href="b53460799b"><code>b534607</code></a> 2026 Ruff Formatter Style (<a href="https://redirect.github.com/astral-sh/ruff/issues/22735">#22735</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/0.12.12...0.15.0">compare view</a></li> </ul> </details> <br /> Updates `mypy` from 1.18.2 to 1.19.1 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's changelog</a>.</em></p> <blockquote> <h3>Mypy 1.19.1</h3> <ul> <li>Fix noncommutative joins with bounded TypeVars (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/20345">20345</a>)</li> <li>Respect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR <a href="https://redirect.github.com/python/mypy/pull/20372">20372</a>)</li> <li>Allow <code>types.NoneType</code> in match cases (A5rocks, PR <a href="https://redirect.github.com/python/mypy/pull/20383">20383</a>)</li> <li>Fix mypyc generator regression with empty tuple (BobTheBuidler, PR <a href="https://redirect.github.com/python/mypy/pull/20371">20371</a>)</li> <li>Fix crash involving Unpack-ed TypeVarTuple (Shantanu, PR <a href="https://redirect.github.com/python/mypy/pull/20323">20323</a>)</li> <li>Fix crash on star import of redefinition (Ivan Levkivskyi, PR <a href="https://redirect.github.com/python/mypy/pull/20333">20333</a>)</li> <li>Fix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR <a href="https://redirect.github.com/python/mypy/pull/20334">20334</a>)</li> <li>Fail with an explicit error on PyPy (Ivan Levkivskyi, PR <a href="https://redirect.github.com/python/mypy/pull/20389">20389</a>)</li> </ul> <h3>Acknowledgements</h3> <p>Thanks to all mypy contributors who contributed to this release:</p> <ul> <li>A5rocks</li> <li>BobTheBuidler</li> <li>bzoracler</li> <li>Chainfire</li> <li>Christoph Tyralla</li> <li>David Foster</li> <li>Frank Dana</li> <li>Guo Ci</li> <li>iap</li> <li>Ivan Levkivskyi</li> <li>James Hilton-Balfe</li> <li>jhance</li> <li>Joren Hammudoglu</li> <li>Jukka Lehtosalo</li> <li>KarelKenens</li> <li>Kevin Kannammalil</li> <li>Marc Mueller</li> <li>Michael Carlstrom</li> <li>Michael J. Sullivan</li> <li>Piotr Sawicki</li> <li>Randolf Scholz</li> <li>Shantanu</li> <li>Sigve Sebastian Farstad</li> <li>sobolevn</li> <li>Stanislav Terliakov</li> <li>Stephen Morton</li> <li>Theodore Ando</li> <li>Thiago J. Barbalho</li> <li>wyattscarpenter</li> </ul> <p>I’d also like to thank my employer, Dropbox, for supporting mypy development.</p> <h2>Mypy 1.18</h2> <p>We’ve just uploaded mypy 1.18.1 to the Python Package Index (<a href="https://pypi.org/project/mypy/">PyPI</a>). Mypy is a static type checker for Python. This release includes new features, performance</p> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="412c19a6bd"><code>412c19a</code></a> Bump version to 1.19.1</li> <li><a href="20aea0a6ca"><code>20aea0a</code></a> Update changelog for 1.19.1 (<a href="https://redirect.github.com/python/mypy/issues/20414">#20414</a>)</li> <li><a href="2b23b50752"><code>2b23b50</code></a> Serialize raw errors in cache metas (<a href="https://redirect.github.com/python/mypy/issues/20372">#20372</a>)</li> <li><a href="f60f90fb88"><code>f60f90f</code></a> Fail on PyPy in main instead of setup.py (<a href="https://redirect.github.com/python/mypy/issues/20389">#20389</a>)</li> <li><a href="58d485b4ea"><code>58d485b</code></a> Fail with an explicit error on PyPy (<a href="https://redirect.github.com/python/mypy/issues/20384">#20384</a>)</li> <li><a href="a4b31a2678"><code>a4b31a2</code></a> Allow <code>types.NoneType</code> in match cases (<a href="https://redirect.github.com/python/mypy/issues/20383">#20383</a>)</li> <li><a href="8a6eff4784"><code>8a6eff4</code></a> [mypyc] fix generator regression with empty tuple (<a href="https://redirect.github.com/python/mypy/issues/20371">#20371</a>)</li> <li><a href="70eceea682"><code>70eceea</code></a> Fix noncommutative joins with bounded TypeVars (<a href="https://redirect.github.com/python/mypy/issues/20345">#20345</a>)</li> <li><a href="3890fc49bf"><code>3890fc4</code></a> Fix crash involving Unpack-ed TypeVarTuple (<a href="https://redirect.github.com/python/mypy/issues/20323">#20323</a>)</li> <li><a href="c93d917a86"><code>c93d917</code></a> Fix crash on star import of redefinition (<a href="https://redirect.github.com/python/mypy/issues/20333">#20333</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/mypy/compare/v1.18.2...v1.19.1">compare view</a></li> </ul> </details> <br /> Updates `pytest` from 8.4.2 to 9.0.2 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>9.0.2</h2> <h1>pytest 9.0.2 (2025-12-06)</h1> <h2>Bug fixes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13896">#13896</a>: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.</p> <p>You may enable it again by passing <code>-p terminalprogress</code>. We may enable it by default again once compatibility improves in the future.</p> <p>Additionally, when the environment variable <code>TERM</code> is <code>dumb</code>, the escape codes are no longer emitted, even if the plugin is enabled.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13904">#13904</a>: Fixed the TOML type of the <code>tmp_path_retention_count</code> settings in the API reference from number to string.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13946">#13946</a>: The private <code>config.inicfg</code> attribute was changed in a breaking manner in pytest 9.0.0. Due to its usage in the ecosystem, it is now restored to working order using a compatibility shim. It will be deprecated in pytest 9.1 and removed in pytest 10.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/13965">#13965</a>: Fixed quadratic-time behavior when handling <code>unittest</code> subtests in Python 3.10.</p> </li> </ul> <h2>Improved documentation</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/4492">#4492</a>: The API Reference now contains cross-reference-able documentation of <code>pytest's command-line flags <command-line-flags></code>.</li> </ul> <h2>9.0.1</h2> <h1>pytest 9.0.1 (2025-11-12)</h1> <h2>Bug fixes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13895">#13895</a>: Restore support for skipping tests via <code>raise unittest.SkipTest</code>.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13896">#13896</a>: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13904">#13904</a>: Fixed the TOML type of the verbosity settings in the API reference from number to string.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13910">#13910</a>: Fixed <!-- raw HTML omitted -->UserWarning: Do not expect file_or_dir<!-- raw HTML omitted --> on some earlier Python 3.12 and 3.13 point versions.</li> </ul> <h2>Packaging updates and notes for downstreams</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13933">#13933</a>: The tox configuration has been adjusted to make sure the desired version string can be passed into its <code>package_env</code> through the <code>SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST</code> environment variable as a part of the release process -- by <code>webknjaz</code>.</li> </ul> <h2>Contributor-facing changes</h2> <ul> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13891">#13891</a>, <a href="https://redirect.github.com/pytest-dev/pytest/issues/13942">#13942</a>: The CI/CD part of the release automation is now capable of creating GitHub Releases without having a Git checkout on disk -- by <code>bluetech</code> and <code>webknjaz</code>.</li> <li><a href="https://redirect.github.com/pytest-dev/pytest/issues/13933">#13933</a>: The tox configuration has been adjusted to make sure the desired version string can be passed into its <code>package_env</code> through the <code>SETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST</code> environment variable as a part of the release process -- by <code>webknjaz</code>.</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="3d10b5148e"><code>3d10b51</code></a> Prepare release version 9.0.2</li> <li><a href="188750b725"><code>188750b</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14030">#14030</a> from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...</li> <li><a href="b7d7bef90c"><code>b7d7bef</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14014">#14014</a> from bluetech/compat-note</li> <li><a href="bd08e85ac7"><code>bd08e85</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14013">#14013</a> from pytest-dev/patchback/backports/9.0.x/922b60377...</li> <li><a href="bc78386299"><code>bc78386</code></a> Add CLI options reference documentation (<a href="https://redirect.github.com/pytest-dev/pytest/issues/13930">#13930</a>)</li> <li><a href="5a4e398ce8"><code>5a4e398</code></a> Fix docs typo (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14005">#14005</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14008">#14008</a>)</li> <li><a href="d7ae6df394"><code>d7ae6df</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/14006">#14006</a> from pytest-dev/maintenance/update-plugin-list-tmpl...</li> <li><a href="556f6a22e1"><code>556f6a2</code></a> pre-commit: fix rst-lint after new release (<a href="https://redirect.github.com/pytest-dev/pytest/issues/13999">#13999</a>) (<a href="https://redirect.github.com/pytest-dev/pytest/issues/14001">#14001</a>)</li> <li><a href="c60fbe63a2"><code>c60fbe6</code></a> Fix quadratic-time behavior when handling <code>unittest</code> subtests in Python 3.10 ...</li> <li><a href="73d9b01118"><code>73d9b01</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/13995">#13995</a> from nicoddemus/patchback/backports/9.0.x/1b5200c0f...</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/8.4.2...9.0.2">compare view</a></li> </ul> </details> <br /> Updates `syrupy` from 4.9.1 to 5.1.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/releases">syrupy's releases</a>.</em></p> <blockquote> <h2>v5.1.0</h2> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">5.1.0</a> (2026-01-25)</h1> <h3>Features</h3> <ul> <li>add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>) (<a href="df9bc8f6b3">df9bc8f</a>)</li> </ul> <h2>v5.0.0</h2> <h2>Syrupy 5.0.0</h2> <p><em>(2025-09-28)</em></p> <p>This release introduces new features, bug fixes, and a major license change. It also includes several <strong>breaking changes</strong>, so please review those carefully before upgrading.</p> <hr /> <h3>New Features ✨</h3> <ul> <li><strong>Add <code>--snapshot-dirname</code> option:</strong> A new option, <code>--snapshot-dirname</code>, is now available to change the default directory snapshots are stored in. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/810">#810</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/810">syrupy-project/syrupy#810</a>))</li> <li><strong>Remove private underscore prefix:</strong> The unnecessary underscore prefixes have been removed from public methods for better code clarity. ([<a href="8cfc9059d3">8cfc905</a>](<a href="8cfc9059d3</a>))</li> </ul> <hr /> <h3>Bug Fixes 🐛</h3> <ul> <li><strong>Fix terminal summary for <code>xdist</code> workers:</strong> Resolves an issue where the terminal summary was not displayed correctly with <code>xdist</code> workers. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/978">#978</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/978">syrupy-project/syrupy#978</a>))</li> <li><strong>Ensure <code>pytest_assertrepr_compare</code> hook is called first:</strong> This change ensures that Syrupy's assertion hook takes precedence, improving compatibility with other plugins. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/984">#984</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/984">syrupy-project/syrupy#984</a>))</li> </ul> <hr /> <h3>Breaking Changes ⚠️</h3> <ul> <li> <p><strong>License change:</strong> The project has switched to the more permissive <strong>MIT license</strong>. This change applies to all versions from 5.0.0 and beyond. If you need to use the previous Apache 2.0 license, you must continue to use Syrupy versions 4.x or earlier. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/945">#945</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/945">syrupy-project/syrupy#945</a>))</p> </li> <li> <p><strong>Python and pytest version requirements:</strong> Syrupy now requires <strong>Python 3.10</strong> or higher. Support for Python 3.8 has been dropped as it reached its end of life in October 2024. The minimum required version of <strong>pytest is v8</strong>. ([<a href="https://redirect.github.com/syrupy-project/syrupy/issues/904">#904</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/904">syrupy-project/syrupy#904</a>), [<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1024">#1024</a>](<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1024">syrupy-project/syrupy#1024</a>))</p> </li> <li> <p><strong>Method and constant name changes:</strong> Several methods and constants have been renamed for improved clarity and to align with public API standards.</p> <ul> <li> <p><strong><code>SnapshotCollectionStorage</code></strong></p> <ul> <li><code>_read_snapshot_collection</code> -> <code>read_snapshot_collection</code></li> <li><code>_read_snapshot_data_from_location</code> -> <code>read_snapshot_data_from_location</code></li> <li><code>_write_snapshot_collection</code> -> <code>write_snapshot_collection</code></li> <li><code>_get_file_basename</code> -> <code>get_file_basename</code></li> <li><code>_file_extension</code> -> <code>file_extension</code></li> </ul> </li> <li> <p><strong><code>AmberDataSerializer</code></strong></p> <ul> <li><code>_snapshot_sort_key</code> -> <code>snapshot_sort_key</code></li> </ul> </li> <li> <p><strong>Constants</strong></p> <ul> <li><code>SNAPSHOT_EMPTY_FOSSIL_KEY</code> -> <code>SNAPSHOT_EMPTY_COLLECTION_KEY</code></li> <li><code>SNAPSHOT_UNKNOWN_FOSSIL_KEY</code> -> <code>SNAPSHOT_UNKNOWN_COLLECTION_KEY</code></li> </ul> </li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/syrupy-project/syrupy/blob/main/CHANGELOG.md">syrupy's changelog</a>.</em></p> <blockquote> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v5.0.0...v5.1.0">5.1.0</a> (2026-01-25)</h1> <h3>Features</h3> <ul> <li>add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>) (<a href="df9bc8f6b3">df9bc8f</a>)</li> </ul> <h1><a href="https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.0.0">5.0.0</a> (2025-09-28)</h1> <ul> <li>Switch to MIT license (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/945">#945</a>) (<a href="d74d340f88">d74d340</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li>Block terminal summary for xdist workers. (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/978">#978</a>) (<a href="33a848df7c">33a848d</a>)</li> <li>ensure syrupy's pytest_assertrepr_compare hook is called first. (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/984">#984</a>) (<a href="eb0024d339">eb0024d</a>)</li> </ul> <h3>Code Refactoring</h3> <ul> <li>remove incorrect private underscore prefix from public methods (<a href="8cfc9059d3">8cfc905</a>)</li> </ul> <h3>Features</h3> <ul> <li>add --snapshot-dirname option, close <a href="https://redirect.github.com/syrupy-project/syrupy/issues/810">#810</a> (<a href="27135c7c86">27135c7</a>)</li> <li>drop support for py3.8, raise min. pytest to v8 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/904">#904</a>) (<a href="a879ff15ad">a879ff1</a>)</li> <li>update min. python version to 3.10 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1024">#1024</a>) (<a href="16b4113cd5">16b4113</a>)</li> </ul> <h3>BREAKING CHANGES</h3> <ul> <li>The following methods have been renamed:</li> </ul> <p>SnapshotCollectionStorage</p> <ul> <li>_read_snapshot_collection -> read_snapshot_collection</li> <li>_read_snapshot_data_from_location -> read_snapshot_data_from_location</li> <li>_write_snapshot_collection -> write_snapshot_collection</li> <li>_get_file_basename -> get_file_basename</li> <li>_file_extension -> file_extension</li> </ul> <p>AmberDataSerializer</p> <ul> <li>_snapshot_sort_key -> snapshot_sort_key</li> </ul> <p>Renamed constants to improve clarity:</p> <p>constants</p> <ul> <li>SNAPSHOT_EMPTY_FOSSIL_KEY -> SNAPSHOT_EMPTY_COLLECTION_KEY</li> <li>SNAPSHOT_UNKNOWN_FOSSIL_KEY -> SNAPSHOT_UNKNOWN_COLLECTION_KEY</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="7096efdee6"><code>7096efd</code></a> chore(release): 5.1.0 [skip ci]</li> <li><a href="07aa00dd48"><code>07aa00d</code></a> chore(deps): update dependency attrs to v25 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1063">#1063</a>)</li> <li><a href="1f29ae061e"><code>1f29ae0</code></a> docs: add bwrob as a contributor for code (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1064">#1064</a>)</li> <li><a href="df9bc8f6b3"><code>df9bc8f</code></a> feat: add serializer plugin system; plugins for data models (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1062">#1062</a>)</li> <li><a href="841257deaf"><code>841257d</code></a> chore(deps): update dependency coverage to v7.13.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1061">#1061</a>)</li> <li><a href="2d8dfa7f7b"><code>2d8dfa7</code></a> chore(deps): update codecov/codecov-action action to v5.5.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1056">#1056</a>)</li> <li><a href="f5f9ef7702"><code>f5f9ef7</code></a> chore(deps): update dependency debugpy to v1.8.18 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1057">#1057</a>)</li> <li><a href="eaeb6ae11f"><code>eaeb6ae</code></a> chore(deps): update dependency pytest to v9.0.2 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1055">#1055</a>)</li> <li><a href="263b23b768"><code>263b23b</code></a> chore(deps): update python docker tag to v3.14.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1054">#1054</a>)</li> <li><a href="a0dd77b023"><code>a0dd77b</code></a> chore(deps): update actions/checkout action to v6.0.1 (<a href="https://redirect.github.com/syrupy-project/syrupy/issues/1053">#1053</a>)</li> <li>Additional commits viewable in <a href="https://github.com/syrupy-project/syrupy/compare/v4.9.1...v5.1.0">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.14.11 to 0.15.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/releases">ruff's releases</a>.</em></p> <blockquote> <h2>0.15.0</h2> <h2>Release Notes</h2> <p>Released on 2026-02-03.</p> <p>Check out the <a href="https://astral.sh/blog/ruff-v0.15.0">blog post</a> for a migration guide and overview of the changes!</p> <h3>Breaking changes</h3> <ul> <li> <p>Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes.</p> </li> <li> <p>The linter now supports block suppression comments. For example, to suppress <code>N803</code> for all parameters in this function:</p> <pre lang="python"><code># ruff: disable[N803] def foo( legacyArg1, legacyArg2, legacyArg3, legacyArg4, ): ... # ruff: enable[N803] </code></pre> <p>See the <a href="https://docs.astral.sh/ruff/linter/#block-level">documentation</a> for more details.</p> </li> <li> <p>The <code>ruff:alpine</code> Docker image is now based on Alpine 3.23 (up from 3.21).</p> </li> <li> <p>The <code>ruff:debian</code> and <code>ruff:debian-slim</code> Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."</p> </li> <li> <p>Binaries for the <code>ppc64</code> (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.</p> </li> <li> <p>Ruff now resolves all <code>extend</code>ed configuration files before falling back on a default Python version.</p> </li> </ul> <h3>Stabilization</h3> <p>The following rules have been stabilized and are no longer in preview:</p> <ul> <li><a href="https://docs.astral.sh/ruff/rules/blocking-http-call-httpx-in-async-function"><code>blocking-http-call-httpx-in-async-function</code></a> (<code>ASYNC212</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/blocking-path-method-in-async-function"><code>blocking-path-method-in-async-function</code></a> (<code>ASYNC240</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/blocking-input-in-async-function"><code>blocking-input-in-async-function</code></a> (<code>ASYNC250</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/map-without-explicit-strict"><code>map-without-explicit-strict</code></a> (<code>B912</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/if-exp-instead-of-or-operator"><code>if-exp-instead-of-or-operator</code></a> (<code>FURB110</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/single-item-membership-test"><code>single-item-membership-test</code></a> (<code>FURB171</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/missing-maxsplit-arg"><code>missing-maxsplit-arg</code></a> (<code>PLC0207</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/unnecessary-lambda"><code>unnecessary-lambda</code></a> (<code>PLW0108</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/unnecessary-empty-iterable-within-deque-call"><code>unnecessary-empty-iterable-within-deque-call</code></a> (<code>RUF037</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/in-empty-collection"><code>in-empty-collection</code></a> (<code>RUF060</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/legacy-form-pytest-raises"><code>legacy-form-pytest-raises</code></a> (<code>RUF061</code>)</li> <li><a href="https://docs.astral.sh/ruff/rules/non-octal-permissions"><code>non-octal-permissions</code></a> (<code>RUF064</code>)</li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's changelog</a>.</em></p> <blockquote> <h2>0.15.0</h2> <p>Released on 2026-02-03.</p> <p>Check out the <a href="https://astral.sh/blog/ruff-v0.15.0">blog post</a> for a migration guide and overview of the changes!</p> <h3>Breaking changes</h3> <ul> <li> <p>Ruff now formats your code according to the 2026 style guide. See the formatter section below or in the blog post for a detailed list of changes.</p> </li> <li> <p>The linter now supports block suppression comments. For example, to suppress <code>N803</code> for all parameters in this function:</p> <pre lang="python"><code># ruff: disable[N803] def foo( legacyArg1, legacyArg2, legacyArg3, legacyArg4, ): ... # ruff: enable[N803] </code></pre> <p>See the <a href="https://docs.astral.sh/ruff/linter/#block-level">documentation</a> for more details.</p> </li> <li> <p>The <code>ruff:alpine</code> Docker image is now based on Alpine 3.23 (up from 3.21).</p> </li> <li> <p>The <code>ruff:debian</code> and <code>ruff:debian-slim</code> Docker images are now based on Debian 13 "Trixie" instead of Debian 12 "Bookworm."</p> </li> <li> <p>Binaries for the <code>ppc64</code> (64-bit big-endian PowerPC) architecture are no longer included in our releases. It should still be possible to build Ruff manually for this platform, if needed.</p> </li> <li> <p>Ruff now resolves all <code>extend</code>ed configuration files before falling back on a default Python version.</p> </li> </ul> <h3>Stabilization</h3> <p>The following rules have been stabilized and are no longer in preview:</p> <ul> <li><a href="h... _Description has been truncated_ --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: John Kennedy <65985482+jkennedyvz@users.noreply.github.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Packages
Important
This repository is structured as a monorepo, with various packages located in this libs/ directory. Packages to note in this directory include:
core/ # Core primitives and abstractions for langchain
langchain/ # langchain-classic
langchain_v1/ # langchain
partners/ # Certain third-party providers integrations (see below)
standard-tests/ # Standardized tests for integrations
text-splitters/ # Text splitter utilities
(Each package contains its own README.md file with specific details about that package.)
Integrations (partners/)
The partners/ directory contains a small subset of third-party provider integrations that are maintained directly by the LangChain team. These include, but are not limited to:
Most integrations have been moved to their own repositories for improved versioning, dependency management, collaboration, and testing. This includes packages from popular providers such as Google and AWS. Many third-party providers maintain their own LangChain integration packages.
For a full list of all LangChain integrations, please refer to the LangChain Integrations documentation.