-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update dependency rules_python to v0.38.0 #782
Open
renovate
wants to merge
1
commit into
main
Choose a base branch
from
renovate/rules_python-0.x
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
+2
−2
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
7 times, most recently
from
February 14, 2023 22:23
5914b51
to
25d8965
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.18.0
Update dependency rules_python to v0.18.1
Feb 14, 2023
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
6 times, most recently
from
February 21, 2023 03:27
e20b86a
to
2071c9d
Compare
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
6 times, most recently
from
February 28, 2023 22:35
051030d
to
b204d39
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.18.1
Update dependency rules_python to v0.19.0
Feb 28, 2023
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
7 times, most recently
from
March 8, 2023 01:55
59ce5c2
to
3b7bf7c
Compare
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
2 times, most recently
from
March 9, 2023 01:54
4e6adc3
to
060aeee
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.29.0
Update dependency rules_python to v0.30.0
Feb 13, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
February 13, 2024 06:34
afffe3b
to
5b1a935
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.30.0
Update dependency rules_python to v0.31.0
Feb 13, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
May 13, 2024 03:58
5b1a935
to
59c32cd
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.31.0
Update dependency rules_python to v0.32.0
May 13, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
May 13, 2024 09:29
59c32cd
to
08b3835
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.32.0
Update dependency rules_python to v0.32.1
May 13, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
May 14, 2024 03:11
08b3835
to
bc24ea9
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.32.1
Update dependency rules_python to v0.32.2
May 14, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
June 12, 2024 04:07
bc24ea9
to
2dcf8bb
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.32.2
Update dependency rules_python to v0.33.0
Jun 12, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
June 13, 2024 00:52
2dcf8bb
to
82dc141
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.33.0
Update dependency rules_python to v0.33.1
Jun 13, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
June 19, 2024 14:45
82dc141
to
ff75258
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.33.1
Update dependency rules_python to v0.33.2
Jun 19, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
July 4, 2024 08:00
ff75258
to
8cbd5fe
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.33.2
Update dependency rules_python to v0.34.0
Jul 4, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
August 15, 2024 21:32
8cbd5fe
to
02da806
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.34.0
Update dependency rules_python to v0.35.0
Aug 15, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
September 24, 2024 04:58
02da806
to
bd48f66
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.35.0
Update dependency rules_python to v0.36.0
Sep 24, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
October 18, 2024 20:36
bd48f66
to
a01ea95
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.36.0
Update dependency rules_python to v0.37.0
Oct 18, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
October 23, 2024 09:20
a01ea95
to
e4feb41
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.37.0
Update dependency rules_python to v0.37.1
Oct 23, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
October 27, 2024 04:31
e4feb41
to
d3826b9
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.37.1
Update dependency rules_python to v0.37.2
Oct 27, 2024
renovate
bot
force-pushed
the
renovate/rules_python-0.x
branch
from
November 8, 2024 01:27
d3826b9
to
54ab297
Compare
renovate
bot
changed the title
Update dependency rules_python to v0.37.2
Update dependency rules_python to v0.38.0
Nov 8, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
None yet
0 participants
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
->0.38.0
Release Notes
bazelbuild/rules_python (rules_python)
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 support for python 3.12 and bump
coverage.py
to7.4.1.
v0.29.0
Compare Source
Changed
incompatible_generate_aliases
feature flagsfrom
pip_parse
andgazelle
got removed. They had been flipped toTrue
in 0.27.0 release.
incompatible_normalize_name
andincompatible_normalize_version
flags have been removed. They had beenflipped to
True
in 0.27.0 release.using the
X.Y
python version notation. This improves cross moduleinteroperability and allows to share wheels built by interpreters using
different patch versions.
Fixed
(bzlmod pip.parse) Use a platform-independent reference to the interpreter
pip uses. This reduces (but doesn't eliminate) the amount of
platform-specific content in
MODULE.bazel.lock
files; Follow#1643 for removing
platform-specific content in
MODULE.bazel.lock
files.(wheel) The stamp variables inside the distribution name are no longer
lower-cased when normalizing under PEP440 conventions.
Added
(toolchains)
python_register_toolchains
now also generates a repositorythat is suffixed with
_host
, that has a single label:python
that is asymlink to the python interpreter for the host platform. The intended use is
mainly in
repository_rule
, which are always run usinghost
platformPython. This means that
WORKSPACE
users can now copy therequirements.bzl
file for vendoring as seen in the updated
pip_parse_vendored
example.(runfiles)
rules_python.python.runfiles.Runfiles
now has a staticCreate
method to make imports more ergonomic. Users should only need to import the
Runfiles
object to locate runfiles.(toolchains)
PyRuntimeInfo
now includes ainterpreter_version_info
fieldthat contains the static version information for the given interpreter.
This can be set via
py_runtime
when registering an interpreter toolchain,and will done automatically for the builtin interpreter versions registered via
python_register_toolchains
.Note that this only available on the Starlark implementation of the provider.
(config_settings) Added
//python/config_settings:is_python_X.Y
configsettings to match on minor Python version. These settings match any
X.Y
version instead of just an exact
X.Y.Z
version.v0.28.0
Compare Source
Changed
BREAKING (pip_install) the deprecated
pip_install
macro and relateditems have been removed.
BREAKING Support for Bazel 5 has been officially dropped. This release
was only partially tested with Bazel 5 and may or may not work with Bazel 5.
Subequent versions will no longer be tested under Bazel 5.
(runfiles)
rules_python.python.runfiles
now directly implements type hintsand drops support for python2 as a result.
(toolchains)
py_runtime
,py_runtime_pair
, andPyRuntimeInfo
now use therules_python Starlark implementation, not the one built into Bazel. NOTE: This
only applies to Bazel 6+; Bazel 5 still uses the builtin implementation.
(pip_parse) The parameter
experimental_requirement_cycles
may be provided amap of names to lists of requirements which form a dependency
cycle.
pip_parse
will break the cycle for you transparently. This behavioris also available under bzlmod as
pip.parse(experimental_requirement_cycles={})
.(toolchains)
py_runtime
can now take an executable target. Note: runfilesfrom the target are not supported yet.
(#1612)
(gazelle) When
python_generation_mode
is set tofile
, create onepy_binary
target for each file with
if __name__ == "__main__"
instead of just onepy_binary
for the whole module.(gazelle) the Gazelle manifest integrity field is now optional. If the
requirements
argument togazelle_python_manifest
is unset, no integrityfield will be generated.
Fixed
(gazelle) The gazelle plugin helper was not working with Python toolchains 3.11
and above due to a bug in the helper components not being on PYTHONPATH.
(pip_parse) The repositories created by
whl_library
can now parse thewhl
METADATA and generate dependency closures irrespective of the host platform
the generation is executed on. This can be turned on by supplying
experimental_target_platforms = ["all"]
to thepip_parse
or thebzlmod
equivalent. This may help in cases where fetching wheels for a different
platform using
download_only = True
feature.(bzlmod pip.parse) The
pip.parse(python_interpreter)
arg now works forspecifying a local system interpreter.
(bzlmod pip.parse) Requirements files with duplicate entries for the same
package (e.g. one for the package, one for an extra) now work.
(bzlmod python.toolchain) Submodules can now (re)register the Python version
that rules_python has set as the default.
(#1638)
(whl_library) Actually use the provided patches to patch the whl_library.
On Windows the patching may result in files with CRLF line endings, as a result
the RECORD file consistency requirement is lifted and now a warning is emitted
instead with a location to the patch that could be used to silence the warning.
Copy the patch to your workspace and add it to the list if patches for the wheel
file if you decide to do so.
(coverage): coverage reports are now created when the version-aware
rules are used.
(#1600)
(toolchains) Workspace builds register the py cc toolchain (bzlmod already
was). This makes e.g.
//python/cc:current_py_cc_headers
Just Work.(#1669)
(bzlmod python.toolchain) The value of
ignore_root_user_error
is now decidedby the root module only.
(#1658)
Added
See https://rules-python.readthedocs.io/en/latest/support.html
file
generation mode can now also add__init__.py
to the srcsattribute for every target in the package. This is enabled through a separate
directive
python_generation_mode_per_file_include_init
.v0.27.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: