Skip to content
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.35.0 #340

Merged
merged 1 commit into from
Aug 16, 2024
Merged

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jun 12, 2024

Mend Renovate

This PR contains the following updates:

Package Type Update Change
rules_python http_archive minor 0.32.2 -> 0.35.0

Release Notes

bazelbuild/rules_python (rules_python)

v0.35.0

Compare Source

Changed
  • (whl_library) A better log message when the wheel is built from an sdist or
    when the wheel is downloaded using download_only feature to aid debugging.
  • (gazelle): Simplify and make gazelle_python.yaml have only top level package name.
    It would work well in cases to reduce merge conflicts.
  • (toolchains): Change some old toochain versions to use 20240726 release to
    include dependency updates 3.8.19, 3.9.19, 3.10.14, 3.11.9
  • (toolchains): Bump default toolchain versions to:
    • 3.12 -> 3.12.4
  • (rules) PYTHONSAFEPATH is inherited from the calling environment to allow
    disabling it (Requires {obj}--bootstrap_impl=script)
    (#​2060).
Fixed
  • (rules) compile_pip_requirements now sets the USERPROFILE env variable on
    Windows to work around an issue where setuptools fails to locate the user's
    home directory.
  • (rules) correctly handle absolute URLs in parse_simpleapi_html.bzl.
  • (rules) Fixes build targets linking against @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's
    libpython3.x.dylib using install_name_tool, setting it to its absolute path under Bazel's
    execroot.
  • (rules) Signals are properly received when using {obj}--bootstrap_impl=script
    (for non-zip builds).
    (#​2043)
  • (rules) Fixes Python builds when the --build_python_zip is set to false on
    Windows. See #​1840.
  • (rules) Fixes Mac + --build_python_zip + {obj}--bootstrap_impl=script
    (#​2030).
  • (rules) User dependencies come before runtime site-packages when using
    {obj}--bootstrap_impl=script.
    (#​2064).
  • (rules) Version-aware rules now return both @_builtins and @rules_python
    providers instead of only one.
    (#​2114).
  • (pip) Fixed pypi parse_simpleapi_html function for feeds with package metadata
    containing ">" sign
  • (toolchains) Added missing executable permission to
    //python/runtime_env_toolchains interpreter script so that it is runnable.
    (#​2085).
  • (pip) Correctly use the sdist downloaded by the bazel downloader when using
    experimental_index_url feature. Fixes
    #​2091.
  • (gazelle) Make gazelle_python_manifest.update manual to avoid unnecessary
    network behavior.
  • (bzlmod): The conflicting toolchains during python extension will no longer
    cause warnings by default. In order to see the warnings for diagnostic purposes
    set the env var RULES_PYTHON_REPO_DEBUG_VERBOSITY to one of INFO, DEBUG or TRACE.
    Fixes #​1818.
  • (runfiles) Make runfiles lookups work for the situation of Bazel 7,
    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
  • (rules) compile_pip_requirements supports multiple requirements input files as srcs.
  • (rules) PYTHONSAFEPATH is inherited from the calling environment to allow
    disabling it (Requires {obj}--bootstrap_impl=script)
    (#​2060).
  • (gazelle) Added 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 or rules_py
    py_test_main in order to integrate with pytest. Currently the default
    flag value is set to true for backwards compatible behaviour, but in the
    future the flag will be flipped be false by default.
  • (toolchains) New Python versions available: 3.12.4 using the 20240726 release.
  • (pypi) Support env markers in requirements files. Note, that this means that
    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 to v24.4
  • (bzlmod): optimize the creation of config settings used in pip to
    reduce the total number of targets in the hub repo.
  • (toolchains) The exec tools toolchain now finds its interpreter by reusing
    the regular interpreter toolchain. This avoids having to duplicate specifying
    where the runtime for the exec tools toolchain is.
  • (toolchains) ({obj}//python:autodetecting_toolchain) is deprecated. It is
    replaced by {obj}//python/runtime_env_toolchains:all. The old target will be
    removed in a future release.
Fixed
  • (bzlmod): When using experimental_index_url the all_requirements,
    all_whl_requirements and all_data_requirements will now only include
    common 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 materialized py_library. If you would like to include
    platform specific packages, using a select statement with references to the
    specific package will still work (e.g.
    my_attr = all_requirements + select(
    {
    "@​platforms//os:linux": ["@​pypi//foo_available_only_on_linux"],
    "//conditions:default": [],
    }
    )
  • (bzlmod): Targets in all_requirements now use the same form as targets returned by the requirement macro.
  • (rules) Auto exec groups are enabled. This allows actions run by the rules,
    such as precompiling, to pick an execution platform separately from what
    other toolchains support.
  • (providers) {obj}PyRuntimeInfo doesn't require passing the
    interpreter_version_info arg.
  • (bzlmod) Correctly pass isolated, quiet and timeout values to whl_library
    and drop the defaults from the lock file.
  • (whl_library) Correctly handle arch-specific dependencies when we encounter a
    platform specific wheel and use experimental_target_platforms.
    Fixes #​1996.
  • (rules) The first element of the default outputs is now the executable again.
  • (pip) Fixed crash when pypi packages lacked a sha (e.g. yanked packages)
Added
  • (toolchains) {obj}//python/runtime_env_toolchains:all, which is a drop-in
    replacement for the "autodetecting" toolchain.
  • (gazelle) Added new python_label_convention and python_label_normalization directives. These directive
    allows altering default Gazelle label format to third-party dependencies useful for re-using Gazelle plugin
    with other rules, including rules_pycross. See #​1939.
Removed
  • (pip): Removes the entrypoint macro that was replaced by py_console_script_binary in 0.26.0.

v0.33.2

Compare Source

Fixed
  • (toolchains) The {obj}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

Compare Source

Fixed
  • (py_binary) Fix building of zip file when using --build_python_zip
    argument. Fixes #​1954.

v0.33.0

Compare Source

Changed
  • (deps) Upgrade the pip_install dependencies to pick up a new version of pip.
  • (toolchains) Optional toolchain dependency: py_binary, py_test, and
    py_library now depend on the //python:exec_tools_toolchain_type for build
    tools.
  • (deps): Bumped bazel_skylib to 1.6.1.
  • (bzlmod): The python and internal rules_python extensions have been
    marked as reproducible and will not include any lock file entries from now
    on.
  • (gazelle): Remove gazelle plugin's python deps and make it hermetic.
    Introduced a new Go-based helper leveraging tree-sitter for syntax analysis.
    Implemented the use of pypi/stdlib-list for standard library module verification.
  • (pip.parse): Do not ignore yanked packages when using experimental_index_url.
    This is to mimic what uv is doing. We will print a warning instead.
  • (pip.parse): Add references to all supported wheels when using 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.
  • (bzlmod) The pythons_hub//:interpreters.bzl no longer has platform-specific
    labels which where left there for compatibility reasons. Move to
    python_{version}_host keys if you would like to have access to a Python
    interpreter that can be used in a repository rule context.
Fixed
  • (gazelle) Remove visibility from NonEmptyAttr.
    Now empty(have no deps/main/srcs/imports attr) py_library/test/binary rules will
    be automatically deleted correctly. For example, if python_generation_mode
    is set to package, when __init__.py is deleted, the py_library generated
    for this package before will be deleted automatically.
  • (whl_library): Use is_python_config_setting to correctly handle multi-python
    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.
  • (gazelle) Fix Gazelle failing on Windows with
    "panic: runtime error: invalid memory address or nil pointer dereference"
  • (bzlmod) remove pip.parse(annotations) attribute as it is unused and has been
    replaced by whl_modifications.
  • (pip) Correctly select wheels when the python tag includes minor versions.
    See (#​1930)
  • (pip.parse): The lock file is now reproducible on any host platform if the
    experimental_index_url is not used by any of the modules in the dependency
    chain. To make the lock file identical on each os and arch, please use
    the experimental_index_url feature which will fetch metadata from PyPI or a
    different private index and write the contents to the lock file. Fixes
    #​1643.
  • (pip.parse): Install yanked packages and print a warning instead of
    ignoring them. This better matches the behaviour of uv pip install.
  • (toolchains): Now matching of the default hermetic toolchain is more robust
    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.
  • (doc) Fix the WORKSPACE requirement vendoring example. Fixes
    #​1918.
Added
  • (rules) Precompiling Python source at build time is available. but is
    disabled by default, for now. Set
    @rules_python//python/config_settings:precompile=enabled to enable it
    by 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)
  • (rules) Attributes and flags to control precompile behavior: precompile,
    precompile_optimize_level, precompile_source_retention,
    precompile_invalidation_mode, and pyc_collection
  • (toolchains) The target runtime toolchain (//python:toolchain_type) has
    two new optional attributes: pyc_tag (tells the pyc filename infix to use) and
    implementation_name (tells the Python implementation name).
  • (toolchains) A toolchain type for build tools has been added:
    //python:exec_tools_toolchain_type.
  • (providers) PyInfo has two new attributes: direct_pyc_files and
    transitive_pyc_files, which tell the pyc files a target makes available
    directly and transitively, respectively.
  • //python:features.bzl added to allow easy feature-detection in the future.
  • (pip) Allow specifying the requirements by (os, arch) and add extra
    validations when parsing the inputs. This is a non-breaking change for most
    users unless they have been passing multiple requirements_* files together
    with extra_pip_args = ["--platform=manylinux_2_4_x86_64"], that was an
    invalid usage previously but we were not failing the build. From now on this
    is explicitly disallowed.
  • (toolchains) Added riscv64 platform definition for python toolchains.
  • (gazelle) The python_visibility directive now supports the $python_root$
    placeholder, just like the python_default_visibility directive does.
  • (rules) A new bootstrap implementation that doesn't require a system Python
    is available. It can be enabled by setting
    {obj}--@​rules_python//python/config_settings:bootstrap_impl=script. It
    will become the default in a subsequent release.
    (#​691)
  • (providers) PyRuntimeInfo has two new attributes:
    {obj}PyRuntimeInfo.stage2_bootstrap_template and
    {obj}PyRuntimeInfo.zip_main_template.
  • (toolchains) A replacement for the Bazel-builtn autodetecting toolchain is
    available. The //python:autodetecting_toolchain alias now uses it.
  • (pip): Support fetching and using the wheels for other platforms. This
    supports customizing whether the linux wheels are pulled for musl or
    glibc, whether universal2 or arch-specific MacOS wheels are preferred and
    it also allows to select a particular libc version. All of this is done via
    the string_flags in @rules_python//python/config_settings. If there are
    no wheels that are supported for the target platform, rules_python will
    fallback onto building the sdist from source. This behaviour can be
    disabled if desired using one of the available string flags as well.
  • (whl_filegroup) Added a new whl_filegroup rule to extract files from a wheel file.
    This is useful to extract headers for use in a cc_library.

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.


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

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot requested a review from a team June 12, 2024 04:14
@renovate renovate bot force-pushed the renovate/rules_python-0.x branch from 623c13f to afe5747 Compare June 13, 2024 00:42
@renovate 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 renovate bot force-pushed the renovate/rules_python-0.x branch from afe5747 to c0aa938 Compare June 19, 2024 16:58
@renovate 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 renovate bot force-pushed the renovate/rules_python-0.x branch from c0aa938 to d3a2bbc Compare July 4, 2024 05:53
@renovate 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 renovate bot force-pushed the renovate/rules_python-0.x branch from d3a2bbc to 23c76ac Compare August 15, 2024 22:35
@renovate renovate bot changed the title Update dependency rules_python to v0.34.0 Update dependency rules_python to v0.35.0 Aug 15, 2024
@anakinxc anakinxc merged commit f6c6fa8 into main Aug 16, 2024
7 checks passed
@anakinxc anakinxc deleted the renovate/rules_python-0.x branch August 16, 2024 05:22
@github-actions github-actions bot locked and limited conversation to collaborators Aug 16, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant