Update dependency rules_python to v0.35.0 #340
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
0.32.2
->0.35.0
Release Notes
bazelbuild/rules_python (rules_python)
v0.35.0
Compare Source
Changed
when the wheel is downloaded using
download_only
feature to aid debugging.It would work well in cases to reduce merge conflicts.
include dependency updates
3.8.19
,3.9.19
,3.10.14
,3.11.9
3.12 -> 3.12.4
PYTHONSAFEPATH
is inherited from the calling environment to allowdisabling it (Requires {obj}
--bootstrap_impl=script
)(#2060).
Fixed
compile_pip_requirements
now sets theUSERPROFILE
env variable onWindows to work around an issue where
setuptools
fails to locate the user'shome directory.
@rules_python//python/cc:current_py_cc_libs
in host platform builds on macOS, by editing the
LC_ID_DYLIB
field of the hermetic interpreter'slibpython3.x.dylib
usinginstall_name_tool
, setting it to its absolute path under Bazel'sexecroot.
--bootstrap_impl=script
(for non-zip builds).
(#2043)
--build_python_zip
is set tofalse
onWindows. See #1840.
--build_python_zip
+ {obj}--bootstrap_impl=script
(#2030).
{obj}
--bootstrap_impl=script
.(#2064).
@_builtins
and@rules_python
providers instead of only one.
(#2114).
containing ">" sign
//python/runtime_env_toolchains
interpreter script so that it is runnable.(#2085).
sdist
downloaded by the bazel downloader when usingexperimental_index_url
feature. Fixes#2091.
gazelle_python_manifest.update
manual to avoid unnecessarynetwork behavior.
python
extension will no longercause warnings by default. In order to see the warnings for diagnostic purposes
set the env var
RULES_PYTHON_REPO_DEBUG_VERBOSITY
to one ofINFO
,DEBUG
orTRACE
.Fixes #1818.
Python 3.9 (or earlier, where safepath isn't present), and the Rlocation call
in the same directory as the main file.
Fixes #1631.
Added
compile_pip_requirements
supports multiple requirements input files assrcs
.PYTHONSAFEPATH
is inherited from the calling environment to allowdisabling it (Requires {obj}
--bootstrap_impl=script
)(#2060).
python_generation_mode_per_package_require_test_entry_point
in order to better accommodate users who use a custom macro,
pytest-bazel
, rules_python_pytest orrules_py
py_test_main in order to integrate with
pytest
. Currently the defaultflag value is set to
true
for backwards compatible behaviour, but in thefuture the flag will be flipped be
false
by default.3.12.4
using the 20240726 release.if your requirements files contain env markers, the Python interpreter will
need to be run during bzlmod phase to evaluate them. This may incur
downloading an interpreter (for hermetic-based builds) or cause non-hermetic
behavior (if using a system Python).
v0.34.0
Compare Source
Changed
protobuf
/com_google_protobuf
dependency bumped tov24.4
reduce the total number of targets in the hub repo.
the regular interpreter toolchain. This avoids having to duplicate specifying
where the runtime for the exec tools toolchain is.
//python:autodetecting_toolchain
) is deprecated. It isreplaced by {obj}
//python/runtime_env_toolchains:all
. The old target will beremoved in a future release.
Fixed
experimental_index_url
theall_requirements
,all_whl_requirements
andall_data_requirements
will now only includecommon packages that are available on all target platforms. This is to ensure
that packages that are only present for some platforms are pulled only via
the
deps
of the materializedpy_library
. If you would like to includeplatform specific packages, using a
select
statement with references to thespecific package will still work (e.g.
my_attr = all_requirements + select(
{
"@platforms//os:linux": ["@pypi//foo_available_only_on_linux"],
"//conditions:default": [],
}
)
all_requirements
now use the same form as targets returned by therequirement
macro.such as precompiling, to pick an execution platform separately from what
other toolchains support.
PyRuntimeInfo
doesn't require passing theinterpreter_version_info
arg.isolated
,quiet
andtimeout
values towhl_library
and drop the defaults from the lock file.
platform specific wheel and use
experimental_target_platforms
.Fixes #1996.
Added
//python/runtime_env_toolchains:all
, which is a drop-inreplacement for the "autodetecting" toolchain.
python_label_convention
andpython_label_normalization
directives. These directiveallows altering default Gazelle label format to third-party dependencies useful for re-using Gazelle plugin
with other rules, including
rules_pycross
. See #1939.Removed
entrypoint
macro that was replaced bypy_console_script_binary
in 0.26.0.v0.33.2
Compare Source
Fixed
exec_tools_toolchain_type
is disabled by default.To enable it, set {obj}
--//python/config_settings:exec_tools_toolchain=enabled
.This toolchain must be enabled for precompilation to work. This toolchain will
be enabled by default in a future release.
Fixes #1967.
v0.33.1
Compare Source
Fixed
--build_python_zip
argument. Fixes #1954.
v0.33.0
Compare Source
Changed
pip_install
dependencies to pick up a new version of pip.py_binary
,py_test
, andpy_library
now depend on the//python:exec_tools_toolchain_type
for buildtools.
bazel_skylib
to 1.6.1.python
and internalrules_python
extensions have beenmarked as
reproducible
and will not include any lock file entries from nowon.
Introduced a new Go-based helper leveraging tree-sitter for syntax analysis.
Implemented the use of
pypi/stdlib-list
for standard library module verification.experimental_index_url
.This is to mimic what
uv
is doing. We will print a warning instead.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 and
#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.
pythons_hub//:interpreters.bzl
no longer has platform-specificlabels which where left there for compatibility reasons. Move to
python_{version}_host
keys if you would like to have access to a Pythoninterpreter that can be used in a repository rule context.
Fixed
visibility
fromNonEmptyAttr
.Now empty(have no
deps/main/srcs/imports
attr)py_library/test/binary
rules willbe automatically deleted correctly. For example, if
python_generation_mode
is set to package, when
__init__.py
is deleted, thepy_library
generatedfor this package before will be deleted automatically.
is_python_config_setting
to correctly handle multi-pythonversion 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.
"panic: runtime error: invalid memory address or nil pointer dereference"
pip.parse(annotations)
attribute as it is unused and has beenreplaced by whl_modifications.
See (#1930)
experimental_index_url
is not used by any of the modules in the dependencychain. To make the lock file identical on each
os
andarch
, please usethe
experimental_index_url
feature which will fetch metadata from PyPI or adifferent private index and write the contents to the lock file. Fixes
#1643.
yanked
packages and print a warning instead ofignoring them. This better matches the behaviour of
uv pip install
.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.WORKSPACE
requirement vendoring example. Fixes#1918.
Added
disabled by default, for now. Set
@rules_python//python/config_settings:precompile=enabled
to enable itby default. A subsequent release will enable it by default. See the
Precompiling docs and API reference docs for more
information on precompiling. Note this requires Bazel 7+ and the Pystar rule
implementation enabled.
(#1761)
precompile
,precompile_optimize_level
,precompile_source_retention
,precompile_invalidation_mode
, andpyc_collection
//python:toolchain_type
) hastwo new optional attributes:
pyc_tag
(tells the pyc filename infix to use) andimplementation_name
(tells the Python implementation name).//python:exec_tools_toolchain_type
.PyInfo
has two new attributes:direct_pyc_files
andtransitive_pyc_files
, which tell the pyc files a target makes availabledirectly and transitively, respectively.
//python:features.bzl
added to allow easy feature-detection in the future.validations when parsing the inputs. This is a non-breaking change for most
users unless they have been passing multiple
requirements_*
files togetherwith
extra_pip_args = ["--platform=manylinux_2_4_x86_64"]
, that was aninvalid usage previously but we were not failing the build. From now on this
is explicitly disallowed.
python_visibility
directive now supports the$python_root$
placeholder, just like the
python_default_visibility
directive does.is available. It can be enabled by setting
{obj}
--@​rules_python//python/config_settings:bootstrap_impl=script
. Itwill become the default in a subsequent release.
(#691)
PyRuntimeInfo
has two new attributes:{obj}
PyRuntimeInfo.stage2_bootstrap_template
and{obj}
PyRuntimeInfo.zip_main_template
.available. The
//python:autodetecting_toolchain
alias now uses it.supports customizing whether the linux wheels are pulled for
musl
orglibc
, whetheruniversal2
or arch-specific MacOS wheels are preferred andit also allows to select a particular
libc
version. All of this is done viathe
string_flags
in@rules_python//python/config_settings
. If there areno wheels that are supported for the target platform,
rules_python
willfallback onto building the
sdist
from source. This behaviour can bedisabled if desired using one of the available string flags as well.
whl_filegroup
rule to extract files from a wheel file.This is useful to extract headers for use in a
cc_library
.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), 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 was generated by Mend Renovate. View the repository job log.