Update dependency rules_python to v2#25
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
3d796c0 to
4f6d66c
Compare
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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:
1.6.3→2.0.1Release Notes
bazel-contrib/rules_python (rules_python)
v2.0.1Compare Source
{#v2-0-1-fixed}
Fixed
MODULE.bazel.lockfilefacts by passing all of the versions to the
get_indexfunction.Fixes #3756.
(#3749).
{#v2-0-0}
v2.0.0Compare Source
{#v2-0-0-removed}
Removed
{#v2-0-0-changed}
Changed
Breaking
--windows_enable_symlinksis required. Addstartup --windows_enable_symlinksto your.bazelrcto enable Bazel using fullsymlink support on Windows.
--bootstrap_impl=system_python)on supported platforms (Linux/Mac with Bazel 8+, or Windows).
--build_python_zipon Windows is ignored. Use {obj}py_zipapp_binaryto createzips of Python programs.
experimental_index_urlusers would not need to specifytarget platforms if cross-building is required. From now we will only pull
wheels for the host OS to better align with how the rules work with the legacy
pipimplementation. Use {obj}pip.parse.target_platformsto customize thebehavior.
Related to #260.
Other changes:
compile_pip_requirements, buildingsdists in the
whl_libraryrule and fetching wheels usingpip.we will from now on fetch the lists of available packages on each index. The
used package mappings will be written as facts to the
MODULE.bazel.lockfileon supported bazel versions and it should be done at most once. As a result,
per-package {obj}
experimental_index_url_overridesis no longer needed, butif specified, it needs to be provided for all packages not on the default index. What
is more, the flags for
--index_urland--extra-index-urlnow behave in thesame way as in
uvorpip, i.e. we default to--index-urlif the packageis not found in
--extra-index-url. Fixes(#3260 and
#2632).
uv'sdist_manifest.jsonfile. If you have redirects or blocking rules as part ofyour downloader setup, you may need to adjust them. What is more, the default
uv version has been bumped
0.11.2.symlink-based runfiles tree is created, as on unix-like platforms.
{#v2-0-0-fixed}
Fixed
py_zippapp_binarytargets(#3646).
cause the Python runtime repository to be invalidated. The stdlib pyc files
may be reused in between invocations, depending upon the sandboxing
configuration. See the {any}
RULES_PYTHON_PYCACHE_DIRenvironment variablefor more information.
(#3643).
scripts when binary is defined in another bazel module
(#3563).
RUNFILES_DIRinheritance issues, which lead to a childPython binary incorrectly using it's parent's Python binary environment
(#3518).
>=0.10work again. In order to fix this we haddrop support for
powerpc64platform. People interested in the platform canbring it back via the
uv.defaultAPI. Like:Fixes #3712.
{#v2-0-0-added}
Added
MODULE.bazel.lockfile if using{obj}
experimental_index_urlwhich should speed up consecutiveinitializations and should no longer require the network access if the cache is
hydrated. Implements
#2731.
--index-urland--extra-index-urlis now parsed from the lockfile and the {obj}
pip.parse.experimental_index_urland{obj}
pip.parse.experimental_extra_index_urlsisno longer mandatory to leverage the bazel downloader.
Implements
#1357,
#2951.
pip.parse.target_platformsto specify exactly which platforms should be supported.
Implements
#260.
/as a destination indata_fileswill now install file(s) to a folder, preserving their basename.
py_runtime.venv_bin_filesand {obj}PyRuntime.venv_binfilesfield added to specify additional Python runtime files Windows needs for
venvs.
PyExecutableInfo.venv_interpreter_runfiles, and{obj}
PyExecutableInfo.venv_interpreter_symlinksaddeadd_path_prefixargument inpy_wheelwhich can beused to prepend a prefix to the files in the wheel.
{#v1-9-0}
v1.9.0Compare Source
{#v1-9-0-removed}
Removed
{#v1-9-0-changed}
Changed
py_binary/py_testhas been deprecated andreplaced by separate {obj}
py_zipapp_binaryand {obj}py_zipapp_testrules. See
#3567
for a detailed migration guide.
Please consider depending on the flags defined in
//python/config_setting/...and the@platformspackage instead.PYTHONBREAKPOINTenvironment variable is automatically inheritedstampattribute now transitions the Bazel builtin{flag}
--stampflag.in order to make
pytorchand friends easier to patch.py_wheelno longer expands the input depset during analysis,improving analysis performance for targets with large dependency trees.
--enable_runfiles=trueis the default forpy_binary/py_test. Prior behavior can be restored by adding@rules_python//command_line_option:enable_runfiles=falseor@rules_python//command_line_option:enable_runfiles=INHERITto theconfig_settingsattribute. NOTE:enable_runfiles=truewillsoon become required for Windows.
{#v1-9-0-fixed}
Fixed
(#2762)
conftest.pyfiles are added in addition to siblingconftest.py.(#3497) Note
that this behavior can be reverted to the pre-1.9.0 behavior by setting the new
python_include_ancestor_conftestdirective tofalse.{#v1-9-0-added}
Added
--debugger: allows specifying an extra dependencyto add to binaries/tests for custom debuggers.
Use the
bazel_binary_infomodule to access it. The {flag}--stampflag willadd {obj}
--workspace_status_commandinformation.python_generate_pyi_srcshas been added. Whentrue, apy_*target'spyi_srcsattribute will be set if any.pyifilesthat are associated with the target's
srcsare present.(#3354).
py_zipapp_binaryand {obj}py_zipapp_testrules added. Thesewill replace
--build_python_zipand the zip output group ofpy_binary/py_test. The zipapp rules support more functionality, correctness,and have better build performance.
PyExecToolsInfo.exec_runtimefor more easilygetting an RBE-compatible runtime to use for build actions.
PyExecutableInfohas several new fields to aid packagingof binaries: {obj}
PyExecutableInfo.app_runfiles,{obj}
PyExecutableInfo.interpreter_args,{obj}
PyExecutableInfo.stage2_bootstrap, and{obj}
PyExecutableInfo.venv_python_exe.in Requires-Dist metadata. (#3569)
python_include_ancestor_conftesthas been added.When
false, ancestorconftesttargets are not automatically added to{bzl:obj}
py_testtarget dependencies. Thisfalsebehavior is how thingswere in
rules_pythonbefore 1.9.0. The default istrue, as the prior behaviorwas technically incorrect.
(#3596)
{#v1-8-5}
v1.8.5Compare Source
{#v1-8-5-fixed}
Fixed
CurrentRepository()raisingValueErroron Windows.(#3579)
pip_parseno longer silently drops PEP 508 URL-based requirements(
pkg @​ https://...) whenextract_url_srcs=False(the default forpip_repository).fixing missing transitive dependencies when extras contain hyphens
(e.g.,
sqlalchemy[postgresql-psycopg2binary]).(#3587)
{#v1-8-4}
v1.8.4Compare Source
{#v1-8-4-fixed}
Fixed
"1.2" ~= "1.2.0")has been fixed improving compatibility with the PEP440 standard.
Fixes #3580.
where the
whlfile is missing them.Fixes #3554.
{#v1-8-3}
v1.8.3Compare Source
{#v1-8-3-fixed}
Fixed
Fixes #3543.
{#v1-8-2}
v1.8.2Compare Source
{#v1-8-2-fixed}
Fixed
Fixes #3524.
{#v1-8-1}
v1.8.1Compare Source
{#v1-8-1-fixed}
Fixed
Fixes #3524.
{#v1-8-0}
v1.8.0Compare Source
{#v1-8-0-known-issues}
Known Issues
#3416 for
details and possible workarounds.
{#v1-8-0-removed}
Removed
(toolchain) Remove all of the python 3.8 toolchain support out of the box. Users need
to pass the
TOOL_VERSIONSthat include 3.8 toolchains or use thebzlmodAPIs to addthem back. This means any hub
pip.parsecalls that target3.8will be ignored fromnow on. (#2704)
{bzl:obj}
python.single_version_override, like:(toolchain) Remove all of the python 3.9 toolchain versions except for the
3.9.25.This version has reached EOL and will no longer receive any security fixes, please update to
3.10or above. (#2704)(toolchain)
ignore_root_user_errorhas now been flipped to be always enabled andthe
chmodof the python toolchain directories have been removed. From now onrules_pythonalways adds the
pycfiles to the glob excludes and in order to avoid any problems when usingthe toolchains in the repository phase, ensure that you pass
-Bto the python interpreter.(#2016)
{#v1-8-0-changed}
Changed
pipstarhas been enabled for allwhl_libraryinstances where the whlis passed through a label or downloaded using the bazel downloader
(#2949).
pipstarflag default has been flipped to be on by default.It can be disabled through
RULES_PYTHON_ENABLE_PIPSTAR=0environment variable.If you do need to disable it, please add a comment to
#2949.
{#v1-8-0-fixed}
Fixed
py_binarytargets with invalidsrcs. This includes filesthat are not generated or regular files.
#3046
implementation assumes that it is always four levels below the runfiles
directory, leading to incorrect path checks
(#3085).
sys.abiflagsvalue of theunderlying runtime.
fixes to linking, Windows DLL detection, and defines for free threaded
runtimes.
python_headerstarget is now compatible withlayering_check.
(#3381).
gazelle_python_manifest.testso that it accesses manifest files viarunfilepath handling rather than directly (#3397).sys.path.
.servetarget is now compatible with Bazel's--symlink_prefixflag (#3410).
{#v1-8-0-added}
Added
3.9.25Python toolchain from 20251031 release.3.13.10,3.14.1Python toolchain from 20251202 release.3.13.11,3.14.2,3.15.0a2Python toolchains from 20251209 release.pip.parsewhich platforms users care about. This is very useful to ensurethat when users do
bazel queryfor their deps, they don't have to download all of thedependencies for all of the available wheels. Torch wheels can be up of 1GB and it takes a lot
of time to download those, which is unnecessary if only the host platform builds are necessary
to be performed. This is mainly for backwards/forwards compatibility whilst rolling out
RULES_PYTHON_ENABLE_PIPSTAR=1by default. Users ofexperimental_index_urlthat performcross-builds should add {obj}
target_platformsto theirpip.parseinvocations, which willbecome mandatory if any cross-builds are required from the next release.
namespace_package_filesadded. It is a hint foroptimizing venv creation.
{#v1-7-0}
v1.7.0Compare Source
{#v1-7-0-removed}
Removed
removed
(#3215).
{#v1-7-0-changed}
Changed
0.1.5.--bootstrap_impl=system_python,PYTHONPATHis nolonger used to add import paths. The sys.path order has changed from
[app paths, stdlib, runtime site-packages]to[stdlib, app paths, runtime site-packages].--bootstrap_impl=system_python, the sys.path order haschanged from
[app paths, stdlib, runtime site-packages]to[stdlib, app paths, runtime site-packages].experimental_index_url.(#2937).
py_runtimeandPyRuntimeInforeject Python 2 settings.Setting
py_runtime.python_version = "PY2"or non-NonePyRuntimeInfo.py2_runtimeis an error.pipstarflag has been implemented forWORKSPACEand can be flipped to be enabled usingRULES_PYTHON_ENABLE_PIPSTAR=1environment variable. If you do, pleaseadd a comment to
#2949 if you run into any
problems.
With this release we are deprecating {obj}
pip.parse.experimental_target_platformsandpip_repository.experimental_target_platforms. For users usingWORKSPACEandvendoring the
requirements.bzlfile, please re-vendor so that downstream is unaffectedwhen the APIs get removed. If you need to customize the way the dependencies get
evaluated, see our docs on customizing
Requires-Distresolution.from the 20251014 release.
bazel-skylibversion1.8.2
{#v1-7-0-fixed}
Fixed
PyInfoconstructor was setting the wrong value forhas_py3_only_sources- this is now fixed.RUNFILES_DIRenvironments, fixing issues where a
py_binarycalls anotherpy_binary(#3187).
length errors due to too long environment variables.
--bootstrap_impl=scriptnow supports the-Sinterpretersetting.
--venvs_site_packages=yesno longer errors when packages withoverlapping files or directories are used together.
(#3204).
--venvs_site_packages=yesworks for packages that dynamicallylink to shared libraries
(#3228).
--venvs_site_packages=yesincludespthfiles at the root of thesite-packages folder
(#3339).
//python/uv:lock.bzl%locknow works with a local platformruntime.
linux_riscv64is added to the platforms list in_pip_repository_impl,which fixes a build issue for tensorflow on riscv64.
variants. Setting {obj}
--py_linux_libc=musland--py_freethreaded=yesnowactivate them, respectively.
(#3262).
py_console_script_binaryis now compatible with symbolic macros(#3195).
{#v1-7-0-added}
Added
--incompatible_compact_repo_mapping_manifestflag.--bootstrap_impl=system_pythonnow supports the{obj}
main_moduleattribute.--bootstrap_impl=system_pythonnow supports the{any}
RULES_PYTHON_ADDITIONAL_INTERPRETER_ARGSenvironment variable.py_binary,py_test, andpy_wheelrules now have a{obj}
config_settingsattribute to control build flags within the build graph.Custom settings can be added using {obj}
config.add_transition_settinginMODULE.bazelfiles, or {obj}py_repositories(transition_settings=...)inWORKSPACEfiles. See the{ref}
common-deps-with-multiple-pypi-versionsguide on using commondependencies with multiple PyPI versions` for an example.
{obj}
//python/cc:current_py_cc_headers_abi3. This allows Windows buildsa way to depend on headers without the potentially Python unstable ABI
objects from the regular {obj}
//python/cc:current_py_cc_headerstargetbeing included.
//python/cc:current_py_cc_headers_abi3,{obj}
py_cc_toolchain.headers_abi3, and {obj}PyCcToolchainInfo.headers_abi3.//python:features.bzl%features.headers_abi3can be used tofeature-detect the presense of the above.
experimental_index_urlhandling forWindows ARM64 for Python 3.11 and later
(#2276).
{#v1-6-3}
Configuration
📅 Schedule: (UTC)
🚦 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.