mvukov / rules_ros2

Build ROS 2 with Bazel
Apache License 2.0
75 stars 42 forks source link

chore(deps): update dependency rules_python to v0.33.1 #332

Closed renovate[bot] closed 3 weeks ago

renovate[bot] commented 3 weeks ago

Mend Renovate

This PR contains the following updates:

Package Type Update Change
rules_python http_archive minor 0.32.2 -> 0.33.1

Release Notes

bazelbuild/rules_python (rules_python) ### [`v0.33.1`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0331---2024-06-13) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.33.0...0.33.1) [0.33.1]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.33.1 ##### Fixed - (py_binary) Fix building of zip file when using `--build_python_zip` argument. Fixes [#​1954](https://togithub.com/bazelbuild/rules_python/issues/1954). ### [`v0.33.0`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0330---2024-06-12) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.32.2...0.33.0) [0.33.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.33.0 ##### Changed - (deps) Upgrade the `pip_install` dependencies to pick up a new version of pip. - (toolchains) Optional toolchain dependency: `py_binary`, `py_test`, and `py_library` now depend on the `//python:exec_tools_toolchain_type` for build tools. - (deps): Bumped `bazel_skylib` to 1.6.1. - (bzlmod): The `python` and internal `rules_python` extensions have been marked as `reproducible` and will not include any lock file entries from now on. - (gazelle): Remove gazelle plugin's python deps and make it hermetic. Introduced a new Go-based helper leveraging tree-sitter for syntax analysis. Implemented the use of `pypi/stdlib-list` for standard library module verification. - (pip.parse): Do not ignore yanked packages when using `experimental_index_url`. This is to mimic what `uv` is doing. We will print a warning instead. - (pip.parse): Add references to all supported wheels when using `experimental_index_url` to allowing to correctly fetch the wheels for the right platform. See the updated docs on how to use the feature. This is work towards addressing [#​735](https://togithub.com/bazelbuild/rules_python/issues/735) and [#​260](https://togithub.com/bazelbuild/rules_python/issues/260). The spoke repository names when using this flag will have a structure of `{pip_hub_prefix}_{wheel_name}_{py_tag}_{abi_tag}_{platform_tag}_{sha256}`, which is an implementation detail which should not be relied on and is there purely for better debugging experience. - (bzlmod) The `pythons_hub//:interpreters.bzl` no longer has platform-specific labels which where left there for compatibility reasons. Move to `python_{version}_host` keys if you would like to have access to a Python interpreter that can be used in a repository rule context. ##### Fixed - (gazelle) Remove `visibility` from `NonEmptyAttr`. Now empty(have no `deps/main/srcs/imports` attr) `py_library/test/binary` rules will be automatically deleted correctly. For example, if `python_generation_mode` is set to package, when `__init__.py` is deleted, the `py_library` generated for this package before will be deleted automatically. - (whl_library): Use `is_python_config_setting` to correctly handle multi-python version dependency select statements when the `experimental_target_platforms` includes the Python ABI. The default python version case within the select is also now handled correctly, stabilizing the implementation. - (gazelle) Fix Gazelle failing on Windows with "panic: runtime error: invalid memory address or nil pointer dereference" - (bzlmod) remove `pip.parse(annotations)` attribute as it is unused and has been replaced by whl_modifications. - (pip) Correctly select wheels when the python tag includes minor versions. See ([#​1930](https://togithub.com/bazelbuild/rules_python/issues/1930)) - (pip.parse): The lock file is now reproducible on any host platform if the `experimental_index_url` is not used by any of the modules in the dependency chain. To make the lock file identical on each `os` and `arch`, please use the `experimental_index_url` feature which will fetch metadata from PyPI or a different private index and write the contents to the lock file. Fixes [#​1643](https://togithub.com/bazelbuild/rules_python/issues/1643). - (pip.parse): Install `yanked` packages and print a warning instead of ignoring them. This better matches the behaviour of `uv pip install`. - (toolchains): Now matching of the default hermetic toolchain is more robust and explicit and should fix rare edge-cases where the host toolchain autodetection would match a different toolchain than expected. This may yield to toolchain selection failures when the python toolchain is not registered, but is requested via `//python/config_settings:python_version` flag setting. - (doc) Fix the `WORKSPACE` requirement vendoring example. Fixes [#​1918](https://togithub.com/bazelbuild/rules_python/issues/1918). ##### Added - (rules) Precompiling Python source at build time is available. but is disabled by default, for now. Set `@rules_python//python/config_settings:precompile=enabled` to enable it by default. A subsequent release will enable it by default. See the [Precompiling docs][precompile-docs] and API reference docs for more information on precompiling. Note this requires Bazel 7+ and the Pystar rule implementation enabled. ([#​1761](https://togithub.com/bazelbuild/rules_python/issues/1761)) - (rules) Attributes and flags to control precompile behavior: `precompile`, `precompile_optimize_level`, `precompile_source_retention`, `precompile_invalidation_mode`, and `pyc_collection` - (toolchains) The target runtime toolchain (`//python:toolchain_type`) has two new optional attributes: `pyc_tag` (tells the pyc filename infix to use) and `implementation_name` (tells the Python implementation name). - (toolchains) A toolchain type for build tools has been added: `//python:exec_tools_toolchain_type`. - (providers) `PyInfo` has two new attributes: `direct_pyc_files` and `transitive_pyc_files`, which tell the pyc files a target makes available directly and transitively, respectively. - `//python:features.bzl` added to allow easy feature-detection in the future. - (pip) Allow specifying the requirements by (os, arch) and add extra validations when parsing the inputs. This is a non-breaking change for most users unless they have been passing multiple `requirements_*` files together with `extra_pip_args = ["--platform=manylinux_2_4_x86_64"]`, that was an invalid usage previously but we were not failing the build. From now on this is explicitly disallowed. - (toolchains) Added riscv64 platform definition for python toolchains. - (gazelle) The `python_visibility` directive now supports the `$python_root$` placeholder, just like the `python_default_visibility` directive does. - (rules) A new bootstrap implementation that doesn't require a system Python is available. It can be enabled by setting {obj}`--@​rules_python//python/config_settings:bootstrap_impl=script`. It will become the default in a subsequent release. ([#​691](https://togithub.com/bazelbuild/rules_python/issues/691)) - (providers) `PyRuntimeInfo` has two new attributes: {obj}`PyRuntimeInfo.stage2_bootstrap_template` and {obj}`PyRuntimeInfo.zip_main_template`. - (toolchains) A replacement for the Bazel-builtn autodetecting toolchain is available. The `//python:autodetecting_toolchain` alias now uses it. - (pip): Support fetching and using the wheels for other platforms. This supports customizing whether the linux wheels are pulled for `musl` or `glibc`, whether `universal2` or arch-specific MacOS wheels are preferred and it also allows to select a particular `libc` version. All of this is done via the `string_flags` in `@rules_python//python/config_settings`. If there are no wheels that are supported for the target platform, `rules_python` will fallback onto building the `sdist` from source. This behaviour can be disabled if desired using one of the available string flags as well. - (whl_filegroup) Added a new `whl_filegroup` rule to extract files from a wheel file. This is useful to extract headers for use in a `cc_library`. [precompile-docs]: /precompiling

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.



This PR has been generated by Mend Renovate. View repository job log here.