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 v1 #270

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Dec 9, 2024

This PR contains the following updates:

Package Type Update Change
rules_python bazel_dep major 0.37.2 -> 1.0.0
rules_python http_archive major 0.37.2 -> 1.0.0

Release Notes

bazelbuild/rules_python (rules_python)

v1.0.0

Compare Source

{#v1-0-0-changed}

Changed

Breaking:

  • (toolchains) stop exposing config settings in python toolchain alias repos.
    Please consider depending on the flags defined in
    //python/config_setting/... and the @platforms package instead.
  • (toolchains) consumers who were depending on the MACOS_NAME and the arch
    attribute in the PLATFORMS list, please update your code to respect the new
    values. The values now correspond to the values available in the
    @platforms// package constraint values.
  • (toolchains) host_platform and interpreter constants are no longer created
    in the toolchain generated alias .bzl files. If you need to access the
    host interpreter during the repository_rule evaluation, please use the
    @python_{version}_host//:python targets created by
    {bzl:obj}python_register_toolchains and
    {bzl:obj}python_register_multi_toolchains macros or the {bzl:obj}python
    bzlmod extension.
  • (bzlmod) pip.parse.parse_all_requirements_files attribute has been removed.
    See notes in the previous versions about what to do.
  • (deps) rules_cc 0.1.0 (workspace) and 0.0.16 (bzlmod).
  • (deps) protobuf 29.0-rc2 (workspace; bzlmod already specifying that version).

Other changes:

  • (python_repository) Start honoring the strip_prefix field for zstd archives.
  • (pypi) {bzl:obj}pip_parse.extra_hub_aliases now works in WORKSPACE files.
  • (binaries/tests) For {obj}--bootstrap_impl=script, a binary-specific (but
    otherwise empty) virtual env is used to customize sys.path initialization.
  • (deps) bazel_skylib 1.7.0 (workspace; bzlmod already specifying that version)
  • (deps) bazel_features 1.21.0; necessary for compatiblity with Bazel 8 rc3
  • (deps) stardoc 0.7.2 to support Bazel 8.

{#v1-0-0-fixed}

Fixed
  • (toolchains) stop depending on uname to get the value of the host platform.
  • (pypi): Correctly handle multiple versions of the same package in the requirements
    files which is useful when including different PyTorch builds (e.g. <pytorch+cpu> vs <pytorch+cu118> ) for different target platforms.
    Fixes (2337).
  • (uv): Correct the sha256sum for the uv binary for aarch64-apple-darwin.
    Fixes (2411).
  • (binaries/tests) ({obj}--bootstrap_impl=scipt) Using sys.executable will
    use the same sys.path setup as the calling binary.
    (2169).
  • (workspace) Corrected protobuf's name to com_google_protobuf, the name is
    hardcoded in Bazel, WORKSPACE mode.
  • (pypi): {bzl:obj}compile_pip_requirements no longer fails on Windows when --enable_runfiles is not enabled.
  • (pypi): {bzl:obj}compile_pip_requirements now correctly updates files in the source tree on Windows when --windows_enable_symlinks is not enabled.
  • (repositories): Add libs/python3.lib and pythonXY.dll to the libpython target
    defined by a repository template. This enables stable ABI builds of Python extensions
    on Windows (by defining Py_LIMITED_API).
  • (rules) py_test and py_binary targets no longer incorrectly remove the
    first sys.path entry when using {obj}--bootstrap_impl=script

{#v1-0-0-added}

Added
  • (gazelle): Parser failures will now be logged to the terminal. Additional
    details can be logged by setting RULES_PYTHON_GAZELLE_VERBOSE=1.
  • (toolchains) allow users to select which variant of the support host toolchain
    they would like to use through
    RULES_PYTHON_REPO_TOOLCHAIN_{VERSION}_{OS}_{ARCH} env variable setting. For
    example, this allows one to use freethreaded python interpreter in the
    repository_rule to build a wheel from sdist.
  • (toolchain) The python interpreters targeting muslc libc have been added
    for the latest toolchain versions for each minor Python version. You can control
    the toolchain selection by using the
    {bzl:obj}//python/config_settings:py_linux_libc build flag.
  • (providers) Added {obj}py_runtime_info.site_init_template and
    {obj}PyRuntimeInfo.site_init_template for specifying the template to use to
    initialize the interpreter via venv startup hooks.
  • (runfiles) (Bazel 7.4+) Added support for spaces and newlines in runfiles paths

{#v1-0-0-removed}

Removed
  • (pypi): Remove pypi_install_dependencies macro that has been included in
    {bzl:obj}py_repositories for a long time.
  • (bzlmod): Remove DEFAULT_PYTHON_VERSION from interpreters.bzl file. If
    you need the version, please use it from the versions.bzl file instead.

{#v0-40-0}

v0.40.0

Compare Source

{#v0-40-changed}

Changed
  • Nothing changed.

{#v0-40-fixed}

Fixed
  • (rules) Don't drop custom import paths if Bazel-builtin PyInfo is removed.
    (2414).

{#v0-40-added}

Added
  • Nothing added.

{#v0-40-removed}

Removed
  • (publish) Remove deprecated requirements.txt for the twine dependencies.
    Please use requirements_linux.txt instead.
  • (python_repository) Use bazel's built in zstd support and remove attributes
    for customizing the zstd binary to be used for zstd archives in the
    {bzl:obj}python_repository repository_rule. This affects the
    {bzl:obj}python_register_toolchains and
    {bzl:obj}python_register_multi_toolchains callers in the WORKSPACE.

{#v0-39-0}

v0.39.0

Compare Source

{#v0-39-0-changed}

Changed
  • (deps) bazel_skylib 1.6.1 -> 1.7.1
  • (deps) rules_cc 0.0.9 -> 0.0.14
  • (deps) protobuf 24.4 -> 29.0-rc2
  • (deps) rules_proto 6.0.0-rc1 -> 6.0.2
  • (deps) stardoc 0.6.2 -> 0.7.1
  • For bzlmod, Bazel 7.4 is now the minimum Bazel version.
  • (toolchains) Use the latest indygreg toolchain release 20241016 for Python versions:
    • 3.9.20
    • 3.10.15
    • 3.11.10
    • 3.12.7
    • 3.13.0
  • (pypi) The naming scheme for the bzlmod spoke repositories have changed as
    all of the given requirements.txt files are now parsed by default, to
    temporarily restore the behavior, you can use
    {bzl:obj}pip.parse.extra_hub_aliases, which will be removed or made noop in
    the future.

{#v0-39-0-fixed}

Fixed
  • (precompiling) Skip precompiling (instead of erroring) if the legacy
    @bazel_tools//tools/python:autodetecting_toolchain is being used
    (#​2364).

{#v0-39-0-added}

Added
  • Bazel 8 is now supported.
  • (toolchain) Support for freethreaded Python toolchains is now available. Use
    the config flag //python/config_settings:py_freethreaded to toggle the
    selection of the free-threaded toolchains.
  • (toolchain) {obj}py_runtime.abi_flags attribute and
    {obj}PyRuntimeInfo.abi_flags field added.

{#v0-39-0-removed}

Removed
  • Support for Bazel 6 using bzlmod has been dropped.

{#v0-38-0}

v0.38.0

Compare Source

{#v0-38-0-changed}

Changed
  • (deps) (WORKSPACE only) rules_cc 0.0.13 and protobuf 27.0 is now the default
    version used; this for Bazel 8+ support (previously version was rules_cc 0.0.9
    and no protobuf version specified)
    (2310).
  • (publish) The dependencies have been updated to the latest available versions
    for the twine publishing rule.
  • (whl_library) Remove --no-build-isolation to allow non-hermetic sdist builds
    by default. Users wishing to keep this argument and to enforce more hermetic
    builds can do so by passing the argument in
    pip.parse#extra_pip_args
  • (pip.parse) {attr}pip.parse.whl_modifications now normalizes the given whl names
    and now pyyaml and PyYAML will both work.
  • (bzlmod) pip.parse spoke repository naming will be changed in an upcoming
    release in places where the users specify different package versions per
    platform in the same hub repository. The naming of the spoke repos is
    considered an implementation detail and we advise the users to use the hub
    repository directly and make use of {bzl:obj}pip.parse.extra_hub_aliases
    feature added in this release.

{#v0-38-0-fixed}

Fixed
  • (pypi) (Bazel 7.4+) Allow spaces in filenames included in whl_librarys
    (617).
  • (pypi) When {attr}pip.parse.experimental_index_url is set, we need to still
    pass the extra_pip_args value when building an sdist.
  • (pypi) The patched wheel filenames from now on are using local version specifiers
    which fixes usage of the said wheels using standard package managers.
  • (bzlmod) The extension evaluation has been adjusted to always generate the
    same lock file irrespective if experimental_index_url is set by any module
    or not. To opt into this behavior, set
    {bzl:obj}pip.parse.parse_all_requirements_files, which will become the
    default in future releases leading up to 1.0.0. Fixes
    #​2268. A known
    issue is that it may break bazel query and in these use cases it is
    advisable to use cquery or switch to download_only = True

{#v0-38-0-added}

Added
  • (publish) The requirements file for the twine publishing rules have been
    updated to have a new convention: requirements_darwin.txt,
    requirements_linux.txt, requirements_windows.txt for each respective OS
    and one extra file requirements_universal.txt if you prefer a single file.
    The requirements.txt file may be removed in the future.
  • The rules_python version is now reported in //python/features.bzl#features.version
  • (pip.parse) {attr}pip.parse.extra_hub_aliases can now be used to expose extra
    targets created by annotations in whl repositories.
    Fixes #​2187.
  • (bzlmod) pip.parse now supports whl-only setup using
    download_only = True where users can specify multiple requirements files
    and use the pip backend to do the downloading. This was only available for
    users setting {bzl:obj}pip.parse.experimental_index_url, but now users have
    more options whilst we continue to work on stabilizing the experimental feature.

{#v0-37-2}


Configuration

📅 Schedule: Branch creation - "* 0-3 * * 1" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants