From 4708544da918783e8cdcb7552f49fcab04abb5f2 Mon Sep 17 00:00:00 2001 From: Richard Levasseur Date: Sat, 15 Aug 2026 21:44:21 +0000 Subject: [PATCH] chore(release): sync changelog and version markers for 2.3 backports Sync CHANGELOG.md, news fragments, and version markers from the 2.3 release branch backports (#3997, #4039, #4043) into the main branch. --- CHANGELOG.md | 26 ++++++++++++++++++++++++++ news/3997.added.md | 5 ----- news/4039.fixed.md | 9 --------- news/4043.fixed.md | 2 -- python/extensions/config.bzl | 2 +- python/private/py_executable.bzl | 2 +- 6 files changed, 28 insertions(+), 18 deletions(-) delete mode 100644 news/3997.added.md delete mode 100644 news/4039.fixed.md delete mode 100644 news/4043.fixed.md diff --git a/CHANGELOG.md b/CHANGELOG.md index ede22fc6db..6408cc7a69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,6 +29,18 @@ Unreleased changes are tracked as individual files in the [news/](./news) directory, or view the [latest generated changelog](https://rules-python.readthedocs.io/en/latest/changelog.html). +{#v2-3-1} +## [2.3.1] - 2026-08-14 + +[2.3.1]: https://github.com/bazel-contrib/rules_python/releases/tag/2.3.1 + +{#v2-3-1-fixed} +### Fixed +* Previous refactor that shipped with 2.3 introduced regression for the + experimental repository cache users. This restores the previous behavior + ([#3791](https://github.com/bazel-contrib/rules_python/pull/3791)). + + {#v2-3-0} ## [2.3.0] - 2026-08-07 @@ -59,6 +71,15 @@ changelog](https://rules-python.readthedocs.io/en/latest/changelog.html). * (pypi) Allow `uv_lock` to be specified in `pip.parse` without requiring `requirements_lock` (or other os-specific requirement file attributes) to be set. +* (pypi) Fixed the fixed-point loop that resolves self-referencing extras + (`pkg[extra]` entries in a package's own `Requires-Dist`). The loop compared + the number of extras discovered in the current round against the number known + before it, rather than against the size of the merged set. As a result it + could stop before every extra was resolved, silently dropping dependencies + only reachable through two or more `pkg[extra]` hops, and for the common case + of a package with no self-referencing extras it never converged at all, + running all 10000 rounds while evaluating each wheel's generated `BUILD` file + ([#4039](https://github.com/bazel-contrib/rules_python/pull/4039)). * (pypi) Requirement `--hash=:` pins and Simple API `#=` URL fragments are now parsed for all hash algorithms instead of silently dropping everything except `sha256`. Non-sha256 pins are @@ -90,6 +111,11 @@ changelog](https://rules-python.readthedocs.io/en/latest/changelog.html). * (bzlmod) Added MODULE.bazel flag aliases for Starlark-defined flags: `build_python_zip`, `incompatible_default_to_explicit_init_py`, `python_path`, and `experimental_python_import_all_repositories`. +* (bzlmod) Added the `{obj}`explicit_init_py`` tag class to the + `{obj}`config`` module extension for configuring implicit `__init__.py` file + generation module-wide. + ([#3997](https://github.com/bazel-contrib/rules_python/pull/3997), + [#2945](https://github.com/bazel-contrib/rules_python/issues/2945)) * (cc) Added experimental {obj}`py_extension` macro for creating C/C++ Python extension modules ([#3283](https://github.com/bazel-contrib/rules_python/issues/3283)). diff --git a/news/3997.added.md b/news/3997.added.md deleted file mode 100644 index 34cbfc20e1..0000000000 --- a/news/3997.added.md +++ /dev/null @@ -1,5 +0,0 @@ -(bzlmod) Added the `{obj}`explicit_init_py`` tag class to the -`{obj}`config`` module extension for configuring implicit `__init__.py` file -generation module-wide. -([#3997](https://github.com/bazel-contrib/rules_python/pull/3997), -[#2945](https://github.com/bazel-contrib/rules_python/issues/2945)) diff --git a/news/4039.fixed.md b/news/4039.fixed.md deleted file mode 100644 index d48ad91b24..0000000000 --- a/news/4039.fixed.md +++ /dev/null @@ -1,9 +0,0 @@ -(pypi) Fixed the fixed-point loop that resolves self-referencing extras -(`pkg[extra]` entries in a package's own `Requires-Dist`). The loop compared the -number of extras discovered in the current round against the number known -before it, rather than against the size of the merged set. As a result it could -stop before every extra was resolved, silently dropping dependencies only -reachable through two or more `pkg[extra]` hops, and for the common case of a -package with no self-referencing extras it never converged at all, running all -10000 rounds while evaluating each wheel's generated `BUILD` file -([#4039](https://github.com/bazel-contrib/rules_python/pull/4039)). diff --git a/news/4043.fixed.md b/news/4043.fixed.md deleted file mode 100644 index 35feb31837..0000000000 --- a/news/4043.fixed.md +++ /dev/null @@ -1,2 +0,0 @@ -Previous refactor that shipped with 2.3 introduced regression for the experimental repository cache -users. This restores the previous behavior ([#3791](https://github.com/bazel-contrib/rules_python/pull/3791)). diff --git a/python/extensions/config.bzl b/python/extensions/config.bzl index a6d03c6f70..e4456360e4 100644 --- a/python/extensions/config.bzl +++ b/python/extensions/config.bzl @@ -47,7 +47,7 @@ py_binary( In the future, this will be enabled by default. ::: -:::{versionadded} VERSION_NEXT_FEATURE +:::{versionadded} 2.3.0 ::: """, attrs = { diff --git a/python/private/py_executable.bzl b/python/private/py_executable.bzl index 4ee484dcd0..0e7e292aae 100644 --- a/python/private/py_executable.bzl +++ b/python/private/py_executable.bzl @@ -125,7 +125,7 @@ module configuration option are used. If false, the user is responsible for creating (possibly empty) `__init__.py` files and adding them to the `srcs` of Python targets as required. -:::{versionchanged} VERSION_NEXT_FEATURE +:::{versionchanged} 2.3.0 Now checks module-level `explicit_init_py` configuration before CLI flags. ::: """,