chore(deps): update dependency rules_python to v1 #527
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.5.0
->1.0.0
Warning
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
bazelbuild/rules_python (rules_python)
v1.0.0
Compare Source
{#v1-0-0-changed}
Changed
Breaking:
Please consider depending on the flags defined in
//python/config_setting/...
and the@platforms
package instead.MACOS_NAME
and thearch
attribute in the
PLATFORMS
list, please update your code to respect the newvalues. The values now correspond to the values available in the
@platforms//
package constraint values.host_platform
andinterpreter
constants are no longer createdin the
toolchain
generated alias.bzl
files. If you need to access thehost interpreter during the
repository_rule
evaluation, please use the@python_{version}_host//:python
targets created by{bzl:obj}
python_register_toolchains
and{bzl:obj}
python_register_multi_toolchains
macros or the {bzl:obj}python
bzlmod extension.
pip.parse.parse_all_requirements_files
attribute has been removed.See notes in the previous versions about what to do.
Other changes:
strip_prefix
field forzstd
archives.pip_parse.extra_hub_aliases
now works in WORKSPACE files.--bootstrap_impl=script
, a binary-specific (butotherwise empty) virtual env is used to customize
sys.path
initialization.{#v1-0-0-fixed}
Fixed
uname
to get the value of the host platform.files which is useful when including different PyTorch builds (e.g. <pytorch+cpu> vs <pytorch+cu118> ) for different target platforms.
Fixes (2337).
uv
binary for aarch64-apple-darwin.Fixes (2411).
--bootstrap_impl=scipt
) Usingsys.executable
willuse the same
sys.path
setup as the calling binary.(2169).
hardcoded in Bazel, WORKSPACE mode.
compile_pip_requirements
no longer fails on Windows when--enable_runfiles
is not enabled.compile_pip_requirements
now correctly updates files in the source tree on Windows when--windows_enable_symlinks
is not enabled.libpython
targetdefined by a repository template. This enables stable ABI builds of Python extensions
on Windows (by defining Py_LIMITED_API).
py_test
andpy_binary
targets no longer incorrectly remove thefirst
sys.path
entry when using {obj}--bootstrap_impl=script
{#v1-0-0-added}
Added
details can be logged by setting
RULES_PYTHON_GAZELLE_VERBOSE=1
.they would like to use through
RULES_PYTHON_REPO_TOOLCHAIN_{VERSION}_{OS}_{ARCH}
env variable setting. Forexample, this allows one to use
freethreaded
python interpreter in therepository_rule
to build a wheel fromsdist
.muslc
libc have been addedfor the latest toolchain versions for each minor Python version. You can control
the toolchain selection by using the
{bzl:obj}
//python/config_settings:py_linux_libc
build flag.py_runtime_info.site_init_template
and{obj}
PyRuntimeInfo.site_init_template
for specifying the template to use toinitialize the interpreter via venv startup hooks.
{#v1-0-0-removed}
Removed
pypi_install_dependencies
macro that has been included in{bzl:obj}
py_repositories
for a long time.DEFAULT_PYTHON_VERSION
frominterpreters.bzl
file. Ifyou need the version, please use it from the
versions.bzl
file instead.{#v0-40-0}
v0.40.0
Compare Source
{#v0-40-changed}
Changed
{#v0-40-fixed}
Fixed
(2414).
{#v0-40-added}
Added
{#v0-40-removed}
Removed
requirements.txt
for thetwine
dependencies.Please use
requirements_linux.txt
instead.zstd
support and remove attributesfor customizing the
zstd
binary to be used forzstd
archives in the{bzl:obj}
python_repository
repository_rule. This affects the{bzl:obj}
python_register_toolchains
and{bzl:obj}
python_register_multi_toolchains
callers in theWORKSPACE
.{#v0-39-0}
v0.39.0
Compare Source
{#v0-39-0-changed}
Changed
bzlmod
spoke repositories have changed asall of the given
requirements.txt
files are now parsed bydefault
, totemporarily restore the behavior, you can use
{bzl:obj}
pip.parse.extra_hub_aliases
, which will be removed or made noop inthe future.
{#v0-39-0-fixed}
Fixed
@bazel_tools//tools/python:autodetecting_toolchain
is being used(#2364).
{#v0-39-0-added}
Added
the config flag
//python/config_settings:py_freethreaded
to toggle theselection of the free-threaded toolchains.
py_runtime.abi_flags
attribute and{obj}
PyRuntimeInfo.abi_flags
field added.{#v0-39-0-removed}
Removed
{#v0-38-0}
v0.38.0
Compare Source
{#v0-38-0-changed}
Changed
version used; this for Bazel 8+ support (previously version was rules_cc 0.0.9
and no protobuf version specified)
(2310).
for the
twine
publishing rule.--no-build-isolation
to allow non-hermetic sdist buildsby default. Users wishing to keep this argument and to enforce more hermetic
builds can do so by passing the argument in
pip.parse#extra_pip_args
pip.parse.whl_modifications
now normalizes the given whl namesand now
pyyaml
andPyYAML
will both work.pip.parse
spoke repository naming will be changed in an upcomingrelease in places where the users specify different package versions per
platform in the same hub repository. The naming of the spoke repos is
considered an implementation detail and we advise the users to use the
hub
repository directly and make use of {bzl:obj}
pip.parse.extra_hub_aliases
feature added in this release.
{#v0-38-0-fixed}
Fixed
whl_library
s(617).
pip.parse.experimental_index_url
is set, we need to stillpass the
extra_pip_args
value when building ansdist
.which fixes usage of the said wheels using standard package managers.
same lock file irrespective if
experimental_index_url
is set by any moduleor not. To opt into this behavior, set
{bzl:obj}
pip.parse.parse_all_requirements_files
, which will become thedefault in future releases leading up to
1.0.0
. Fixes#2268. A known
issue is that it may break
bazel query
and in these use cases it isadvisable to use
cquery
or switch todownload_only = True
{#v0-38-0-added}
Added
twine
publishing rules have beenupdated to have a new convention:
requirements_darwin.txt
,requirements_linux.txt
,requirements_windows.txt
for each respective OSand one extra file
requirements_universal.txt
if you prefer a single file.The
requirements.txt
file may be removed in the future.//python/features.bzl#features.version
pip.parse.extra_hub_aliases
can now be used to expose extratargets created by annotations in whl repositories.
Fixes #2187.
pip.parse
now supportswhl-only
setup usingdownload_only = True
where users can specify multiple requirements filesand use the
pip
backend to do the downloading. This was only available forusers setting {bzl:obj}
pip.parse.experimental_index_url
, but now users havemore options whilst we continue to work on stabilizing the experimental feature.
{#v0-37-2}
v0.37.2
Compare Source
Using Bzlmod
Add to your
MODULE.bazel
file:Using WORKSPACE
Paste this snippet into your
WORKSPACE
file:Gazelle plugin
Paste this snippet into your
WORKSPACE
file:Full Changelog: bazelbuild/rules_python@0.37.1...0.37.2
v0.37.1
Compare Source
{#v0-37-1-fixed}
Fixed
--incompatible_python_disallow_native_rules
no longercauses rules_python rules to fail
(#2326).
{#v0-37-0}
v0.37.0
Compare Source
{#v0-37-0-changed}
Changed
py_library
no longer puts its source files or generated pycfiles in runfiles; it's the responsibility of consumers (e.g. binaries) to
populate runfiles with the necessary files. Adding source files to runfiles
can be temporarily restored by setting {obj}
--add_srcs_to_runfiles=enabled
,but this flag will be removed in a subsequent releases.
PyInfo.transitive_sources
is now added to runfiles. These files are.py
files that are required to be added to runfiles by downstream binaries(or equivalent).
py_runtime.implementation_name
now defaults tocpython
(previously it defaulted to None).
disabled by setting
{obj}
--@​rules_python//python/config_settings:exec_tools_toolchain=disabled
.{#v0-37-0-fixed}
Fixed
python.override(minor_mapping)
now merges the default and theoverridden versions ensuring that the resultant
minor_mapping
will alwayshave all of the python versions.
--python_version
flag will now bealways set to the default python toolchain version value.
pip.parse.extra_pip_args
all theway to {obj}
whl_library
. What is more we will pass theextra_pip_args
to{obj}
whl_library
forsdist
distributions when using{attr}
pip.parse.experimental_index_url
. See#2239.
RECORD
fileRECORD
file entry elements are now quoted if necessary when awheel is created
case where a requirement has many
--hash=sha256:...
flagscompile_pip_requirements
passesenv
to theX.update
target (andnot only to the
X_test
target, a bug introduced in#1067).
python_register_toolchains(register_toolchains=True)
is respected(#1675).
pyc_collection
attribute now correctlyenables (or disables) using pyc files from targets transitively
pip.override
'sfile
(#2294).
rules_shell
dev dependency and moved ash_test
targetoutside of the
//:BUILD.bazel
file.Fixes #2299.
{#v0-37-0-added}
Added
compress = (True|False)
to allow disablingcompression to speed up development.
//python/config_settings:python_version_major_minor
hasbeen exposed for users to be able to match on the
X.Y
version of a Pythoninterpreter.
merge_py_infos()
so user rules can merge and propagatePyInfo
without losing information.3.8 -> 3.8.20
3.9 -> 3.9.20
3.10 -> 3.10.15
3.11 -> 3.11.10
3.12 -> 3.12.7
coverage.py
to 7.6.1.download_only
flag to disable usage ofsdists
when {bzl:attr}
pip.parse.experimental_index_url
is set.PyInfo.transitive_implicit_pyc_files
,{obj}
PyInfo.transitive_implicit_pyc_source_files
.{#v0-37-0-removed}
Removed
--precompile_add_to_runfiles
has been removed.--pyc_collection
has been removed. Thepyc_collection
attribute now bases its default on {obj}
--precompile
.precompile=if_generated_source
value has been removed.precompile_source_retention=omit_if_generated_source
value has been removed.{#v0-36-0}
v0.36.0
Compare Source
Changed
--python_version
flag now also returns{obj}
config_common.FeatureFlagInfo
.patch_strip
attributethat one should use when patching toolchains. Please set it if you are
patching python interpreter. In the next release the default will be set to
0
which better reflects the defaults used in publicbazel
APIs.py_runtime.interpreter_version_info
isn't specified,the {obj}
--python_version
flag will determine the value. This allowsspecifying the build-time Python version for the
{obj}
runtime_env_toolchains
.py_cc_toolchain.libs
and {obj}PyCcToolchainInfo.libs
isoptional. This is to support situations where only the Python headers are
available.
7.1
.Fixed
--no-index
and add--no-build-isolation
to thepip install
command when installing a wheel from a local file, which happenswhen
experimental_index_url
flag is used.platform non-dependent hashes in the lock file when the requirement markers need
to be evaluated.
any changes so that the repository rule or module extensions can be
re-evaluated when the said files change.
t.Fatal
/t.Fatalf
in tests.stage2 bootstrap template.
RUNFILES_MANIFEST_FILE
-based invocations work when used with{obj}
--bootstrap_impl=script
. This fixes invocations using non-sandboxedtest execution with
--enable_runfiles=false --build_runfile_manifests=true
.(#2186).
Required-Dist
when specifying requirements with markersin extra_requires in py_wheel rule.
bootstrap .py file when using {obj}
--bootstrap_impl=script
gen_python_config_settings
has been fixed to includethe flag_values from the platform definitions.
Added
{bzl:obj}
python.override
, {bzl:obj}python.single_version_override
and{bzl:obj}
python.single_version_platform_override
tag classes.See #2081.
PyExecutableInfo
, which containsexecutable-specific information useful for packaging an executable or
or deriving a new one from the original.
have it installed.
python_register_toolchains
and related symbols.
python_repository.patch_strip
attribute forallowing values that are other than
1
, which has been hard-coded up untilnow. If you are relying on the undocumented
patches
support inTOOL_VERSIONS
for registering patched toolchains please consider settingthe
patch_strip
explicitly to1
if you depend on this value - in thefuture the value may change to default to
0
.//python:none
, a special target for use with{obj}
py_exec_tools_toolchain.exec_interpreter
to treat the value asNone
.Removed
http_archive
symbol frompython/repositories.bzl
.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
{#v0-33-2-fixed}
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}
v0.33.1
Compare Source
{#v0-33-1-fixed}
Fixed
--build_python_zip
argument. Fixes #1954.
{#v0-33-0}
v0.33.0
Compare Source
{#v0-33-0-changed}
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.
{#v0-33-0-fixed}
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.
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.
"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.
{#v0-33-0-added}
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
.{#v0-32-2}
v0.32.2
Compare Source
{#v0-32-2-fixed}
Fixed
{#v0-32-0}
v0.32.1
Compare Source
Using Bzlmod with Bazel 6
NOTE: bzlmod support is still beta. APIs subject to change.
Add to your
MODULE.bazel
file:Using WORKSPACE
Paste this snippet into your
WORKSPACE
file:Gazelle plugin
Paste this snippet into your
WORKSPACE
file:What's Changed
Changed
MODULE.bazel.lock
whl_library
rule attributes are nowsorted in the attributes section. We are also removing values that are not
default in order to reduce the size of the lock file.
coverage.py
to 7.4.3.non-blocking downloads.
pip_tools
to >= 7.4.0include security fixes
3.8.18
,3.9.18
and3.10.13
3.8 -> 3.8.19
3.9 -> 3.9.19
3.10 -> 3.10.14
3.11 -> 3.11.9
3.12 -> 3.12.3
Fixed
specific wheels when the wheels are for any python interpreter version. Fixes
#1810.
duplicates in the METADATA. Fixes
#1873.
project
orpackage
generation modes, do not generatepy_test
rules when there are no test files and do not set
main = "__test__.py"
whenthat file doesn't exist.
the group potentially fixing aspects that want to traverse a
py_library
graph.Fixes #1760.
pip.parse
extension is now possible, see theexamples/pip_parse/MODULE.bazel
for how to do it.See #1371.
isort
andblack
checks (see #1674).
Added
3.11.8
,3.12.2
using the 20240224 release.3.8.19
,3.9.19
,3.10.14
,3.11.9
,3.12.3
usingthe 20240415 release.
python_visibility
directive to control visibilityof generated targets by appending additional visibility labels.
python_default_visibility
directive to control thedefault visibility of generated targets. See the docs
for details.
python_test_file_pattern
directive. This directive tellsgazelle which python files should be mapped to the
py_test
rule. See theoriginal issue and the docs
for details.
data_files
attributes in py_wheel rule(#1777)
bzlmod
installations now provide atwine
setup for the defaultPython toolchain in
rules_python
for version 3.11.experimental_index_url
,experimental_extra_index_urls
andexperimental_index_url_overrides
topip.parse
for using the bazeldownloader. If you see any issues, report in
#1357. The URLs for
the whl and sdist files will be written to the lock file. Controlling whether
the downloading of metadata is done in parallel can be done using
parallel_download
attribute.include_dep
. Also add documentation forannotations to
gazelle/README.md
.rules_python
depends now onrules_cc
0.0.9use_hub_alias_dependencies
has been added that is goingto become default in the next release. This makes use of
dep_template
flagin the
whl_library
rule. This also affects theexperimental_requirement_cycles
feature where the dependencies that are ina group would be only accessible via the hub repo aliases. If you still
depend on legacy labels instead of the hub repo aliases and you use the
experimental_requirement_cycles
, now is a good time to migrate.Full Changelog: bazelbuild/rules_python@0.32.0...0.32.1
v0.32.0
Compare Source
{#v0-32-0-changed}
Changed
MODULE.bazel.lock
whl_library
rule attributes are nowsorted in the attributes section. We are also removing values that are not
default in order to reduce the size of the lock file.
coverage.py
to 7.4.3.bazel_features
to 1.9.1 to detect optional supportnon-blocking downloads.
pip_tools
to >= 7.4.0include security fixes
3.8.18
,3.9.18
and3.10.13
3.8 -> 3.8.19
3.9 -> 3.9.19
3.10 -> 3.10.14
3.11 -> 3.11.9
3.12 -> 3.12.3
Fixed
specific wheels when the wheels are for any python interpreter version. Fixes
#1810.
duplicates in the METADATA. Fixes
#1873.
project
orpackage
generation modes, do not generatepy_test
rules when there are no test files and do not set
main = "__test__.py"
whenthat file doesn't exist.
the group potentially fixing aspects that want to traverse a
py_library
graph.Fixes #1760.
pip.parse
extension is now possible, see theexamples/pip_parse/MODULE.bazel
for how to do it.See #1371.
isort
andblack
checks (see #1674).
Added
3.11.8
,3.12.2
using the 20240224 release.3.8.19
,3.9.19
,3.10.14
,3.11.9
,3.12.3
usingthe 20240415 release.
python_visibility
directive to control visibilityof generated targets by appending additional visibility labels.
python_default_visibility
directive to control thedefault visibility of generated targets. See the docs
for details.
python_test_file_pattern
directive. This directive tellsgazelle which python files should be mapped to the
py_test
rule. See theoriginal issue and the docs
for details.
data_files
attributes in py_wheel rule(#1777)
bzlmod
installations now provide atwine
setup for the defaultPython toolchain in
rules_python
for version 3.11.experimental_index_url
,experimental_extra_index_urls
andexperimental_index_url_overrides
topip.parse
for using the bazeldownloader. If you see any issues, report in
#1357. The URLs for
the whl and sdist files will be written to the lock file. Controlling whether
the downloading of metadata is done in parallel can be done using
parallel_download
attribute.include_dep
. Also add documentation forannotations to
gazelle/README.md
.rules_python
depends now onrules_cc
0.0.9use_hub_alias_dependencies
has been added that is goingto become default in the next release. This makes use of
dep_template
flagin the
whl_library
rule. This also affects theexperimental_requirement_cycles
feature where the dependencies that are ina group would be only accessible via the hub repo aliases. If you still
depend on legacy labels instead of the hub repo aliases and you use the
experimental_requirement_cycles
, now is a good time to migrate.v0.31.0
Compare Source
Changed
directly and the rules bundled with Bazel are not used. Bazel 6 and earlier
continue to use the Bazel builtin symbols. Of particular note, this means,
under Bazel 7, the builtin global symbol
PyInfo
is not the same as whatis loaded from rules_python. The same is true of
PyRuntimeInfo
.v0.30.0
Compare Source
Changed
(toolchains) Windows hosts always ignore pyc files in the downloaded runtimes.
This fixes issues due to pyc files being created at runtime and affecting the
definition of what files were considered part of the runtime.
(pip_parse) Added the
envsubst
parameter, which enables environment variablesubstitutions in the
extra_pip_args
attribute.(pip_repository) Added the
envsubst
parameter, which enables environmentvariable substitutions in the
extra_pip_args
attribute.Fixed
(bzlmod) pip.parse now does not fail with an empty
requirements.txt
.(py_wheel) Wheels generated by
py_wheel
now preserve executable bits whenbeing extracted by
installer
and/orpip
.(coverage) During the running of lcov, the stdout/stderr was causing test
failures. By default, suppress output when generating lcov. This can be
overridden by setting 'VERBOSE_COVERAGE'. This change only affect bazel
7.x.x and above.
(toolchain) Changed the
host_toolchain
to symlink all files to supportWindows host environments without symlink support.
(PyRuntimeInfo) Switch back to builtin PyRuntimeInfo for Bazel 6.4 and when
pystar is disabled. This fixes an error about
target ... does not have ... PyRuntimeInfo
.(#1732)
Added
(py_wheel) Added
requires_file
andextra_requires_files
attributes.(whl_library) experimental_target_platforms now supports specifying the
Python version explicitly and the output
BUILD.bazel
file will be correctirrespective of the python interpreter that is generating the file and
extracting the
whl
distribution. Multiple python target version can bespecified and the code generation will generate version specific dependency
closures but that is not yet ready to be used and may break the build if
the default python version is not selected using
common --@​rules_python//python/config_settings:python_version=X.Y.Z
.New Python versions available:
3.11.7
,3.12.1
usinghttps://github.com/indygreg/python-build-standalone/releases/tag/20240107.
(toolchain) Allow setting
x.y
as thepython_version
parameter inthe version-aware
py_binary
andpy_test
rules. This allows users touse the same rule import for testing with specific Python versions and
rely on toolchain configuration and how the latest version takes precedence
if e.g.
3.8
is selected. That also simplifies.bazelrc
for any usersthat set the default
python_version
string flag in that way.(toolchain) The runtime's shared libraries (libpython.so et al) can be
accessed using
@rules_python//python/cc:current_py_cc_libs
. This usestoolchain resolution, so the files are from the same runtime used to run a
target. If you were previously using e.g.
@python_3_11//:libpython
, thenswitch to
:current_py_cc_libs
for looser coupling to the underlying runtimerepo implementation.
(repo rules) The environment variable
RULES_PYTHON_REPO_DEBUG=1
can beset to make repository rules log detailed information about what they're
up to.
(coverage) Add supp
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.