Update dependency rules_python to v0.27.1 #546
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.23.1
->0.27.1
Release Notes
bazelbuild/rules_python (rules_python)
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:Gazelle plugin
Paste this snippet into your
WORKSPACE
file:Full Changelog: bazelbuild/rules_python@0.27.0...0.27.1
v0.27.0
Compare Source
Changed
Make
//python/pip_install:pip_repository_bzl
bzl_library
target internalas all of the publicly available symbols (etc.
package_annotation
) arere-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
isno longer necessary.
(pip_parse) The installation of
pip_parse
repository rule toolchaindependencies is now done as part of
py_repositories
call.(pip_parse) The generated
requirements.bzl
file now has an additional symbolall_whl_requirements_by_package
which provides a map from the normalizedPyPI package name to the target that provides the built wheel file. Use
pip_utils.normalize_name
function from@rules_python//python:pip.bzl
toconvert 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 toTrue
by default onnon-bzlmod
setups allowing users to use the same labelstrings during the transition period. For example, instead of
@pypi_foo//:pkg
, you can now use@pypi//foo
or@pypi//foo:pkg
. Otherlabels that are present in the
foo
package aredist_info
,whl
anddata
. Note, that the@pypi_foo//:pkg
labels are still present forbackwards compatibility.
(gazelle) The flag
use_pip_repository_aliases
is now set toTrue
bydefault, which will cause
gazelle
to change third-party dependency labelsfrom
@pip_foo//:pkg
to@pip//foo
by default.The
compile_pip_requirements
now defaults topyproject.toml
if thesrc
or
requirements_in
attributes are unspecified, matching the upstreampip-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
, onepy_test
target ismade per test file even if a target named
__test__
or a file named__test__.py
exists in the same package. Previously in these cases therewould only be one test target made.
Breaking changes:
(pip)
pip_install
repository rule in this release has been disabled andwill fail by default. The API symbol is going to be removed in the next
version, please migrate to
pip_parse
as a replacement. Thepip_parse
rule no longer supports
requirements
attribute, please userequirements_lock
instead.(py_wheel) switch
incompatible_normalize_name
andincompatible_normalize_version
toTrue
by default to enforcePEP440
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
withstrip_import_prefix
can be imported now.(py_wheel) Produce deterministic wheel files and make
RECORD
file entriesfollow the order of files written to the
.whl
archive.(gazelle) Generate a single
py_test
target whengazelle: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 thehub repos created by
pip.parse
. This should fix confusing error messagesin case there is a misconfiguration of toolchains or a bug in
rules_python
.Added
(bzlmod) Added
.whl
patching support viapatches
andpatch_strip
arguments to the new
pip.override
tag class.(pip) Support for using PEP621 compliant
pyproject.toml
for creating a resolvedrequirements.txt
file.(utils) Added a
pip_utils
struct with anormalize_name
function to allow usersto find out how
rules_python
would normalize a PyPI distribution name.v0.26.0
Compare Source
Changed
Python version patch level bumps:
(deps) Upgrade rules_go 0.39.1 -> 0.41.0; this is so gazelle integration works with upcoming Bazel versions
(multi-version) The
distribs
attribute is no longer propagated. Thisattribute has been long deprecated by Bazel and shouldn't be used.
Calling
//python:repositories.bzl#py_repositories()
is required. It hasalways been documented as necessary, but it was possible to omit it in certain
cases. An error about
@rules_python_internal
means thepy_repositories()
call is missing in
WORKSPACE
.(bzlmod) The
pip.parse
extension will generate os/arch specific lockfile entries on
bazel>=6.4
.Added
(bzlmod, entry_point) Added
py_console_script_binary
, whichallows adding custom dependencies to a package's entry points and customizing
the
py_binary
rule used to build it.New Python versions available:
3.8.17
,3.11.5
usinghttps://github.com/indygreg/python-build-standalone/releases/tag/20230826.
(gazelle) New
# gazelle:python_generation_mode file
directive to supportgenerating one
py_library
per file.(python_repository) Support
netrc
andauth_patterns
attributes to enableauthentication against private HTTP hosts serving Python toolchain binaries.
//python:packaging_bzl
added, abzl_library
for the Starlarkfiles
//python:packaging.bzl
requires.(py_wheel) Added the
incompatible_normalize_name
feature flag tonormalize the package distribution name according to latest Python
packaging standards. Defaults to
False
for the time being.(py_wheel) Added the
incompatible_normalize_version
feature flagto normalize the package version according to PEP440 standard. This
also adds support for local version specifiers (versions with a
+
in them), in accordance with PEP440. Defaults to
False
for thetime being.
New Python versions available:
3.8.18
,3.9.18
,3.10.13
,3.11.6
,3.12.0
usinghttps://github.com/indygreg/python-build-standalone/releases/tag/20231002.
3.12.0
support is considered beta and may have issues.Removed
(bzlmod) The
entry_point
macro is no longer supported and has been removedin favour of the
py_console_script_binary
macro forbzlmod
users.(bzlmod) The
pip.parse
no longer generates{hub_name}_{py_version}
hub reposas the
entry_point
macro has been superseded bypy_console_script_binary
.(bzlmod) The
pip.parse
no longer generates{hub_name}_{distribution}
hub repos.Fixed
(whl_library) No longer restarts repository rule when fetching external
dependencies improving initial build times involving external dependency
fetching.
(gazelle) Improve runfiles lookup hermeticity.
v0.25.0
Compare Source
Changed
pip.parse
can no longer automatically use the defaultPython version; this was an unreliable and unsafe behavior. The
python_version
arg must always be explicitly specified.Fixed
various APIs.
main
arg is now correctly computed and usually optional.pip.parse
no longer requires a call for whatever the configureddefault Python version is.
Added
v0.24.0
Compare Source
Changed
@python_aliases
renamed to `@python_versionspip.parse
argname
renamed tohub_name
pip.parse
argincompatible_generate_aliases
removed and alwaystrue.
Fixed
Added
pip.parse
can be called multiple times with different Pythonversions
pip.parse
to reference the default python toolchain and interpreterwhl_mods
Description-Content-Type
andSummary
in METADATAProject-URL
generate_hashes
arg (default True) tocontrol generating hashes
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 has been generated by Mend Renovate. View repository job log here.
This change is