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

Closed
wants to merge 1 commit into 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.1.0
rules_python http_archive major 0.37.2 -> 1.1.0

Release Notes

bazelbuild/rules_python (rules_python)

v1.1.0

Compare Source

{#v1-1-0-changed}

Changed
  • (toolchains) 3.13 means 3.13.1 (previously 3.13.0)
  • Bazel 6 support is dropped and Bazel 7.4.1 is the minimum supported
    version, per our Bazel support matrix. Earlier versions are not
    tested by CI, so functionality cannot be guaranteed.
  • ({bzl:obj}pip.parse) From now we will make fewer calls to indexes when
    fetching the metadata from SimpleAPI. The calls will be done in parallel to
    each index separately, so the extension evaluation time might slow down if
    not using {bzl:obj}pip.parse.experimental_index_url_overrides.
  • ({bzl:obj}pip.parse) Only query SimpleAPI for packages that have
    sha values in the requirements.txt file.
  • (rules) The version-aware rules have been folded into the base rules and
    the version-aware rules are now simply aliases for the base rules. The
    python_version attribute is still used to specify the Python version.
  • (pypi) Updated versions of packages: pip to 24.3.1 and
    packaging to 24.2.

{#v1-1-0-deprecations}

Deprecations
  • //python/config_settings:transitions.bzl and its py_binary and py_test
    wrappers are deprecated. Use the regular rules instead.

{#v1-1-0-fixed}

Fixed
  • (py_wheel) Use the default shell environment when building wheels to allow
    toolchains that search PATH to be used for the wheel builder tool.
  • (pypi) The requirement argument parsed to whl_library will now not have env
    marker information allowing bazel query to work in cases where the whl is
    available for all of the platforms and the sdist can be built. This fix is
    for both WORKSPACE and bzlmod setups.
    Fixes #​2450.
  • (gazelle) Gazelle will now correctly parse Python3.12 files that use PEP 695 Type
    Parameter Syntax
    . (#​2396)
  • (pypi) Using {bzl:obj}pip_parse.experimental_requirement_cycles and
    {bzl:obj}pip_parse.use_hub_alias_dependencies together now works when
    using WORKSPACE files.
  • (pypi) The error messages when the wheel distributions do not match anything
    are now printing more details and include the currently active flag
    values. Fixes #​2466.
  • (py_proto_library) Fix import paths in Bazel 8.
  • (whl_library) Now the changes to the dependencies are correctly tracked when
    PyPI packages used in {bzl:obj}whl_library during the repository_rule phase
    change. Fixes #​2468.
  • (gazelle) Gazelle no longer ignores setup.py files by default. To restore
    this behavior, apply the # gazelle:python_ignore_files setup.py directive.
  • Don't re-fetch whl_library, python_repository, etc. repository rules
    whenever PATH changes. Fixes
    #​2551.

{#v1-1-0-added}

Added
  • (gazelle) Added include_stub_packages flag to modules_mapping. When set to True, this
    automatically includes corresponding stub packages for third-party libraries
    that are present and used (e.g., boto3boto3-stubs), improving
    type-checking support.
  • (pypi) Freethreaded packages are now fully supported in the
    {obj}experimental_index_url usage or the regular pip.parse usage.
    To select the free-threaded interpreter in the repo phase, please use
    the documented env variables.
    Fixes #​2386.
  • (toolchains) Use the latest astrahl-sh toolchain release 20241206 for Python versions:
    • 3.9.21
    • 3.10.16
    • 3.11.11
    • 3.12.8
    • 3.13.1
  • (rules) Attributes for type definition files (.pyi files) and type-checking
    only dependencies added. See {obj}py_library.pyi_srcs and
    py_library.pyi_deps (and the same named attributes for py_binary and
    py_test).
  • (pypi) pypi-generated targets set pyi_srcs to include *.pyi files.
  • (providers) {obj}PyInfo has new fields to aid static analysis tools:
    {obj}direct_original_sources, {obj}direct_pyi_files,
    {obj}transitive_original_sources, {obj}transitive_pyi_files.

{#v1-1-0-removed}

Removed
  • find_requirements in //python:defs.bzl has been removed.

{#v1-0-0}

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
    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.

@renovate renovate bot force-pushed the renovate/rules_python-1.x branch 2 times, most recently from 6321a20 to 134d105 Compare January 17, 2025 04:31
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch 4 times, most recently from 252ce8c to 23ecf06 Compare January 25, 2025 18:12
@renovate renovate bot force-pushed the renovate/rules_python-1.x branch from 23ecf06 to b7744eb Compare January 25, 2025 18:38
@renovate renovate bot changed the title Update dependency rules_python to v1 Update dependency rules_python to v1 - autoclosed Jan 25, 2025
@renovate renovate bot closed this Jan 25, 2025
@renovate renovate bot deleted the renovate/rules_python-1.x branch January 25, 2025 19:42
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