Skip to content

Update dependency rules_python to v1.8.3#23

Open
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/rules_python-1.x
Open

Update dependency rules_python to v1.8.3#23
renovate[bot] wants to merge 1 commit intomasterfrom
renovate/rules_python-1.x

Conversation

@renovate
Copy link

@renovate renovate bot commented Sep 1, 2025

This PR contains the following updates:

Package Type Update Change
rules_python bazel_dep minor 1.5.31.8.3

Warning

Some dependencies could not be looked up. Check the warning logs for more information.


Release Notes

bazel-contrib/rules_python (rules_python)

v1.8.3

Compare Source

{#v1-8-3-fixed}

Fixed
  • (pipstar) Fix whl extraction on Windows when bazelrc has XX flags.
    Fixes #​3543.

{#v1-8-2}

v1.8.2

Compare Source

{#v1-8-2-fixed}

Fixed
  • (venvs) relax the C library filename check to make tensorflow work
    Fixes #​3524.

{#v1-8-1}

v1.8.1

Compare Source

{#v1-8-1-fixed}

Fixed
  • (pipstar) Extra resolution that refers back to the package being resolved works again.
    Fixes #​3524.

{#v1-8-0}

v1.8.0

Compare Source

{#v1-8-0-known-issues}

Known Issues
  • (gazelle) Windows support for the Gazelle plugin may be broken. See
    #​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_VERSIONS that include 3.8 toolchains or use the bzlmod APIs to add
    them back. This means any hub pip.parse calls that target 3.8 will be ignored from
    now on. (#​2704)
    {object}python.single_version_override, like:

    python = use_extension("@​rules_python//python/extensions:python.bzl", "python")
    
    python.single_version_override(
        python_version = "3.8.20",
        sha256 = {
            "aarch64-apple-darwin": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4",
            "aarch64-unknown-linux-gnu": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed",
            "x86_64-apple-darwin": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb",
            "x86_64-pc-windows-msvc": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e",
            "x86_64-unknown-linux-gnu": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87",
        },
        urls = ["https://github.com/astral-sh/python-build-standalone/releases/download/20241002/cpython-{python_version}+20241002-{platform}-{build}.tar.gz"],
    )
  • (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.10 or above. (#​2704)

  • (toolchain) ignore_root_user_error has now been flipped to be always enabled and
    the chmod of the python toolchain directories have been removed. From now on rules_python
    always adds the pyc files to the glob excludes and in order to avoid any problems when using
    the toolchains in the repository phase, ensure that you pass -B to the python interpreter.
    (#​2016)

{#v1-8-0-changed}

Changed
  • (toolchains) Use toolchains from the 20251031 release.
  • (gazelle) Internally split modules mapping generation to be per-wheel for concurrency and caching.
  • (pip) pipstar has been enabled for all whl_library instances where the whl
    is passed through a label or downloaded using the bazel downloader
    (#​2949).
  • (pypi) pipstar flag default has been flipped to be on by default.
    It can be disabled through RULES_PYTHON_ENABLE_PIPSTAR=0 environment variable.
    If you do need to disable it, please add a comment to
    #​2949.
  • (gazelle deps) rules_go bumped from 0.55.1 to 0.59.0
  • (gazelle deps) gazelle bumped from 0.36.0 to 0.47.0

{#v1-8-0-fixed}

Fixed
  • (gazelle) Remove {obj}py_binary targets with invalid srcs. This includes files
    that are not generated or regular files.
    #​3046
  • (runfiles) Fix incorrect Python runfiles path assumption - the existing
    implementation assumes that it is always four levels below the runfiles
    directory, leading to incorrect path checks
    (#​3085).
  • (toolchains) local toolchains now tell the sys.abiflags value of the
    underlying runtime.
  • (toolchains) various local toolchain fixes: add abi3 header targets,
    fixes to linking, Windows DLL detection, and defines for free threaded
    runtimes.
  • (toolchains) The python_headers target is now compatible with
    layering_check.
  • (performance) 90% reduction in py_binary/py_test analysis phase cost.
    (#​3381).
  • (gazelle) Fix gazelle_python_manifest.test so that it accesses manifest files via runfile path handling rather than directly (#​3397).
  • (core rules) For the system_python bootstrap, the runfiles root is added to
    sys.path.
  • (sphinxdocs) The sphinxdocs .serve target is now compatible with Bazel's --symlink_prefix
    flag (#​3410).

{#v1-8-0-added}

Added
  • (toolchains) 3.9.25 Python toolchain from 20251031 release.
  • (toolchains) 3.13.10, 3.14.1 Python toolchain from 20251202 release.
  • (toolchains) 3.13.11, 3.14.2, 3.15.0a2 Python toolchains from 20251209 release.
  • (pypi) API to tell pip.parse which platforms users care about. This is very useful to ensure
    that when users do bazel query for their deps, they don't have to download all of the
    dependencies 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=1 by default. Users of experimental_index_url that perform
    cross-builds should add {obj}target_platforms to their pip.parse invocations, which will
    become mandatory if any cross-builds are required from the next release.
  • (py_library) Attribute {obj}namespace_package_files added. It is a hint for
    optimizing venv creation.

{#v1-7-0}

v1.7.0

Compare Source

{#v1-7-0-removed}

Removed
  • (core rules) Support for Bazel's long deprecated "extra actions" has been
    removed
    (#​3215).

{#v1-7-0-changed}

Changed
  • (deps) bumped rules_cc dependency to 0.1.5.
  • (bootstrap) For {obj}--bootstrap_impl=system_python, PYTHONPATH is no
    longer 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) For {obj}--bootstrap_impl=system_python, the sys.path order has
    changed from [app paths, stdlib, runtime site-packages] to [stdlib, app paths, runtime site-packages].
  • (pip) Publishing deps are no longer pulled via experimental_index_url.
    (#​2937).
  • (toolchains) py_runtime and PyRuntimeInfo reject Python 2 settings.
    Setting py_runtime.python_version = "PY2" or non-None
    PyRuntimeInfo.py2_runtime is an error.
  • (pypi) pipstar flag has been implemented for WORKSPACE and can be flipped to be enabled using RULES_PYTHON_ENABLE_PIPSTAR=1 environment variable. If you do, please
    add a comment to
    #​2949 if you run into any
    problems.
    With this release we are deprecating {obj}pip.parse.experimental_target_platforms and
    {obj}pip_repository.experimental_target_platforms. For users using WORKSPACE and
    vendoring the requirements.bzl file, please re-vendor so that downstream is unaffected
    when the APIs get removed. If you need to customize the way the dependencies get
    evaluated, see our docs on customizing Requires-Dist resolution.
  • (toolchains) Added Python versions 3.15.0a1, 3.14.0, 3.13.9, 3.12.12, 3.11.14, 3.10.19, and 3.9.24
    from the 20251014 release.
  • (deps) (bzlmod) Upgraded to bazel-skylib version
    1.8.2

{#v1-7-0-fixed}

Fixed
  • (rules) The PyInfo constructor was setting the wrong value for
    has_py3_only_sources - this is now fixed.
  • (bootstrap) The stage1 bootstrap script now correctly handles nested RUNFILES_DIR
    environments, fixing issues where a py_binary calls another py_binary
    (#​3187).
  • (bootstrap) For Windows, having many dependencies no longer results in max
    length errors due to too long environment variables.
  • (bootstrap) {obj}--bootstrap_impl=script now supports the -S interpreter
    setting.
  • (venvs) {obj}--venvs_site_packages=yes no longer errors when packages with
    overlapping files or directories are used together.
    (#​3204).
  • (venvs) {obj}--venvs_site_packages=yes works for packages that dynamically
    link to shared libraries
    (#​3228).
  • (venvs) {obj}--venvs_site_packages=yes includes pth files at the root of the
    site-packages folder
    (#​3339).
  • (uv) {obj}//python/uv:lock.bzl%lock now works with a local platform
    runtime.
  • (pypi) linux_riscv64 is added to the platforms list in _pip_repository_impl,
    which fixes a build issue for tensorflow on riscv64.
  • (toolchains) WORKSPACE builds now correctly register musl and freethreaded
    variants. Setting {obj}--py_linux_libc=musl and --py_freethreaded=yes now
    activate them, respectively.
    (#​3262).
  • (rules) {obj}py_console_script_binary is now compatible with symbolic macros
    (#​3195).

{#v1-7-0-added}

Added
  • (runfiles) The Python runfiles library now supports Bazel's
    --incompatible_compact_repo_mapping_manifest flag.
  • (bootstrap) {obj}--bootstrap_impl=system_python now supports the
    {obj}main_module attribute.
  • (bootstrap) {obj}--bootstrap_impl=system_python now supports the
    {any}RULES_PYTHON_ADDITIONAL_INTERPRETER_ARGS environment variable.
  • (rules) The py_binary, py_test, and py_wheel rules now have a
    {obj}config_settings attribute to control build flags within the build graph.
    Custom settings can be added using {obj}config.add_transition_setting in
    MODULE.bazel files, or {obj}py_repositories(transition_settings=...) in
    WORKSPACE files. See the
    {ref}common-deps-with-multiple-pypi-versions guide on using common
    dependencies with multiple PyPI versions` for an example.
  • (toolchains) Stable ABI headers support added. To use, depend on
    {obj}//python/cc:current_py_cc_headers_abi3. This allows Windows builds
    a way to depend on headers without the potentially Python unstable ABI
    objects from the regular {obj}//python/cc:current_py_cc_headers target
    being included.
    • Adds {obj}//python/cc:current_py_cc_headers_abi3,
      {obj}py_cc_toolchain.headers_abi3, and {obj}PyCcToolchainInfo.headers_abi3.
    • {obj}//python:features.bzl%features.headers_abi3 can be used to
      feature-detect the presense of the above.
  • (toolchains) Local toolchains can use a label for the interpreter to use.
  • (pypi) Support for environment marker handling and experimental_index_url handling for
    Windows ARM64 for Python 3.11 and later
    (#​2276).

{#v1-6-3}

v1.6.3

Compare Source

{#v1-6-3-fixed}

Fixed
  • (pypi) We now use the Minimal Version Selection (MVS) algorithm to select
    the right wheel when there are multiple wheels for the target platform
    (e.g. musllinux_1_1_x86_64 and musllinux_1_2_x86_64). If the user
    wants to set the minimum version for the selection algorithm, use the
    {attr}pip.defaults.whl_platform_tags attribute to configure that. If
    musllinux_*_x86_64 is specified, we will choose the lowest available
    wheel version. Fixes #​3250.

{#v1-6-0}

v1.6.1

Compare 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.bazel file:

bazel_dep(name = "rules_python", version = "1.6.1")

python = use_extension("@​rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

pip = use_extension("@​rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
    hub_name = "pypi",
    python_version = "3.13",
    requirements_lock = "//:requirements_lock.txt",
)

use_repo(pip, "pypi")
Using WORKSPACE

Paste this snippet into your WORKSPACE file:

load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
    name = "rules_python",
    sha256 = "f2e80f97f9c0b82e2489e61e725df1e6bdaf16c4dacf5e26b95668787164baff",
    strip_prefix = "rules_python-1.6.1",
    url = "https://github.com/bazel-contrib/rules_python/releases/download/1.6.1/rules_python-1.6.1.tar.gz",
)

load("@​rules_python//python:repositories.bzl", "py_repositories")

py_repositories()
Gazelle plugin

Paste this snippet into your WORKSPACE file:

load("@​bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "rules_python_gazelle_plugin",
    sha256 = "f2e80f97f9c0b82e2489e61e725df1e6bdaf16c4dacf5e26b95668787164baff",
    strip_prefix = "rules_python-1.6.1/gazelle",
    url = "https://github.com/bazel-contrib/rules_python/releases/download/1.6.1/rules_python-1.6.1.tar.gz",
)

# To compile the rules_python gazelle extension from source,

# we must fetch some third-party go dependencies that it uses.

load("@​rules_python_gazelle_plugin//:deps.bzl", _py_gazelle_deps = "gazelle_deps")

_py_gazelle_deps()

Full Changelog: bazel-contrib/rules_python@1.6.0...1.6.1

v1.6.0

Compare Source

{#v1-6-0-changed}

Changed
  • (gazelle) update minimum gazelle version to 0.36.0 - may cause BUILD file changes
  • (gazelle) update minimum rules_go version to 0.55.1
  • (gazelle) remove custom go-tree-sitter module BUILD file
  • (gazelle) For package mode, resolve dependencies when imports are relative
    to the package path. This is enabled via the
    # gazelle:python_experimental_allow_relative_imports true directive ({gh-issue}2203).
  • (gazelle) Types for exposed members of python.ParserOutput are now all public.
  • (gazelle) Removed the requirement for __init__.py, __main__.py, or __test__.py files to be
    present in a directory to generate a BUILD.bazel file.
  • (toolchain) Updated the following toolchains to build 20250808 to patch CVE-2025-47273:
    • 3.9.23
    • 3.10.18
    • 3.11.13
    • 3.12.11
    • 3.14.0rc1
  • (toolchain) Python 3.13 now references 3.13.6
  • (gazelle) Switched back to smacker/go-tree-sitter, fixing
    #​2630
  • (pypi) From now on the list of default platforms only includes linux_x86_64, linux_aarch64,
    osx_x86_64, osx_aarch64 and windows_x86_64. If you are on other platforms, you need to
    use the pip.default to configure it yourself. If you are interested in graduating the
    platform, consider helping set us up CI for them and update the documentation.
  • (ci) We are now testing on Ubuntu 22.04 for RBE and non-RBE configurations.
  • (core) #!/usr/bin/env bash is now used as a shebang in the stage1 bootstrap template.
  • (gazelle:docs) The Gazelle docs have been migrated from {gh-path}gazelle/README.md to
    {gh-path}gazelle/docs and are now available on the primary documentation site
    at https://rules-python.readthedocs.io/en/latest/gazelle/docs/index.html

{#v1-6-0-fixed}

Fixed
  • (toolchains) local_runtime_repo now respects changes to the DEVELOPER_DIR and XCODE_VERSION
    repo env vars, fixing stale cache issues on macOS with system (i.e. Xcode-supplied) Python
    (#​3123).
  • (pypi) Fixes an issue where builds using a bazel vendor vendor directory
    would fail if the constraints file contained environment markers. Fixes
    #​2996.
  • (pypi) Wheels with BUILD.bazel (or other special Bazel files) no longer
    result in missing files at runtime
    (#​2782).
  • (runfiles) The pypi runfiles package now includes py.typed to indicate it
    supports type checking
    (#​2503).
  • (pypi) The pipstar defaults configuration now supports any custom platform
    name.
  • (pypi) The selection of the whls has been changed and should no longer result
    in ambiguous select matches ({gh-issue}2759) and should be much more efficient
    when running bazel query due to fewer repositories being included
    ({gh-issue}2849).
  • Multi-line python imports (e.g. with escaped newlines) are now correctly processed by Gazelle.
  • (toolchains) local_runtime_repo works with multiarch Debian with Python 3.8
    (#​3099).
  • (pypi) Expose pypi packages only common to all Python versions in all_requirements
    (#​2921).
  • (repl) Normalize the path for the REPL stub to make it possible to use the
    default stub template from outside rules_python ({gh-issue}3101).
  • (gazelle) Fixes gazelle adding sibling module dependencies to resolve
    absolute imports (Python 2's behavior without absolute_import). Previous
    behavior can be restored using the directive
    # gazelle:python_resolve_sibling_imports true
  • (pypi) Show overridden index URL of packages when downloading metadata have failed.
    (#​2985).
  • (toolchains) use "command -v" to find interpreter in $PATH
    (#​3150).
  • (pypi) bazel vendor now works in bzlmod ({gh-issue}3079).
  • (toolchains) local_runtime_repo now works on Windows
    (#​3055).
  • (toolchains) local_runtime_repo supports more types of Python
    installations (Mac frameworks, missing dynamic libraries, and other
    esoteric cases, see
    #​3148 for details).
  • (pypi) Support requirements.txt files that use different versions of the same
    package targeting different target platforms.
    (#​2797).
  • (py_wheel) Add directories in deterministic order.

{#v1-6-0-added}

Added
  • (repl) Default stub now has tab completion, where readline support is available,
    see (#​3114).
    (#​3114).
  • (pypi) To configure the environment for requirements.txt evaluation, use the newly added
    developer preview of the pip.default tag class. Only rules_python and root modules can use
    this feature. You can also configure custom config_settings using pip.default. It
    can also be used to set the global netrc or auth_patterns variables.
  • (pypi) PyPI dependencies now expose an :extracted_whl_files filegroup target
    of all the files extracted from the wheel. This can be used in lieu of
    {obj}whl_filegroup to avoid copying/extracting wheel multiple times to
    get a subset of their files.
  • (gazelle) New directive gazelle:python_generate_pyi_deps; when true,
    dependencies added to satisfy type-only imports (if TYPE_CHECKING) and type
    stub packages are added to pyi_deps instead of deps.
  • (toolchain) Add toolchains for aarch64 windows for
    • 3.11.13
    • 3.12.11
    • 3.13.6
    • 3.14.0rc1
  • (gazelle): New annotation gazelle:include_pytest_conftest. When not set (the
    default) or true, gazelle will inject any conftest.py file found in the same
    directory as a {obj}py_test target to that {obj}py_test target's deps.
    This behavior is unchanged from previous versions. When false, the :conftest
    dep is not added to the {obj}py_test target.
  • (gazelle) New directive gazelle:python_generate_proto; when true,
    Gazelle generates py_proto_library rules for proto_library. false by default.
    • Note: Users must manually configure their Gazelle target to support the
      proto language.
  • (gazelle) New directive gazelle:python_proto_naming_convention; controls
    naming of py_proto_library rules.

{#v1-6-0-removed}

Removed
  • Nothing removed.

{#v1-5-4}

v1.5.4

Compare Source

{#v1-5-4-fixed}

Fixed
  • (toolchains) local_runtime_repo now checks if the include directory exists
    before attempting to watch it, fixing issues on macOS with system Python
    (#​3043).

{#v1-5-3}


  • If you want to rebase/retry this PR, check this box

View the repository job log

@github-actions github-actions bot added documentation Improvements or additions to documentation dependencies lang-python labels Sep 1, 2025
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from 615d346 to b120988 Compare September 4, 2025 23:11
@renovate renovate bot changed the title Update dependency rules_python to v1.5.4 Update dependency rules_python to v1.6.0 Sep 4, 2025
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from b120988 to 275b8a1 Compare September 9, 2025 00:02
@renovate renovate bot changed the title Update dependency rules_python to v1.6.0 Update dependency rules_python to v1.6.1 Sep 9, 2025
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from 275b8a1 to 265fe13 Compare September 22, 2025 04:05
@renovate renovate bot changed the title Update dependency rules_python to v1.6.1 Update dependency rules_python to v1.6.3 Sep 22, 2025
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from 265fe13 to 3eb50df Compare November 16, 2025 20:00
@renovate renovate bot changed the title Update dependency rules_python to v1.6.3 Update dependency rules_python to v1.7.0 Nov 16, 2025
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from 3eb50df to f40f5a4 Compare January 16, 2026 22:52
@renovate renovate bot changed the title Update dependency rules_python to v1.7.0 Update dependency rules_python to v1.8.0 Jan 16, 2026
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from f40f5a4 to d4073bf Compare January 21, 2026 08:11
@renovate renovate bot changed the title Update dependency rules_python to v1.8.0 Update dependency rules_python to v1.8.1 Jan 21, 2026
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from d4073bf to 934bcc1 Compare January 25, 2026 15:06
@renovate renovate bot changed the title Update dependency rules_python to v1.8.1 Update dependency rules_python to v1.8.2 Jan 25, 2026
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from 934bcc1 to 1bb9152 Compare January 28, 2026 19:52
@renovate renovate bot changed the title Update dependency rules_python to v1.8.2 Update dependency rules_python to v1.8.3 Jan 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies documentation Improvements or additions to documentation lang-python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants