@@ -47,28 +47,55 @@ BEGIN_UNRELEASED_TEMPLATE
4747END_UNRELEASED_TEMPLATE
4848-->
4949
50- {#v0 -0-0}
51- ## Unreleased
50+ {#v2 -0-0}
51+ ## [ 2.0.0 ] - 2026-04-09
5252
53- [ 0 .0.0] : https://github.com/bazel-contrib/rules_python/releases/tag/0 .0.0
53+ [ 2 .0.0] : https://github.com/bazel-contrib/rules_python/releases/tag/2 .0.0
5454
55- {#v0 -0-0-removed}
55+ {#v2 -0-0-removed}
5656### Removed
5757* Nothing removed.
5858
59- {#v0 -0-0-changed}
59+ {#v2 -0-0-changed}
6060### Changed
6161
6262** Breaking**
6363* {obj}` --windows_enable_symlinks ` is required. Add `startup
6464 --windows_enable_symlinks` to your ` .bazelrc` to enable Bazel using full
6565 symlink support on Windows.
66+ * venv-based binaries are created by default ({obj}` --bootstrap_impl=system_python ` )
67+ on supported platforms (Linux/Mac with Bazel 8+, or Windows).
68+ * ` --build_python_zip ` on Windows is ignored. Use {obj}` py_zipapp_binary ` to create
69+ zips of Python programs.
70+ * (pypi) Previously ` experimental_index_url ` users would not need to specify
71+ target platforms if cross-building is required. From now we will only pull
72+ wheels for the host OS to better align with how the rules work with the legacy
73+ ` pip ` implementation. Use {obj}` pip.parse.target_platforms ` to customize the
74+ behavior.
75+ Related to [ #260 ] ( https://github.com/bazel-contrib/rules_python/issues/260 ) .
6676
6777Other changes:
6878* (pypi) Update dependencies used for ` compile_pip_requirements ` , building
6979 sdists in the ` whl_library ` rule and fetching wheels using ` pip ` .
70-
71- {#v0-0-0-fixed}
80+ * (pypi) Before using the bazel downloader to fetch the PyPI package metadata
81+ we will from now on fetch the lists of available packages on each index. The
82+ used package mappings will be written as facts to the ` MODULE.bazel.lock ` file
83+ on supported bazel versions and it should be done at most once. As a result,
84+ per-package {obj}` experimental_index_url_overrides ` is no longer needed . What
85+ is more, the flags for ` --index_url ` and ` --extra-index-url ` now behave in the
86+ same way as in ` uv ` or ` pip ` , i.e. we default to ` --index-url ` if the package
87+ is not found in ` --extra-index-url ` . Fixes
88+ ([ #3260 ] ( https://github.com/bazel-contrib/rules_python/issues/3260 ) and
89+ [ #2632 ] ( https://github.com/bazel-contrib/rules_python/issues/2632 ) ).
90+ * (uv) We will now use the download URL specified in the ` uv ` 's
91+ ` dist_manifest.json ` file. If you have redirects or blocking rules as part of
92+ your downloader setup, you may need to adjust them. What is more, the default
93+ uv version has been bumped ` 0.11.2 ` .
94+ * (runfiles): Type annotations are no longer tested for Python 3.9.
95+ * Windows no longer defaults to creating a zip file and extracting it; a
96+ symlink-based runfiles tree is created, as on unix-like platforms.
97+
98+ {#v2-0-0-fixed}
7299### Fixed
73100* (toolchain) Also set Make variables for local toolchains.
74101* (zipapp) Resolve issue passing through compression settings in
@@ -83,15 +110,51 @@ Other changes:
83110* (bootstrap) Fixed incorrect runfiles path construction in bootstrap
84111 scripts when binary is defined in another bazel module
85112 ([ #3563 ] ( https://github.com/bazel-contrib/rules_python/issues/3563 ) ).
113+ * (bootstrap) Resolve ` RUNFILES_DIR ` inheritance issues, which lead to a child
114+ Python binary incorrectly using it's parent's Python binary environment
115+ ([ #3518 ] ( https://github.com/bazel-contrib/rules_python/issues/3518 ) ).
116+ * (uv) Downloads for versions ` >=0.10 ` work again. In order to fix this we had
117+ drop support for ` powerpc64 ` platform. People interested in the platform can
118+ bring it back via the ` uv.default ` API. Like:
119+ ```
120+ uv.default(
121+ compatible_with = [
122+ "@platforms//os:linux",
123+ "@platforms//cpu:ppc",
124+ ],
125+ platform = "powerpc64-unknown-linux-gnu",
126+ )
127+ ```
128+ Fixes [ #3676 ] ( https://github.com/bazel-contrib/rules_python/issues/3676 ) .
86129
87- {#v0 -0-0-added}
130+ {#v2 -0-0-added}
88131### Added
89132* (pypi) Write SimpleAPI contents to the ` MODULE.bazel.lock ` file if using
90- {obj}` experimental_index_url ` which should speed up consecutive initializations and should no
91- longer require the network access if the cache is hydrated.
92- Implements [ #2731 ] ( https://github.com/bazel-contrib/rules_python/issues/2731 ) .
133+ {obj}` experimental_index_url ` which should speed up consecutive
134+ initializations and should no longer require the network access if the cache is
135+ hydrated. Implements
136+ [ #2731 ] ( https://github.com/bazel-contrib/rules_python/issues/2731 ) .
137+ * (pypi) The ` --index-url ` and ` --extra-index-url ` is now parsed from the lock
138+ file and the {obj}` pip.parse.experimental_index_url ` and
139+ {obj}` pip.parse.experimental_extra_index_urls ` is
140+ no longer mandatory to leverage the bazel downloader.
141+ Implements
142+ [ #1357 ] ( https://github.com/bazel-contrib/rules_python/issues/1357 ) ,
143+ [ #2951 ] ( https://github.com/bazel-contrib/rules_python/issues/2951 ) .
144+ * (pypi) If cross-compilation is needed, use the {obj}` pip.parse.target_platforms `
145+ to specify exactly which platforms should be supported.
146+ Implements
147+ [ #260 ] ( https://github.com/bazel-contrib/rules_python/issues/260 ) .
93148* (wheel) Specifying a path ending in ` / ` as a destination in ` data_files `
94149 will now install file(s) to a folder, preserving their basename.
150+ * Various attributes and fields added to support venvs on Windows:
151+ * {obj}` py_runtime.venv_bin_files ` and {obj}` PyRuntime.venv_binfiles `
152+ field added to specify additional Python runtime files Windows needs for
153+ venvs.
154+ * {obj}` PyExecutableInfo.venv_interpreter_runfiles ` , and
155+ {obj}` PyExecutableInfo.venv_interpreter_symlinks ` adde
156+ * (wheel) Add support for ` add_path_prefix ` argument in ` py_wheel ` which can be
157+ used to prepend a prefix to the files in the wheel.
95158
96159{#v1-9-0}
97160## [ 1.9.0] - 2026-02-21
0 commit comments