bazelbuild/rules_python (rules_python)
### [`v0.27.0`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0270---2023-11-16)
[Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.26.0...0.27.0)
[0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0
##### Changed
- Make `//python/pip_install:pip_repository_bzl` `bzl_library` target internal
as all of the publicly available symbols (etc. `package_annotation`) are
re-exported via `//python:pip_bzl` `bzl_library`.
- (gazelle) Gazelle Python extension no longer has runtime dependencies. Using
`GAZELLE_PYTHON_RUNTIME_DEPS` from `@rules_python_gazelle_plugin//:def.bzl` is
no longer necessary.
- (pip_parse) The installation of `pip_parse` repository rule toolchain
dependencies is now done as part of `py_repositories` call.
- (pip_parse) The generated `requirements.bzl` file now has an additional symbol
`all_whl_requirements_by_package` which provides a map from the normalized
PyPI package name to the target that provides the built wheel file. Use
`pip_utils.normalize_name` function from `@rules_python//python:pip.bzl` to
convert a PyPI package name to a key in the `all_whl_requirements_by_package`
map.
- (pip_parse) The flag `incompatible_generate_aliases` has been flipped to
`True` by default on `non-bzlmod` setups allowing users to use the same label
strings during the transition period. For example, instead of
`@pypi_foo//:pkg`, you can now use `@pypi//foo` or `@pypi//foo:pkg`. Other
labels that are present in the `foo` package are `dist_info`, `whl` and
`data`. Note, that the `@pypi_foo//:pkg` labels are still present for
backwards compatibility.
- (gazelle) The flag `use_pip_repository_aliases` is now set to `True` by
default, which will cause `gazelle` to change third-party dependency labels
from `@pip_foo//:pkg` to `@pip//foo` by default.
- The `compile_pip_requirements` now defaults to `pyproject.toml` if the `src`
or `requirements_in` attributes are unspecified, matching the upstream
`pip-compile` behaviour more closely.
- (gazelle) Use relative paths if possible for dependencies added through
the use of the `resolve` directive.
- (gazelle) When using `python_generation_mode file`, one `py_test` target is
made per test file even if a target named `__test__` or a file named
`__test__.py` exists in the same package. Previously in these cases there
would only be one test target made.
Breaking changes:
- (pip) `pip_install` repository rule in this release has been disabled and
will fail by default. The API symbol is going to be removed in the next
version, please migrate to `pip_parse` as a replacement. The `pip_parse`
rule no longer supports `requirements` attribute, please use
`requirements_lock` instead.
- (py_wheel) switch `incompatible_normalize_name` and
`incompatible_normalize_version` to `True` by default to enforce `PEP440`
for wheel names built by `rules_python`.
- (tools/wheelmaker.py) drop support for Python 2 as only Python 3 is tested.
##### Fixed
- Skip aliases for unloaded toolchains. Some Python versions that don't have full
platform support, and referencing their undefined repositories can break operations
like `bazel query rdeps(...)`.
- Python code generated from `proto_library` with `strip_import_prefix` can be imported now.
- (py_wheel) Produce deterministic wheel files and make `RECORD` file entries
follow the order of files written to the `.whl` archive.
- (gazelle) Generate a single `py_test` target when `gazelle:python_generation_mode project`
is used.
- (gazelle) Move waiting for the Python interpreter process to exit to the shutdown hook
to make the usage of the `exec.Command` more idiomatic.
- (toolchains) Keep tcl subdirectory in Windows build of hermetic interpreter.
- (bzlmod) sub-modules now don't have the `//conditions:default` clause in the
hub repos created by `pip.parse`. This should fix confusing error messages
in case there is a misconfiguration of toolchains or a bug in `rules_python`.
##### Added
- (bzlmod) Added `.whl` patching support via `patches` and `patch_strip`
arguments to the new `pip.override` tag class.
- (pip) Support for using [PEP621](https://peps.python.org/pep-0621/) compliant
`pyproject.toml` for creating a resolved `requirements.txt` file.
- (utils) Added a `pip_utils` struct with a `normalize_name` function to allow users
to find out how `rules_python` would normalize a PyPI distribution name.
[0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0
Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
0.26.0
->0.27.0
Release Notes
bazelbuild/rules_python (rules_python)
### [`v0.27.0`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0270---2023-11-16) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.26.0...0.27.0) [0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0 ##### Changed - Make `//python/pip_install:pip_repository_bzl` `bzl_library` target internal as all of the publicly available symbols (etc. `package_annotation`) are re-exported via `//python:pip_bzl` `bzl_library`. - (gazelle) Gazelle Python extension no longer has runtime dependencies. Using `GAZELLE_PYTHON_RUNTIME_DEPS` from `@rules_python_gazelle_plugin//:def.bzl` is no longer necessary. - (pip_parse) The installation of `pip_parse` repository rule toolchain dependencies is now done as part of `py_repositories` call. - (pip_parse) The generated `requirements.bzl` file now has an additional symbol `all_whl_requirements_by_package` which provides a map from the normalized PyPI package name to the target that provides the built wheel file. Use `pip_utils.normalize_name` function from `@rules_python//python:pip.bzl` to convert a PyPI package name to a key in the `all_whl_requirements_by_package` map. - (pip_parse) The flag `incompatible_generate_aliases` has been flipped to `True` by default on `non-bzlmod` setups allowing users to use the same label strings during the transition period. For example, instead of `@pypi_foo//:pkg`, you can now use `@pypi//foo` or `@pypi//foo:pkg`. Other labels that are present in the `foo` package are `dist_info`, `whl` and `data`. Note, that the `@pypi_foo//:pkg` labels are still present for backwards compatibility. - (gazelle) The flag `use_pip_repository_aliases` is now set to `True` by default, which will cause `gazelle` to change third-party dependency labels from `@pip_foo//:pkg` to `@pip//foo` by default. - The `compile_pip_requirements` now defaults to `pyproject.toml` if the `src` or `requirements_in` attributes are unspecified, matching the upstream `pip-compile` behaviour more closely. - (gazelle) Use relative paths if possible for dependencies added through the use of the `resolve` directive. - (gazelle) When using `python_generation_mode file`, one `py_test` target is made per test file even if a target named `__test__` or a file named `__test__.py` exists in the same package. Previously in these cases there would only be one test target made. Breaking changes: - (pip) `pip_install` repository rule in this release has been disabled and will fail by default. The API symbol is going to be removed in the next version, please migrate to `pip_parse` as a replacement. The `pip_parse` rule no longer supports `requirements` attribute, please use `requirements_lock` instead. - (py_wheel) switch `incompatible_normalize_name` and `incompatible_normalize_version` to `True` by default to enforce `PEP440` for wheel names built by `rules_python`. - (tools/wheelmaker.py) drop support for Python 2 as only Python 3 is tested. ##### Fixed - Skip aliases for unloaded toolchains. Some Python versions that don't have full platform support, and referencing their undefined repositories can break operations like `bazel query rdeps(...)`. - Python code generated from `proto_library` with `strip_import_prefix` can be imported now. - (py_wheel) Produce deterministic wheel files and make `RECORD` file entries follow the order of files written to the `.whl` archive. - (gazelle) Generate a single `py_test` target when `gazelle:python_generation_mode project` is used. - (gazelle) Move waiting for the Python interpreter process to exit to the shutdown hook to make the usage of the `exec.Command` more idiomatic. - (toolchains) Keep tcl subdirectory in Windows build of hermetic interpreter. - (bzlmod) sub-modules now don't have the `//conditions:default` clause in the hub repos created by `pip.parse`. This should fix confusing error messages in case there is a misconfiguration of toolchains or a bug in `rules_python`. ##### Added - (bzlmod) Added `.whl` patching support via `patches` and `patch_strip` arguments to the new `pip.override` tag class. - (pip) Support for using [PEP621](https://peps.python.org/pep-0621/) compliant `pyproject.toml` for creating a resolved `requirements.txt` file. - (utils) Added a `pip_utils` struct with a `normalize_name` function to allow users to find out how `rules_python` would normalize a PyPI distribution name. [0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0Configuration
📅 Schedule: Branch creation - "every weekend" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.