Skip to content

Conversation

@pyup-bot
Copy link
Collaborator

Update sphinx from 7.3.7 to 8.3.0.

Changelog

8.3.0

==============================

Dependencies
------------

Incompatible changes
--------------------

Deprecated
----------

Features added
--------------

Bugs fixed
----------

Testing
-------
Links

Update furo from 2024.5.6 to 2024.8.6.

Changelog

2024.08.06

- ✨ Add support for Sphinx 8
- ✨ Add smoother transitions between breakpoints
- Increase specificity of table-wrapper selector
- Avoid page breaks inside paragraphs

2024.07.18

- Improve how icons are handled and aligned.
- Improve scroll event handler.
- Hide the copybutton by default.
- Fix `source_view_link` configuration handling.
- Fix close tag on pencil icon.
Links

Update sphinx-autobuild from 2024.4.16 to 2024.10.3.

Changelog

2024.10.03

-----------------------

* Improve error handling for failures in pre-build commands.

2024.10.02

-----------------------

* Show the changed paths that triggered the rebuild.

2024.09.19

-----------------------

* Fix path filtering on Windows by normalising path separators.
* Filter various directories by default (``.git``, ``venv``, etc).
* Serve the correct directory when using make mode (``-M``).

2024.09.18

-----------------------

* Run Sphinx through the Python entry point rather than the binary on PATH.

2024.09.17

-----------------------

* Relax checks for paths that aren't required to exist.

2024.09.03

-----------------------

* Fix support for Python 3.9.
* Fix running ``sphinx-autobuild`` via entry point scripts.
* Run ``sphinx-build`` in a subprocess to mitigate autdoc issues.
* Support the ``-M`` 'make mode' option for ``sphinx-build``.
Links

Update sphinx-click from 5.0.1 to 6.0.0.

The bot wasn't able to find a changelog for this release. Got an idea?

Links

Update sphinx-autodoc-typehints from 2.3.0 to 3.2.0.

Changelog

3.2.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Fixed broken changelog link by agronholm in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/530
* Fix issue 481 by nineteendo in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/533
* Don't add :rtype: None by grayjk in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/538
* Place rtype after directive by grayjk in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/537

New Contributors
* agronholm made their first contribution in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/530
* nineteendo made their first contribution in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/533
* grayjk made their first contribution in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/538

**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.1.0...3.2.0

3.1.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Support Sphinx 8.2.0 - drop 3.10 support because Sphinx does by b-kamphorst in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/525

New Contributors
* b-kamphorst made their first contribution in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/525

**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.0.1...3.1.0

3.0.1

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Fix roles for `types` module by flying-sheep in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/516
* Update Ruff to 0.9.1 by flying-sheep in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/517


**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/3.0.0...3.0.1

3.0.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* 🐛 Replace docutils private API use w/ public by webknjaz in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/507
* Drop support for nptyping by gaborbernat in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/514

New Contributors
* webknjaz made their first contribution in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/507

**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.5.0...3.0.0

2.5.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Fix the type checker by gaborbernat in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/493
* Apply typehints_formatter to signature by Priyansh121096 in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/494

New Contributors
* Priyansh121096 made their first contribution in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/494

**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.4...2.5.0

2.4.4

<!-- Release notes generated using configuration in .github/release.yml at main -->



**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.3...2.4.4

2.4.3

<!-- Release notes generated using configuration in .github/release.yml at main -->



**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.2...2.4.3

2.4.2

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Improve the CI by gaborbernat in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/485


**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.1...2.4.2

2.4.1

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Fix placement of return type when there is a doctest by hoodmane in https://github.com/tox-dev/sphinx-autodoc-typehints/pull/482


**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.4.0...2.4.1

2.4.0

<!-- Release notes generated using configuration in .github/release.yml at main -->

- Drop 3.9 support
- Add 3.13 support
- Bump dependencies

**Full Changelog**: https://github.com/tox-dev/sphinx-autodoc-typehints/compare/2.3.0...2.4.0
Links

Update setuptools from 70.0.0 to 80.0.0.

Changelog

80.0.0

=======

Bugfixes
--------

- Update test to honor new behavior in importlib_metadata 8.7. (4961)


Deprecations and Removals
-------------------------

- Removed support for the easy_install command including the sandbox module. (2908)
- Develop command no longer uses easy_install, but instead defers execution to pip (which then will re-invoke Setuptools via PEP 517 to build the editable wheel). Most of the options to develop are dropped. This is the final warning before the command is dropped completely in a few months. Use-cases relying on 'setup.py develop' should pin to older Setuptools version or migrate to modern build tooling. (4955)

79.0.1

=======

Bugfixes
--------

- Merge with pypa/distutils24bd3179b including fix for pypa/distutils355.

79.0.0

=======

Deprecations and Removals
-------------------------

- Removed support for 'legacy-editable' installs. (917)

78.1.1

=======

Bugfixes
--------

- More fully sanitized the filename in PackageIndex._download. (4946)

78.1.0

=======

Features
--------

- Restore access to _get_vc_env with a warning. (4874)

78.0.2

=======

Bugfixes
--------

- Postponed removals of deprecated dash-separated and uppercase fields in ``setup.cfg``.
All packages with deprecated configurations are advised to move before 2026. (4911)

78.0.1

=======

Misc
----

- 4909

78.0.0

=======

Bugfixes
--------

- Reverted distutils changes that broke the monkey patching of command classes. (4902)


Deprecations and Removals
-------------------------

- Setuptools no longer accepts options containing uppercase or dash characters in ``setup.cfg``.
Please ensure to write the options in ``setup.cfg`` using the :wiki:`lower_snake_case <Snake_case>` convention
(e.g. ``Name => name``, ``install-requires => install_requires``).
This is a follow-up on deprecations introduced in
`v54.1.0 <https://setuptools.pypa.io/en/latest/history.html#v54-1-0>`_ (see 1608) and
`v54.1.1 <https://setuptools.pypa.io/en/latest/history.html#v54-1-1>`_ (see 2592).

.. note::
  This change *does not affect configurations in* ``pyproject.toml``
  (which uses the :wiki:`lower-kebab-case <Letter_caseKebab_case>` convention following the precedent set in :pep:`517`/:pep:`518`). (4870)


Misc
----

- 4904

77.0.3

=======

Bugfixes
--------

- Temporarily convert error for license glob patterns containing ``../`` into a deprecation warning
to allow an accomodation period. (4896)
- Better error messages for ``packaging.licenses`` import errors in environments with ``packaging<24.2``\.
The import statement was also deferred to spare users that are not using
license expressions. (4898)
- Avoided eagerly raising an exception when ``license-files`` is defined
simultaneously inside and outside of ``pyproject.toml``.
Instead we rely on the existing deprecation error. (4899)

77.0.2

=======

Bugfixes
--------

- Restore ``distutils.ccompiler._default_compilers`` -- by :user:`ManiacDC` (4876)
- Fixed copy pasta in ``msvc.shared_lib_format``\. (4885)

77.0.1

=======

Bugfixes
--------

- Manually fix news fragment entries causing CI to crash when building docs. (4891)

77.0.0

=======

Features
--------

- Added initial support for license expression (PEP :pep:`639 <639add-license-expression-field>`). -- by :user:`cdce8p` (4706)
- Store ``License-File``\s in ``.dist-info/licenses`` subfolder and added support for recursive globs for ``license_files`` (PEP :pep:`639 <639add-license-expression-field>`). -- by :user:`cdce8p` (4728)
- Bump core metadata version to ``2.4``\. -- by :user:`cdce8p` (4830)
- Updated vendored copy of ``wheel`` to ``v0.45.1``\. (4869)


Deprecations and Removals
-------------------------

- Added initial implementation of :pep:`639`.
Users relying on pre- :pep:`639` implementation details
(like precise license file paths inside ``dist-info`` directory)
may need to adjust their code base to avoid problems.
Deprecations and stronger validation were also introduced (4829).
- Added exception (or warning) when deprecated license classifiers are used,
according to PEP :pep:`639 <639deprecate-license-classifiers>`. (4833)
- Deprecated ``tools.setuptools.license-files`` in favor of ``project.license-files``
and added exception if ``project.license-files`` and ``tools.setuptools.license-files``
are used together. -- by :user:`cdce8p` (4837)
- Deprecated ``project.license`` as a TOML table in
``pyproject.toml``\. Users are expected to move towards using
``project.license-files`` and/or SPDX expressions (as strings) in
``project.license``\.
See PEP :pep:`639 <639deprecate-license-key-table-subkeys>`. (4840)
- Added simple validation for given glob patterns in ``license-files``\:
a warning will be generated if no file is matched.
Invalid glob patterns can raise an exception.
-- thanks :user:`cdce8p` for contributions. (4838)


Misc
----

- 4734

76.1.0

=======

Features
--------

- In setuptools.msvc.EnvironmentInfo, now honor the correct paths when on an ARM host. (4786)


Bugfixes
--------

- Restored implicit distutils.ccompiler import for g-ir-scanner. (4871)
- Restore ``distutils.ccompiler.compiler_class`` -- by :user:`Avasam` (4876)

76.0.0

=======

Deprecations and Removals
-------------------------

- Synced with pypa/distutils5589d7527 including a simplified shebang generation when building scripts (4863). (4865)

75.9.1

=======

Bugfixes
--------

- Fix ImportError in distutils when configuring for linking. (4866)

75.9.0

=======

Features
--------

- Synced with pypa/distutils91f75bb98 including exporting of PyInit_pkg (pypa/distutils327) and a refactoring of the compiler classes into distutils.compilers (pypa/distutils295). (4852)

75.8.2

=======

Bugfixes
--------

- Fixed ``pkg_resources.require(...)`` to also consider standardised
``dist-info`` directories. (4856)

75.8.1

=======

Bugfixes
--------

- Fix wheel file naming to follow binary distribution specification -- by :user:`di` (4766)
- Fixed crash generating error message printed when building wheels for the
free-threaded build using the limited API. -- by :user:`ngoldbaum` (4809)
- Fix documentation for recent CFLAGS distutils change. -- by :user:`thesamesam` (4836)

75.8.0

=======

Features
--------

- Implemented ``Dynamic`` field for core metadata (as introduced in PEP 643).
The existing implementation is currently experimental and the exact approach
may change in future releases. (4698)

75.7.0

=======

Features
--------

- Synced with pypa/distutilsc97a3db2f including better support for free threaded Python on Windows (pypa/distutils310), improved typing support, and linter accommodations. (4478)
- Synced with pypa/distutilsff11eed0c including bugfix for duplicate CFLAGS and adaption to support Python 3.13 is_abs in the C compiler (4669). (4790)

75.6.0

=======

Features
--------

- Preserve original ``PKG-INFO`` into ``METADATA`` when creating wheel
(instead of calling ``wheel.metadata.pkginfo_to_metadata``).
This helps to be more compliant with the flow specified in PEP 517. (4701)
- Changed the ``WindowsSdkVersion``, ``FrameworkVersion32`` and ``FrameworkVersion64`` properties of ``setuptools.msvc.PlatformInfo`` to return an empty `tuple` instead of `None` as a fallthrough case --  by :user:`Avasam` (4754)

75.5.0

=======

Features
--------

- Removed support for ``SETUPTOOLS_DANGEROUSLY_SKIP_PYPROJECT_VALIDATION``, as it
is deemed prone to errors. (4746)

75.4.0

=======

Features
--------

- Added support for the environment variable
``SETUPTOOLS_DANGEROUSLY_SKIP_PYPROJECT_VALIDATION=true``, allowing users to bypass
the validation of ``pyproject.toml``.
This option should be used only as a last resort when resolving dependency
issues, as it may lead to improper functioning.
Users who enable this setting are responsible for ensuring that ``pyproject.toml``
complies with setuptools requirements. (4611)

.. attention::
  This environment variable was removed in a later version of ``setuptools``.

- Require Python 3.9 or later. (4718)
- Remove dependency on ``importlib_resources``
and the vendored copy of the library.
Instead, ``setuptools`` consistently rely on stdlib's ``importlib.resources``
(available on Python 3.9+). (4718)
- Setuptools' ``bdist_wheel`` implementation no longer produces wheels with
the ``m`` SOABI flag (pymalloc-related).
This flag was removed on Python 3.8+ (see :obj:`sys.abiflags`). (4718)
- Updated vendored packaging version to 24.2. (4740)


Bugfixes
--------

- Merge with pypa/distutils251797602, including fix for dirutil.mkpath handling in pypa/distutils304.

75.3.2

=======

- Fixed version error in changelog.

75.3.1

=======

Bugfixes
--------

- Fix wheel file naming to follow binary distribution specification -- by :user:`di` (4877)

75.3.0

=======

Features
--------

- Allowed using `dict` as an ordered type in ``setuptools.dist.check_requirements`` -- by :user:`Avasam` (4575)


Bugfixes
--------

- Ensured methods in ``setuptools.modified`` preferably raise a consistent
``distutils.errors.DistutilsError`` type
(except in the deprecated use case of ``SETUPTOOLS_USE_DISTUTILS=stdlib``)
-- by :user:`Avasam` (4567)
- Fix the ABI tag when building a wheel using the debug build of Python 3.13 on Windows. Previously, the ABI tag was missing the ``"d"`` flag. (4674)
- Fix clashes for ``optional-dependencies`` in ``pyproject.toml`` and
``extra_requires`` in ``setup.cfg/setup.py``.
As per PEP 621, ``optional-dependencies`` have to be honoured and dynamic
behaviour is not allowed. (4696)


Misc
----

- 4560

75.2.0

=======

Features
--------

- Made errors when parsing ``Distribution`` data more explicit about the expected type (``tuple[str, ...] | list[str]``) -- by :user:`Avasam` (4578)


Bugfixes
--------

- Fix a `TypeError` when a ``Distribution``'s old included attribute was a `tuple` -- by :user:`Avasam` (4578)
- Add workaround for ``bdist_wheel --dist-info-dir`` errors
when customisation does not inherit from setuptools. (4684)

75.1.1

=======

Bugfixes
--------

- Re-use pre-existing ``.dist-info`` dir when creating wheels via the build backend APIs (PEP 517) and the ``metadata_directory`` argument is passed -- by :user:`pelson`. (1825)
- Changed ``egg_info`` command to avoid adding an empty ``.egg-info`` directory
while iterating over entry-points.
This avoids triggering integration problems with ``importlib.metadata``/``importlib_metadata``
(reference: pypa/pyproject-hooks206). (4680)

75.1.0

=======

Features
--------

- Deprecated ``bdist_wheel.universal`` configuration. (4617)


Bugfixes
--------

- Removed reference to upload_docs module in entry points. (4650)

75.0.0

=======

Features
--------

- Declare also the dependencies used by distutils (adds jaraco.collections).


Deprecations and Removals
-------------------------

- Removed upload_docs command. (2971)
- Merge with pypa/distutils7283751. Removed the register and upload commands and the config module that backs them (pypa/distutils294). Removed the borland compiler. Replaced vendored dependencies with natural dependencies. Cygwin C compiler now gets compilers from sysconfig (pypa/distutils296). (4649)

74.1.3

=======

Bugfixes
--------

- Fix cross-platform compilation using ``distutils._msvccompiler.MSVCCompiler`` -- by :user:`saschanaz` and :user:`Avasam` (4648)

74.1.2

=======

Bugfixes
--------

- Fixed TypeError in sdist filelist processing by adding support for pathlib Paths for the build_base. (4615)
- Removed degraded and deprecated ``test_integration`` (easy_install) from the test suite. (4632)

74.1.1

=======

Bugfixes
--------

- Fixed TypeError in ``msvc.EnvironmentInfo.return_env`` when no runtime redistributables are installed. (1902)

74.1.0

=======

Features
--------

- Added support for defining ``ext-modules`` via ``pyproject.toml``
(**EXPERIMENTAL**, may change in future releases). (4568)


Bugfixes
--------

- Merge with pypa/distutils3dcdf8567, removing the duplicate vendored copy of packaging. (4622)
- Restored ``setuptools.msvc.Environmentinfo`` as it is used externally. (4625)

74.0.0

=======

Features
--------

- Changed the type of error raised by ``setuptools.command.easy_install.CommandSpec.from_param`` on unsupported argument from `AttributeError` to `TypeError` -- by :user:`Avasam` (4548)
- Added detection of ARM64 variant of MSVC -- by :user:`saschanaz` (4553)
- Made ``setuptools.package_index.Credential`` a `typing.NamedTuple` -- by :user:`Avasam` (4585)
- Reraise error from ``setuptools.command.easy_install.auto_chmod`` instead of nonsensical ``TypeError: 'Exception' object is not subscriptable`` -- by :user:`Avasam` (4593)
- Fully typed all collection attributes in ``pkg_resources`` -- by :user:`Avasam` (4598)
- Automatically exclude ``.tox|.nox|.venv`` directories from ``sdist``. (4603)


Deprecations and Removals
-------------------------

- Removed the monkeypatching of distutils._msvccompiler. Now all compiler logic is consolidated in distutils. (4600)
- Synced with pypa/distutils58fe058e4, including consolidating Visual Studio 2017 support (4600, pypa/distutils289), removal of deprecated legacy MSVC compiler modules (pypa/distutils287), suppressing of errors when the home directory is missing (pypa/distutils278), removal of wininst binaries (pypa/distutils282). (4606)


Misc
----

- 4592

73.0.1

=======

Bugfixes
--------

- Remove `abc.ABCMeta` metaclass from abstract classes. `pypa/setuptools4503 <https://github.com/pypa/setuptools/pull/4503>`_ had an unintended consequence of causing potential ``TypeError: metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases`` -- by :user:`Avasam` (#4579)

73.0.0

=======

Features
--------

- Mark abstract base classes and methods with `abc.ABC` and `abc.abstractmethod` -- by :user:`Avasam` (4503)
- Changed the order of type checks in ``setuptools.command.easy_install.CommandSpec.from_param`` to support any `collections.abc.Iterable` of `str` param -- by :user:`Avasam` (4505)


Bugfixes
--------

- Prevent an error in ``bdist_wheel`` if ``compression`` is set to a `str` (even if valid) after finalizing options but before running the command. -- by :user:`Avasam` (4383)
- Raises an exception when ``py_limited_api`` is used in a build with
``Py_GIL_DISABLED``. This is currently not supported (python/cpython111506). (4420)
- Synced with pypa/distutils30b7331 including fix for modified check on empty sources (pypa/distutils284).


Deprecations and Removals
-------------------------

- ``setuptools`` is replacing the usages of :pypi:`ordered_set` with simple
instances of ``dict[Hashable, None]``. This is done to remove the extra
dependency and it is possible because since Python 3.7, ``dict`` maintain
insertion order. (4574)


Misc
----

- 4534, 4546, 4554, 4559, 4565

72.2.0

=======

Features
--------

- Merged with pypa/distutilsb7ee725f3 including: Support for Pathlike objects in data files and extensions (pypa/distutils272, pypa/distutils237), native support for C++ compilers (pypa/distuils228) and removed unused get_msvcr() (pypa/distutils274). (4538)

72.1.0

=======

Features
--------

- Restore the tests command and deprecate access to the module. (4519) (4520)

72.0.0

=======

Deprecations and Removals
-------------------------

- The test command has been removed. Users relying on 'setup.py test' will need to migrate to another test runner or pin setuptools before this version. (931)

71.1.0

=======

Features
--------

- Added return types to typed public functions -- by :user:`Avasam`

Marked `pkg_resources` as ``py.typed`` -- by :user:`Avasam` (4409)


Misc
----

- 4492

71.0.4

=======

Bugfixes
--------

- Removed lingering unused code around Distribution._patched_dist. (4489)

71.0.3

=======

Bugfixes
--------

- Reset the backports module when enabling vendored packages. (4476)

71.0.2

=======

Bugfixes
--------

- Include all vendored files in the sdist. (4480)

71.0.1

=======

Bugfixes
--------

- Restored package data that went missing in 71.0. This change also incidentally causes tests to be installed once again. (4475)

71.0.0

=======

Deprecations and Removals
-------------------------

- Now setuptools declares its own dependencies in the ``core`` extra. Dependencies are still vendored for bootstrapping purposes, but setuptools will prefer installed dependencies if present. The ``core`` extra is used for informational purposes and should *not* be declared in package metadata (e.g. ``build-requires``). Downstream packagers can de-vendor by simply removing the ``setuptools/_vendor`` directory. Since Setuptools now prefers installed dependencies, those installing to an environment with old, incompatible dependencies will not work. In that case, either uninstall the incompatible dependencies or upgrade them to satisfy those declared in ``core``. (2825)

70.3.0

=======

Features
--------

- Support for loading distutils from the standard library is now deprecated, including use of SETUPTOOLS_USE_DISTUTILS=stdlib and importing distutils before importing setuptools. (4137)


Bugfixes
--------

- Bugfix for building Cython extension on Windows (pypa/distutils268).

70.2.0

=======

Features
--------

- Updated distutils including significant changes to support Cygwin and mingw compilers. (4444)


Bugfixes
--------

- Fix distribution name normalisation (:pep:`625`) for valid versions that are
not canonical (e.g. ``1.0-2``). (4434)

70.1.1

=======

Misc
----

- 4429

70.1.0

=======

Features
--------

- Adopted the ``bdist_wheel`` command from the ``wheel`` project -- by :user:`agronholm` (1386)
- Improve error message when ``pkg_resources.ZipProvider`` tries to extract resources with a missing Egg -- by :user:`Avasam`

Added variables and parameter type annotations to ``pkg_resources`` to be nearly on par with typeshed.\* -- by :user:`Avasam`
\* Excluding ``TypeVar`` and ``overload``. Return types are currently inferred. (4246)
- Migrated Setuptools' own config to pyproject.toml (4310)


Bugfixes
--------

- Prevent a ``TypeError: 'NoneType' object is not callable`` when ``shutil_rmtree`` is called without an ``onexc`` parameter on Python<=3.11 -- by :user:`Avasam` (4382)
- Replace use of mktemp with can_symlink from the stdlib test suite. (4403)
- Improvement for ``attr:`` directives in configuration to handle
more edge cases related to complex ``package_dir``. (4405)
- Fix accidental implicit string concatenation. (4411)


Misc
----

- 4365, 4422
Links

Update pytest from 8.2.1 to 8.3.5.

Changelog

8.3.3

=========================

Bug fixes
---------

- `12446 <https://github.com/pytest-dev/pytest/issues/12446>`_: Avoid calling ``property`` (and other instance descriptors) during fixture discovery -- by :user:`asottile`


- `12659 <https://github.com/pytest-dev/pytest/issues/12659>`_: Fixed the issue of not displaying assertion failure differences when using the parameter ``--import-mode=importlib`` in pytest>=8.1.


- `12667 <https://github.com/pytest-dev/pytest/issues/12667>`_: Fixed a regression where type change in `ExceptionInfo.errisinstance` caused `mypy` to fail.


- `12744 <https://github.com/pytest-dev/pytest/issues/12744>`_: Fixed typing compatibility with Python 3.9 or less -- replaced `typing.Self` with `typing_extensions.Self` -- by :user:`Avasam`


- `12745 <https://github.com/pytest-dev/pytest/issues/12745>`_: Fixed an issue with backslashes being incorrectly converted in nodeid paths on Windows, ensuring consistent path handling across environments.


- `6682 <https://github.com/pytest-dev/pytest/issues/6682>`_: Fixed bug where the verbosity levels where not being respected when printing the "msg" part of failed assertion (as in ``assert condition, msg``).


- `9422 <https://github.com/pytest-dev/pytest/issues/9422>`_: Fix bug where disabling the terminal plugin via ``-p no:terminal`` would cause crashes related to missing the ``verbose`` option.

-- by :user:`GTowers1`



Improved documentation
----------------------

- `12663 <https://github.com/pytest-dev/pytest/issues/12663>`_: Clarify that the `pytest_deselected` hook should be called from `pytest_collection_modifyitems` hook implementations when items are deselected.


- `12678 <https://github.com/pytest-dev/pytest/issues/12678>`_: Remove erroneous quotes from `tmp_path_retention_policy` example in docs.



Miscellaneous internal changes
------------------------------

- `12769 <https://github.com/pytest-dev/pytest/issues/12769>`_: Fix typos discovered by codespell and add codespell to pre-commit hooks.

8.3.2

=========================

Bug fixes
---------

- `12652 <https://github.com/pytest-dev/pytest/issues/12652>`_: Resolve regression `conda` environments where no longer being automatically detected.

-- by :user:`RonnyPfannschmidt`

8.3.1

=========================

The 8.3.0 release failed to include the change notes and docs for the release. This patch release remedies this. There are no other changes.

8.3.0

=========================

New features
------------

- `12231 <https://github.com/pytest-dev/pytest/issues/12231>`_: Added `--xfail-tb` flag, which turns on traceback output for XFAIL results.

* If the `--xfail-tb` flag is not given, tracebacks for XFAIL results are NOT shown.
* The style of traceback for XFAIL is set with `--tb`, and can be `auto|long|short|line|native|no`.
* Note: Even if you have `--xfail-tb` set, you won't see them if `--tb=no`.

Some history:

With pytest 8.0, `-rx` or `-ra` would not only turn on summary reports for xfail, but also report the tracebacks for xfail results. This caused issues with some projects that utilize xfail, but don't want to see all of the xfail tracebacks.

This change detaches xfail tracebacks from `-rx`, and now we turn on xfail tracebacks with `--xfail-tb`. With this, the default `-rx`/ `-ra` behavior is identical to pre-8.0 with respect to xfail tracebacks. While this is a behavior change, it brings default behavior back to pre-8.0.0 behavior, which ultimately was considered the better course of action.

-- by :user:`okken`


- `12281 <https://github.com/pytest-dev/pytest/issues/12281>`_: Added support for keyword matching in marker expressions.

Now tests can be selected by marker keyword arguments.
Supported values are :class:`int`, (unescaped) :class:`str`, :class:`bool` & :data:`None`.

See :ref:`marker examples <marker_keyword_expression_example>` for more information.

-- by :user:`lovetheguitar`


- `12567 <https://github.com/pytest-dev/pytest/issues/12567>`_: Added ``--no-fold-skipped`` command line option.

If this option is set, then skipped tests in short summary are no longer grouped
by reason but all tests are printed individually with their nodeid in the same
way as other statuses.

-- by :user:`pbrezina`



Improvements in existing functionality
--------------------------------------

- `12469 <https://github.com/pytest-dev/pytest/issues/12469>`_: The console output now uses the "third-party plugins" terminology,
replacing the previously established but confusing and outdated
reference to :std:doc:`setuptools <setuptools:index>`
-- by :user:`webknjaz`.


- `12544 <https://github.com/pytest-dev/pytest/issues/12544>`_, `#12545 <https://github.com/pytest-dev/pytest/issues/12545>`_: Python virtual environment detection was improved by
checking for a :file:`pyvenv.cfg` file, ensuring reliable detection on
various platforms -- by :user:`zachsnickers`.


- `2871 <https://github.com/pytest-dev/pytest/issues/2871>`_: Do not truncate arguments to functions in output when running with `-vvv`.


- `389 <https://github.com/pytest-dev/pytest/issues/389>`_: The readability of assertion introspection of bound methods has been enhanced
-- by :user:`farbodahm`, :user:`webknjaz`, :user:`obestwalter`, :user:`flub`
and :user:`glyphack`.

Earlier, it was like:

.. code-block:: console

   =================================== FAILURES ===================================
   _____________________________________ test _____________________________________

       def test():
   >       assert Help().fun() == 2
   E       assert 1 == 2
   E        +  where 1 = <bound method Help.fun of <example.Help instance at 0x256a830>>()
   E        +    where <bound method Help.fun of <example.Help instance at 0x256a830>> = <example.Help instance at 0x256a830>.fun
   E        +      where <example.Help instance at 0x256a830> = Help()

   example.py:7: AssertionError
   =========================== 1 failed in 0.03 seconds ===========================


And now it's like:

.. code-block:: console

   =================================== FAILURES ===================================
   _____________________________________ test _____________________________________

       def test():
   >       assert Help().fun() == 2
   E       assert 1 == 2
   E        +  where 1 = fun()
   E        +    where fun = <test_local.Help object at 0x1074be230>.fun
   E        +      where <test_local.Help object at 0x1074be230> = Help()

   test_local.py:13: AssertionError
   =========================== 1 failed in 0.03 seconds ===========================


- `7662 <https://github.com/pytest-dev/pytest/issues/7662>`_: Added timezone information to the testsuite timestamp in the JUnit XML report.



Bug fixes
---------

- `11706 <https://github.com/pytest-dev/pytest/issues/11706>`_: Fixed reporting of teardown errors in higher-scoped fixtures when using `--maxfail` or `--stepwise`.

Originally added in pytest 8.0.0, but reverted in 8.0.2 due to a regression in pytest-xdist.
This regression was fixed in pytest-xdist 3.6.1.


- `11797 <https://github.com/pytest-dev/pytest/issues/11797>`_: :func:`pytest.approx` now correctly handles :class:`Sequence <collections.abc.Sequence>`-like objects.


- `12204 <https://github.com/pytest-dev/pytest/issues/12204>`_, `#12264 <https://github.com/pytest-dev/pytest/issues/12264>`_: Fixed a regression in pytest 8.0 where tracebacks get longer and longer when multiple
tests fail due to a shared higher-scope fixture which raised -- by :user:`bluetech`.

Also fixed a similar regression in pytest 5.4 for collectors which raise during setup.

The fix necessitated internal changes which may affect some plugins:

* ``FixtureDef.cached_result[2]`` is now a tuple ``(exc, tb)``
 instead of ``exc``.
* ``SetupState.stack`` failures are now a tuple ``(exc, tb)``
 instead of ``exc``.


- `12275 <https://github.com/pytest-dev/pytest/issues/12275>`_: Fixed collection error upon encountering an :mod:`abstract <abc>` class, including abstract `unittest.TestCase` subclasses.


- `12328 <https://github.com/pytest-dev/pytest/issues/12328>`_: Fixed a regression in pytest 8.0.0 where package-scoped parameterized items were not correctly reordered to minimize setups/teardowns in some cases.


- `12424 <https://github.com/pytest-dev/pytest/issues/12424>`_: Fixed crash with `assert testcase is not None` assertion failure when re-running unittest tests using plugins like pytest-rerunfailures. Regressed in 8.2.2.


- `12472 <https://github.com/pytest-dev/pytest/issues/12472>`_: Fixed a crash when returning category ``"error"`` or ``"failed"`` with a custom test status from :hook:`pytest_report_teststatus` hook -- :user:`pbrezina`.


- `12505 <https://github.com/pytest-dev/pytest/issues/12505>`_: Improved handling of invalid regex patterns in :func:`pytest.raises(match=r'...') <pytest.raises>` by providing a clear error message.


- `12580 <https://github.com/pytest-dev/pytest/issues/12580>`_: Fixed a crash when using the cache class on Windows and the cache directory was created concurrently.


- `6962 <https://github.com/pytest-dev/pytest/issues/6962>`_: Parametrization parameters are now compared using `==` instead of `is` (`is` is still used as a fallback if the parameter does not support `==`).
This fixes use of parameters such as lists, which have a different `id` but compare equal, causing fixtures to be re-computed instead of being cached.


- `7166 <https://github.com/pytest-dev/pytest/issues/7166>`_: Fixed progress percentages (the ``[ 87%]`` at the edge of the screen) sometimes not aligning correctly when running with pytest-xdist ``-n``.



Improved documentation
----------------------

- `12153 <https://github.com/pytest-dev/pytest/issues/12153>`_: Documented using :envvar:`PYTEST_VERSION` to detect if code is running from within a pytest run.


- `12469 <https://github.com/pytest-dev/pytest/issues/12469>`_: The external plugin mentions in the documentation now avoid mentioning
:std:doc:`setuptools entry-points <setuptools:index>` as the concept is
much more generic nowadays. Instead, the terminology of "external",
"installed", or "third-party" plugins (or packages) replaces that.

-- by :user:`webknjaz`


- `12577 <https://github.com/pytest-dev/pytest/issues/12577>`_: `CI` and `BUILD_NUMBER` environment variables role is described in
the reference doc. They now also appear when doing `pytest -h`
-- by :user:`MarcBresson`.



Contributor-facing changes
--------------------------

- `12467 <https://github.com/pytest-dev/pytest/issues/12467>`_: Migrated all internal type-annotations to the python3.10+ style by using the `annotations` future import.

-- by :user:`RonnyPfannschmidt`


- `11771 <https://github.com/pytest-dev/pytest/issues/11771>`_, `#12557 <https://github.com/pytest-dev/pytest/issues/12557>`_: The PyPy runtime version has been updated to 3.9 from 3.8 that introduced
a flaky bug at the garbage collector which was not expected to fix there
as the 3.8 is EoL.

-- by :user:`x612skm`


- `12493 <https://github.com/pytest-dev/pytest/issues/12493>`_: The change log draft preview integration has been refactored to use a
third party extension ``sphinxcontib-towncrier``. The previous in-repo
script was putting the change log preview file at
:file:`doc/en/_changelog_towncrier_draft.rst`. Said file is no longer
ignored in Git and might show up among untracked files in the
development environments of the contributors. To address that, the
contributors can run the following command that will clean it up:

.. code-block:: console

  $ git clean -x -i -- doc/en/_changelog_towncrier_draft.rst

-- by :user:`webknjaz`


- `12498 <https://github.com/pytest-dev/pytest/issues/12498>`_: All the undocumented ``tox`` environments now have descriptions.
They can be listed in one's development environment by invoking
``tox -av`` in a terminal.

-- by :user:`webknjaz`


- `12501 <https://github.com/pytest-dev/pytest/issues/12501>`_: The changelog configuration has been updated to introduce more accurate
audience-tailored categories. Previously, there was a ``trivial``
change log fragment type with an unclear and broad meaning. It was
removed and we now have ``contrib``, ``misc`` and ``packaging`` in
place of it.

The new change note types target the readers who are downstream
packagers and project contributors. Additionally, the miscellaneous
section is kept for unspecified updates that do not fit anywhere else.

-- by :user:`webknjaz`


- `12502 <https://github.com/pytest-dev/pytest/issues/12502>`_: The UX of the GitHub automation making pull requests to update the
plugin list has been updated. Previously, the maintainers had to close
the automatically created pull requests and re-open them to trigger the
CI runs. From now on, they only need to click the `Ready for review`
button instead.

-- by :user:`webknjaz`


- `12522 <https://github.com/pytest-dev/pytest/issues/12522>`_: The ``:pull:`` RST role has been replaced with a shorter
``:pr:`` due to starting to use the implementation from
the third-party :pypi:`sphinx-issues` Sphinx extension
-- by :user:`webknjaz`.


- `12531 <https://github.com/pytest-dev/pytest/issues/12531>`_: The coverage reporting configuration has been updated to exclude
pytest's own tests marked as expected to fail from the coverage
report. This has an effect of reducing the influence of flaky
tests on the resulting number.

-- by :user:`webknjaz`


- `12533 <https://github.com/pytest-dev/pytest/issues/12533>`_: The ``extlinks`` Sphinx extension is no longer enabled. The ``:bpo:``
role it used to declare has been removed with that. BPO itself has
migrated to GitHub some years ago and it is possible to link the
respective issues by using their GitHub issue numbers and the
``:issue:`` role that the ``sphinx-issues`` extension implements.

-- by :user:`webknjaz`


- `12562 <https://github.com/pytest-dev/pytest/issues/12562>`_: Possible typos in using the ``:user:`` RST role is now being linted
through the pre-commit tool integration -- by :user:`webknjaz`.

8.2.2

=========================

Bug Fixes
---------

- `12355 <https://github.com/pytest-dev/pytest/issues/12355>`_: Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters.


- `12367 <https://github.com/pytest-dev/pytest/issues/12367>`_: Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.


- `12381 <https://github.com/pytest-dev/pytest/issues/12381>`_: Fix possible "Directory not empty" crashes arising from concurrent cache dir (``.pytest_cache``) creation. Regressed in pytest 8.2.0.



Improved Documentation
----------------------

- `12290 <https://github.com/pytest-dev/pytest/issues/12290>`_: Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme.


- `12356 <https://github.com/pytest-dev/pytest/issues/12356>`_: Added a subsection to the documentation for debugging flaky tests to mention
lack of thread safety in pytest as a possible source of flakiness.


- `12363 <https://github.com/pytest-dev/pytest/issues/12363>`_: The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.
Links

Update respx from 0.21.1 to 0.22.0.

Changelog

0.22.0

Fixed

- Support HTTPX 0.28.0, thanks ndhansen (278)

Removed

- Drop support for Python 3.7, to align with HTTPX 0.25.0 (280)

CI

- Update CI test to not fail fast and cancel workflows, thanks flaeppe (269)
- Add dependabot to check GitHub actions packages, thanks flaeppe (268)
- Add Python 3.13 to test suite, thanks jairhenrique (283)
Links

Update pytest-env from 1.1.3 to 1.1.5.

Changelog

1.1.5

<!-- Release notes generated using configuration in .github/release.yml at main -->

What's Changed
* Improve the CI by gaborbernat in https://github.com/pytest-dev/pytest-env/pull/101


**Full Changelog**: https://github.com/pytest-dev/pytest-env/compare/1.1.4...1.1.5

1.1.4

<!-- Release notes generated using configuration in .github/release.yml at main -->



**Full Changelog**: https://github.com/pytest-dev/pytest-env/compare/1.1.3...1.1.4
Links

Update fiftyone from 0.23.8 to 1.4.1.

Changelog

1.4.1

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-4-1) for details!

1.4.0

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-4-0) for details!

1.3.2

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-3-2) for details!

1.3.1

Please see our official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-3-1) for details!

1.3.0

Please see our official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-3-0) for details!

1.2.0

Please see our official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-2-0) for details!

1.1.0

Please see the official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-1-0) for details!

1.0.2

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-0-2) for details!

1.0.1

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-0-1) for details!

1.0.0

Please see the official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-1-0-0)

0.25.2

Please see the official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-0-25-2)

0.25.1

Please see the official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-0-25-1)

0.25.0

Please see the official Voxel51 [Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-0-25-0)

0.24.1

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-0-24-1) for details.

0.24.0

Please see the official [Voxel51 Release Notes](https://docs.voxel51.com/release-notes.html#fiftyone-0-24-0) for details.
Links

Update datasets from 2.19.1 to 3.5.0.

Changelog

3.2.1

Fixed

-   Issue with GCS on Windows.

3.2.0

Added

-   [API] `tfds.ImageFolder` and `tfds.TranslateFolder` to easily create custom
 datasets with your custom data.
-   [API] `tfds.ReadConfig(input_context=)` to shard dataset, for better
 multi-worker compatibility (1426).
-   [API] The default `data_dir` can be controlled by the `TFDS_DATA_DIR`
 environment variable.
-   [API] Better usability when developing datasets outside TFDS: downloads are
 always cached, checksums are optional.
-   Scripts to help deployment/documentation (Generate catalog documentation,
 export all metadata files, ...).
-   [Documentation] Catalog display images
 ([example](https://www.tensorflow.org/datasets/catalog/sun397#sun397standard-part2-120k)).
-   [Documentation] Catalog shows which dataset have been recently added and are
 only available in `tfds-nightly`
 <span class="material-icons">nights_stay</span>.
-   [API] `tfds.show_statistics(ds_info)` to display
 [FACETS OVERVIEW](https://pair-code.github.io/facets/). Note: This require
 the dataset to have been generated with the statistics.

Deprecated

-   `tfds.features.text` encoding API. Please use
 [tensorflow_text](https://www.tensorflow.org/tutorials/tensorflow_text/intro)
 instead.

Removed

-   `tfds.load('image_label_folder')` in favor of the more user-friendly
 `tfds.ImageFolder`.

Fixed

-   Fix deterministic example order on Windows when path was used as key (this
 only impacts a few datasets). Now example order should be the same on all
 platforms.
-   Misc performances improvements for both generation and reading (e.g. use
 `__slot__`, fix parallelisation bug in `tf.data.TFRecordReader`, ...).
-   Misc fixes (typo, types annotations, better error messages, fixing dead
 links, better windows compatibility, ...).

3.1.0

Added

-   [API] `tfds.builder_cls(name)` to access a DatasetBuilder class by name
-   [API] `info.split['train'].filenames` for access to the tf-record files.
-   [API] `tfds.core.add_data_dir` to register an additional data dir.
-   [Testing] Support for custom decoders in `tfds.testing.mock_data`.
-   [Documentation] Shows which datasets are only present in `tfds-nightly`.
-   [Documentation] Display images for supported datasets.

Changed

-   Rename `tfds.core.NamedSplit`, `tfds.core.SplitBase` -> `tfds.Split`. Now
 `tfds.Split.TRAIN`,... are instance of `tfds.Split`.
-   Rename `interleave_parallel_reads` -> `interleave_cycle_length` for
 `tfds.ReadConfig`.
-   Invert ds, ds_info argument orders for `tfds.show_examples`.

Deprecated

-   `tfds.features.text` encoding API. Please use `tensorflow_text` instead.

Removed

-   `num_shards` argument from `tfds.core.SplitGenerator`. This argument was
 ignored as shards are automatically computed.
-   Most `ds.with_options` which where applied by TFDS. Now use `tf.data`
 default.

Fixed

-   Better error messages.
-   Windows compatibility.

3.0.0

Added

-   `DownloadManager` is now pickable (can be used inside Beam pipelines).
-   `tfds.features.Audio`:
 -   Support float as returned value.
 -   Expose sample_rate through `info.features['audio'].sample_rate`.
 -   Support for encoding audio features from file objects.
-   More datasets.

Changed

-   New `image_classification` section. Some datasets have been move there from
 `images`.
-   `DownloadConfig` does not append the dataset name anymore (manual data
 should be in `<manual_dir>/` instead of `<manual_dir>/<dataset_name>/`).
-   Tests now check that all `dl_manager.download` urls has registered
 checksums. To opt-out, add `SKIP_CHECKSUMS = True` to your
 `DatasetBuilderTestCase`.
-   `tfds.load` now always returns `tf.compat.v2.Dataset`. If you're using still
 using `tf.compat.v1`:
 -   Use `tf.compat.v1.data.make_one_shot_iterator(ds)` rather than
     `ds.make_one_shot_iterator()`.
 -   Use `isinstance(ds, tf.compat.v2.Dataset)` instead of `isinstance(ds,
     tf.data.Dataset)`.

Deprecated

-   The `tfds.features.text` encoding API is deprecated. Please use
 [tensorflow_text](https://www.tensorflow.org/tutorials/tensorflow_text/intro)
 instead.
-   `num_shards` argument of `tfds.core.SplitGenerator` is currently ignored and
 will be removed in the next version.

Removed

-   Legacy mode `tfds.experiment.S3` has been removed
-   `in_memory` argument has been removed from `as_dataset`/`tfds.load` (small
 datasets are now auto-cached).
-   `tfds.Split.ALL`.

Fixed

-   Various bugs, better error messages, documentation improvements.
Links

Update ultralytics from 8.3.47 to 8.3.119.

Changelog

8.3.119

📊 Key Changes

- **CutMix Data Augmentation Added** 🎨
- New CutMix augmentation randomly combines regions from two images, improving model robustness to occlusions.
- Fully supports both object detection and classification tasks.
- Configurable via new `cutmix` hyperparameter (probability) and `beta` (mixing ratio).

- **Docker and Dependency Improvements** 🐳
- Dockerfiles cleaned up: unnecessary packages (`g++`, `libusb-1.0-0`, `keras`) removed for smaller, faster images.
- Docker Quickstart documentation made clearer and less redundant.

- **Export and Logging Enhancements** 📦
- ONNXSlim dependency updated for more reliable ONNX and TensorFlow exports.
- TFLite export process simplified—metadata now added in a more robust, Python-version-friendly way.
- Default logging integrations switched to Weights & Biases (wandb) and MLflow for better experiment tracking.

- **Documentation & Usability Updates** 📚
- CutMix fully documented in augmentation guides and hyperparameter tables.
- Label format descriptions clarified for developers.
- New contributor recognized in documentation.

🎯 Purpose & Impact

- **Better Model Generalization**: CutMix creates realistic occlusion scenarios, helping models learn to detect and classify objects even when partially hidden—especially valuable for real-world applications like autonomous driving or crowded scenes.
- **Easier Experimentation**: Users can now tune CutMix alongside other augmentations, both via config files and hyperparameter search tools like Ray Tune.
- **Smoother Setup & Export**: Docker images are now lighter and faster to build, and model export is more reliable across platforms and Python versions.
- **Improved Logging & Compatibility**: Enhanced logging options and relaxed dependency constraints mean fewer installation issues and better tracking of training runs.
- **Clearer Documentation**: Updated guides and parameter tables make it easier for both new and experienced users to leverage the latest features.

Overall, this release empowers users to build more robust, production-ready models with less friction and more flexibility! 🚀

What's Changed
* Update `onnxslim>=0.1.46` by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20369
* Add W&B and MLFlow to pyproject.toml logging dependencies by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20371
* Fix NMS box format comment from xyxy to xywh by nikenake1 in https://github.com/ultralytics/ultralytics/pull/20376
* Update docker-quickstart.md by SHOscarChen in https://github.com/ultralytics/ultralytics/pull/20380
* Remove `tflite_support` and `flatbuffers` dependencies by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20383
* Dockerfile cleanup by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20382
* Remove `g++` and `libusb-1.0-0` from Docker linux installs by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20384
* `ultralytics 8.3.119` New CutMix image augmentation by artzuros in https://github.com/ultralytics/ultralytics/pull/19870

New Contributors
* nikenake1 made their first contribution in https://github.com/ultralytics/ultralytics/pull/20376
* SHOscarChen made their first contribution in https://github.com/ultralytics/ultralytics/pull/20380
* artzuros made their first contribution in https://github.com/ultralytics/ultralytics/pull/19870

**Full Changelog**: https://github.com/ultralytics/ultralytics/compare/v8.3.118...v8.3.119

8.3.118

🌟 Summary
This release introduces support for the new TorchScript MobileCLIP model, enhances grayscale image handling, and improves testing and documentation for broader device and package compatibility. 🚀🖼️📱

📊 Key Changes
- **TorchScript MobileCLIP Integration** 📱  
- Added support for Apple's MobileCLIP model in TorchScript format, enabling efficient and portable text encoding for vision-language tasks.
- **Grayscale Image Training Support** 🖤  
- Datasets and augmentations now natively support grayscale images, making it easier to train and infer with both grayscale and color data.
- **Expanded Continuous Integration (CI) Coverage** 🧪  
- Raspberry Pi and Conda environment tests are now enabled by default, ensuring more robust cross-platform compatibility.
- Test files are now included in Conda builds for better package quality assurance.
- **YOLO11 Model References in Docs & Docker** 📦  
- All documentation, code examples, and Dockerfiles now use YOLO11 models as the default, promoting the latest advancements.
- **Cleaner CoreML Handling** 🧹  
- Removed outdated CoreML and protobuf workarounds, reflecting improved compatibility and a simpler codebase.

🎯 Purpose & Impact
- **Faster, Portable Text Features**  
- The new TorchScript MobileCLIP model allows for rapid, device-agnostic text encoding, benefiting custom class naming and vision-language applications on a wider range of hardware.
- **Broader Dataset Compatibility**  
- Native grayscale support reduces manual preprocessing and errors, expanding Ultralytics' usability in medical imaging, document analysis, and more.
- **Stronger Reliability Across Devices**  
- Enhanced CI ensures YOLO models work smoothly on edge devices like Raspberry Pi and in Conda-managed environments, giving users and developers greater confidence.
- **Simpler, Up-to-Date Experience**  
- By standardizing on YOLO11 and cleaning up legacy code, users get clearer guidance and a more modern, maintainable toolkit.

---

This update is recommended for all users, especially those working with custom text prompts, grayscale datasets, or deploying on diverse hardware platforms. 🚀

What's Changed
* Remove special CoreML<>protobuf handling by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20362
* Add `tests` directory to package for Conda builds by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20365
* Implement 3.12-compatible Raspberry Pi CI by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20361
* Dockerfile export Sony IMX with YOLO11 by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20367
* Add Grayscale image training support by Laughing-q in https://github.com/ultralytics/ultralytics/pull/20310
* `ultralytics 8.3.118` Use new TorchScript MobileCLIP model by Y-T-G in https://github.com/ultralytics/ultralytics/pull/20354


**Full Changelog**: https://github.com/ultralytics/ultralytics/compare/v8.3.117...v8.3.118

8.3.117

🌟 Summary
Ultralytics 8.3.117 introduces a major update to TFLite model exports, switching from flatbuffers to a simpler JSON metadata format for improved Python 3.12+ compatibility. This release also brings enhancements to Docker support, distributed training, and model export workflows, along with several bug fixes and documentation improvements. 🚀

---

📊 Key Changes

- **TFLite Metadata Overhaul**: Replaces the TFLite Support package and flatbuffers-based metadata with a new JSON-based approach, making TFLite exports compatible with Python 3.12 and above.
- **Backward Compatibility**: Automatically falls back to the legacy metadata format for Python versions below 3.12.
- **Docker & CI Improvements**: Updates Dockerfiles and GitHub Actions workflows for better Python 3.12 support and ARM64 benchmarking.
- **MobileCLIP Dependency Update**: Switches to the Ultralytics-maintained MobileCLIP fork for easier installation and improved reliability.
- **Distributed Training Fixes**: Enhances YOLO distributed training stability, especially on Windows and with different PyTorch backends.
- **CoreML Export Fix**: Resolves box size issues when exporting models to CoreML.
- **Prediction Robustness**: Restores automatic class inference in detection models when metadata is missing, improving prediction reliability.
- **Documentation Upgrade**: Adds a step-by-step YouTube video tutorial to the Docker Quickstart guide for easier onboarding.
- **Codebase Cleanup**: Refines import statements for better maintainability and fewer import errors.

---

🎯 Purpose & Impact

- **Future-Proof TFLite Exports**: Ensures users can export and use TFLite models with the latest Python versions, reducing compatibility headaches.
- **Smoother Installations**: The new MobileCLIP fork and Docker updates make setup and deployment more reliable across platforms.
- **Easier Distributed Training**: Users training YOLO models on clusters or Windows systems will experience fewer errors and smoother runs.
- **Broader Hardware Support**: ARM64 benchmarking and Docker improvements benefit users on Jetson and other ARM devices.
- **Improved User Experience**: The new Docker video guide and restored prediction logic make it easier for both beginners and advanced users to get started and achieve reliable results.
- **⚠️ Breaking Change**: TFLite metadata format has changed. If you rely on the old flatbuffers-based metadata, you may need to update your code or workflows.

---

This release is a significant step towards modern Python compatibility, easier deployments, and a more robust user experience across the Ultralytics ecosystem! 🎉

What's Changed
* Add https://youtu.be/IYWQZvtOy_Q to docs by RizwanMunawar in https://github.com/ultralytics/ultralytics/pull/20347
* Fix private local import issue by Laughing-q in https://github.com/ultralytics/ultralytics/pull/20343
* Fix DDP with Gloo backend on Windows by Y-T-G in https://github.com/ultralytics/ultralytics/pull/20330
* Use Ultralytics MobileCLIP fork for YOLOE by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/20337
* Fix predictions if metadata is missing by Y-T-G in https://github.com/ultralytics/ultralytics/pull/20353
* Add Benchmarks CI to `Dockerfile-arm64` by lakshanthad in https://github.com/ultralytics/ultralytics/pull/20236
* Fix box sizes for CoreML exports by sidekickr in https://github.com/ultralytics/ultralytics/pull/20357
* `ultralytics 8.3.117` Replace TFLite Support with JSON metadata  by glenn-jocher in https://github.com/ultralytics/ultralytics/pull/16413


**Full Changelog**: https://github.com/ultralytics/ultralytics/compare/v8.3.116...v8.3.117

8.3.116

🌟 Summary
This release brings enhanced loss function customization for advanced model training, 

@dagshub
Copy link

dagshub bot commented Apr 28, 2025

@pyup-bot
Copy link
Collaborator Author

pyup-bot commented May 5, 2025

Closing this in favor of #613

@pyup-bot pyup-bot closed this May 5, 2025
@guysmoilov guysmoilov deleted the pyup-scheduled-update-2025-04-28 branch May 5, 2025 14:53
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.

2 participants