Open
Conversation
615d346 to
b120988
Compare
b120988 to
275b8a1
Compare
275b8a1 to
265fe13
Compare
265fe13 to
3eb50df
Compare
3eb50df to
f40f5a4
Compare
f40f5a4 to
d4073bf
Compare
d4073bf to
934bcc1
Compare
934bcc1 to
1bb9152
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.5.3→1.8.3Warning
Some dependencies could not be looked up. Check the warning logs for more information.
Release Notes
bazel-contrib/rules_python (rules_python)
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)
{object}
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_platformsand{obj}
pip_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}
v1.6.3Compare Source
{#v1-6-3-fixed}
Fixed
the right wheel when there are multiple wheels for the target platform
(e.g.
musllinux_1_1_x86_64andmusllinux_1_2_x86_64). If the userwants to set the minimum version for the selection algorithm, use the
{attr}
pip.defaults.whl_platform_tagsattribute to configure that. Ifmusllinux_*_x86_64is specified, we will choose the lowest availablewheel version. Fixes #3250.
{#v1-6-0}
v1.6.1Compare Source
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your
MODULE.bazelfile:Using WORKSPACE
Paste this snippet into your
WORKSPACEfile:Gazelle plugin
Paste this snippet into your
WORKSPACEfile:Full Changelog: bazel-contrib/rules_python@1.6.0...1.6.1
v1.6.0Compare Source
{#v1-6-0-changed}
Changed
to the package path. This is enabled via the
# gazelle:python_experimental_allow_relative_importstrue directive ({gh-issue}2203).python.ParserOutputare now all public.__init__.py,__main__.py, or__test__.pyfiles to bepresent in a directory to generate a
BUILD.bazelfile.#2630
linux_x86_64,linux_aarch64,osx_x86_64,osx_aarch64andwindows_x86_64. If you are on other platforms, you need touse the
pip.defaultto configure it yourself. If you are interested in graduating theplatform, consider helping set us up CI for them and update the documentation.
#!/usr/bin/env bashis now used as a shebang in the stage1 bootstrap template.gazelle/README.mdto{gh-path}
gazelle/docsand are now available on the primary documentation siteat https://rules-python.readthedocs.io/en/latest/gazelle/docs/index.html
{#v1-6-0-fixed}
Fixed
local_runtime_reponow respects changes to theDEVELOPER_DIRandXCODE_VERSIONrepo env vars, fixing stale cache issues on macOS with system (i.e. Xcode-supplied) Python
(#3123).
bazel vendorvendor directorywould fail if the constraints file contained environment markers. Fixes
#2996.
result in missing files at runtime
(#2782).
py.typedto indicate itsupports type checking
(#2503).
defaultsconfiguration now supports any custom platformname.
in ambiguous select matches ({gh-issue}
2759) and should be much more efficientwhen running
bazel querydue to fewer repositories being included({gh-issue}
2849).local_runtime_repoworks with multiarch Debian with Python 3.8(#3099).
all_requirements(#2921).
REPLstub to make it possible to use thedefault stub template from outside
rules_python({gh-issue}3101).absolute imports (Python 2's behavior without
absolute_import). Previousbehavior can be restored using the directive
# gazelle:python_resolve_sibling_imports true(#2985).
$PATH(#3150).
bazel vendornow works inbzlmod({gh-issue}3079).local_runtime_reponow works on Windows(#3055).
local_runtime_reposupports more types of Pythoninstallations (Mac frameworks, missing dynamic libraries, and other
esoteric cases, see
#3148 for details).
requirements.txtfiles that use different versions of the samepackage targeting different target platforms.
(#2797).
{#v1-6-0-added}
Added
readlinesupport is available,see (#3114).
(#3114).
requirements.txtevaluation, use the newly addeddeveloper preview of the
pip.defaulttag class. Onlyrules_pythonand root modules can usethis feature. You can also configure custom
config_settingsusingpip.default. Itcan also be used to set the global
netrcorauth_patternsvariables.:extracted_whl_filesfilegroup targetof all the files extracted from the wheel. This can be used in lieu of
{obj}
whl_filegroupto avoid copying/extracting wheel multiple times toget a subset of their files.
gazelle:python_generate_pyi_deps; whentrue,dependencies added to satisfy type-only imports (
if TYPE_CHECKING) and typestub packages are added to
pyi_depsinstead ofdeps.gazelle:include_pytest_conftest. When not set (thedefault) or
true, gazelle will inject anyconftest.pyfile found in the samedirectory as a {obj}
py_testtarget to that {obj}py_testtarget'sdeps.This behavior is unchanged from previous versions. When
false, the:conftestdep is not added to the {obj}
py_testtarget.gazelle:python_generate_proto; whentrue,Gazelle generates
py_proto_libraryrules forproto_library.falseby default.proto language.
gazelle:python_proto_naming_convention; controlsnaming of
py_proto_libraryrules.{#v1-6-0-removed}
Removed
{#v1-5-4}
v1.5.4Compare Source
{#v1-5-4-fixed}
Fixed
local_runtime_reponow checks if the include directory existsbefore attempting to watch it, fixing issues on macOS with system Python
(#3043).
{#v1-5-3}
View the repository job log