rules_haskell icon indicating copy to clipboard operation
rules_haskell copied to clipboard

chore(deps): update dependency rules_python to v0.27.1

Open avdv opened this issue 2 years ago • 0 comments

This PR contains the following updates:

Package Type Update Change
rules_python bazel_dep minor 0.21.0 -> 0.27.1
rules_python http_archive minor 0.21.0 -> 0.27.1

[!WARNING] Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

bazelbuild/rules_python (rules_python)

v0.27.1

Compare Source

Using Bzlmod with Bazel 6

NOTE: bzlmod support is still beta. APIs subject to change.

Add to your MODULE.bazel file:

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

pip = use_extension("@​rules_python//python/extensions:pip.bzl", "pip")

pip.parse(
    name = "pip",
    requirements_lock = "//:requirements_lock.txt",
)

use_repo(pip, "pip")

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 = "e85ae30de33625a63eca7fc40a94fea845e641888e52f32b6beea91e8b1b2793",
    strip_prefix = "rules_python-0.27.1",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.27.1/rules_python-0.27.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 = "e85ae30de33625a63eca7fc40a94fea845e641888e52f32b6beea91e8b1b2793",
    strip_prefix = "rules_python-0.27.1/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.27.1/rules_python-0.27.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: https://github.com/bazelbuild/rules_python/compare/0.27.0...0.27.1

v0.27.0

Compare Source

Changed
  • Make //python/pip_install:pip_repository_bzl bzl_library target internal as all of the publicly available symbols (etc. package_annotation) are re-exported via //python:pip_bzl bzl_library.

  • (gazelle) Gazelle Python extension no longer has runtime dependencies. Using GAZELLE_PYTHON_RUNTIME_DEPS from @rules_python_gazelle_plugin//:def.bzl is no longer necessary.

  • (pip_parse) The installation of pip_parse repository rule toolchain dependencies is now done as part of py_repositories call.

  • (pip_parse) The generated requirements.bzl file now has an additional symbol all_whl_requirements_by_package which provides a map from the normalized PyPI package name to the target that provides the built wheel file. Use pip_utils.normalize_name function from @rules_python//python:pip.bzl to convert a PyPI package name to a key in the all_whl_requirements_by_package map.

  • (pip_parse) The flag incompatible_generate_aliases has been flipped to True by default on non-bzlmod setups allowing users to use the same label strings during the transition period. For example, instead of @pypi_foo//:pkg, you can now use @pypi//foo or @pypi//foo:pkg. Other labels that are present in the foo package are dist_info, whl and data. Note, that the @pypi_foo//:pkg labels are still present for backwards compatibility.

  • (gazelle) The flag use_pip_repository_aliases is now set to True by default, which will cause gazelle to change third-party dependency labels from @pip_foo//:pkg to @pip//foo by default.

  • The compile_pip_requirements now defaults to pyproject.toml if the src or requirements_in attributes are unspecified, matching the upstream pip-compile behaviour more closely.

  • (gazelle) Use relative paths if possible for dependencies added through the use of the resolve directive.

  • (gazelle) When using python_generation_mode file, one py_test target is made per test file even if a target named __test__ or a file named __test__.py exists in the same package. Previously in these cases there would only be one test target made.

Breaking changes:

  • (pip) pip_install repository rule in this release has been disabled and will fail by default. The API symbol is going to be removed in the next version, please migrate to pip_parse as a replacement. The pip_parse rule no longer supports requirements attribute, please use requirements_lock instead.

  • (py_wheel) switch incompatible_normalize_name and incompatible_normalize_version to True by default to enforce PEP440 for wheel names built by rules_python.

  • (tools/wheelmaker.py) drop support for Python 2 as only Python 3 is tested.

Fixed
  • Skip aliases for unloaded toolchains. Some Python versions that don't have full platform support, and referencing their undefined repositories can break operations like bazel query rdeps(...).

  • Python code generated from proto_library with strip_import_prefix can be imported now.

  • (py_wheel) Produce deterministic wheel files and make RECORD file entries follow the order of files written to the .whl archive.

  • (gazelle) Generate a single py_test target when gazelle:python_generation_mode project is used.

  • (gazelle) Move waiting for the Python interpreter process to exit to the shutdown hook to make the usage of the exec.Command more idiomatic.

  • (toolchains) Keep tcl subdirectory in Windows build of hermetic interpreter.

  • (bzlmod) sub-modules now don't have the //conditions:default clause in the hub repos created by pip.parse. This should fix confusing error messages in case there is a misconfiguration of toolchains or a bug in rules_python.

Added
  • (bzlmod) Added .whl patching support via patches and patch_strip arguments to the new pip.override tag class.

  • (pip) Support for using PEP621 compliant pyproject.toml for creating a resolved requirements.txt file.

  • (utils) Added a pip_utils struct with a normalize_name function to allow users to find out how rules_python would normalize a PyPI distribution name.

v0.26.0

Compare Source

Changed
  • Python version patch level bumps:

    • 3.8.15 -> 3.8.18
    • 3.9.17 -> 3.9.18
    • 3.10.12 -> 3.10.13
    • 3.11.4 -> 3.11.6
  • (deps) Upgrade rules_go 0.39.1 -> 0.41.0; this is so gazelle integration works with upcoming Bazel versions

  • (multi-version) The distribs attribute is no longer propagated. This attribute has been long deprecated by Bazel and shouldn't be used.

  • Calling //python:repositories.bzl#py_repositories() is required. It has always been documented as necessary, but it was possible to omit it in certain cases. An error about @rules_python_internal means the py_repositories() call is missing in WORKSPACE.

  • (bzlmod) The pip.parse extension will generate os/arch specific lock file entries on bazel>=6.4.

Added
  • (bzlmod, entry_point) Added py_console_script_binary, which allows adding custom dependencies to a package's entry points and customizing the py_binary rule used to build it.

  • New Python versions available: 3.8.17, 3.11.5 using https://github.com/indygreg/python-build-standalone/releases/tag/20230826.

  • (gazelle) New # gazelle:python_generation_mode file directive to support generating one py_library per file.

  • (python_repository) Support netrc and auth_patterns attributes to enable authentication against private HTTP hosts serving Python toolchain binaries.

  • //python:packaging_bzl added, a bzl_library for the Starlark files //python:packaging.bzl requires.

  • (py_wheel) Added the incompatible_normalize_name feature flag to normalize the package distribution name according to latest Python packaging standards. Defaults to False for the time being.

  • (py_wheel) Added the incompatible_normalize_version feature flag to normalize the package version according to PEP440 standard. This also adds support for local version specifiers (versions with a + in them), in accordance with PEP440. Defaults to False for the time being.

  • New Python versions available: 3.8.18, 3.9.18, 3.10.13, 3.11.6, 3.12.0 using https://github.com/indygreg/python-build-standalone/releases/tag/20231002. 3.12.0 support is considered beta and may have issues.

Removed
  • (bzlmod) The entry_point macro is no longer supported and has been removed in favour of the py_console_script_binary macro for bzlmod users.

  • (bzlmod) The pip.parse no longer generates {hub_name}_{py_version} hub repos as the entry_point macro has been superseded by py_console_script_binary.

  • (bzlmod) The pip.parse no longer generates {hub_name}_{distribution} hub repos.

Fixed
  • (whl_library) No longer restarts repository rule when fetching external dependencies improving initial build times involving external dependency fetching.

  • (gazelle) Improve runfiles lookup hermeticity.

v0.25.0

Compare Source

Changed
  • Python version patch level bumps:
    • 3.9.16 -> 3.9.17
    • 3.10.9 -> 3.10.12
    • 3.11.1 -> 3.11.4
  • (bzlmod) pip.parse can no longer automatically use the default Python version; this was an unreliable and unsafe behavior. The python_version arg must always be explicitly specified.
Fixed
  • (docs) Update docs to use correct bzlmod APIs and clarify how and when to use various APIs.
  • (multi-version) The main arg is now correctly computed and usually optional.
  • (bzlmod) pip.parse no longer requires a call for whatever the configured default Python version is.
Added
  • Created a changelog.
  • (gazelle) Stop generating unnecessary imports.
  • (toolchains) s390x supported for Python 3.9.17, 3.10.12, and 3.11.4.

v0.24.0

Compare Source

Changed
  • BREAKING (gazelle) Gazelle 0.30.0 or higher is required
  • (bzlmod) @python_aliases renamed to `@python_versions
  • (bzlmod) pip.parse arg name renamed to hub_name
  • (bzlmod) pip.parse arg incompatible_generate_aliases removed and always true.
Fixed
  • (bzlmod) Fixing Windows Python Interpreter symlink issues
  • (py_wheel) Allow twine tags and args
  • (toolchain, bzlmod) Restrict coverage tool visibility under bzlmod
  • (pip) Ignore temporary pyc.NNN files in wheels
  • (pip) Add format() calls to glob_exclude templates
  • plugin_output in py_proto_library rule
Added
  • Using Gazelle's lifecycle manager to manage external processes
  • (bzlmod) pip.parse can be called multiple times with different Python versions
  • (bzlmod) Allow bzlmod pip.parse to reference the default python toolchain and interpreter
  • (bzlmod) Implementing wheel annotations via whl_mods
  • (gazelle) support multiple requirements files in manifest generation
  • (py_wheel) Support for specifying Description-Content-Type and Summary in METADATA
  • (py_wheel) Support for specifying Project-URL
  • (compile_pip_requirements) Added generate_hashes arg (default True) to control generating hashes
  • (pip) Create all_data_requirements alias
  • Expose Python C headers through the toolchain.

v0.23.1

Compare Source

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@​rules_python//python:extensions.bzl", "pip")

pip.parse(
    name = "pip",
    requirements_lock = "//:requirements_lock.txt",
)

use_repo(pip, "pip")

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 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841",
    strip_prefix = "rules_python-0.23.1",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.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 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841",
    strip_prefix = "rules_python-0.23.1/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.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()

What's Changed

Full Changelog: https://github.com/bazelbuild/rules_python/compare/0.23.0...0.23.1

v0.23.0

Compare Source

Using Bzlmod with Bazel 6

NOTE: bzlmod support is still experimental; apis are still subject to change

This release introduces two notable changes to bzlmod support:

  • A default toolchain is automatically registered for you. You no longer need to call register_toolchains() yourself. Depending on rules_python through bazel_dep is sufficient. Note, however, the Python version used for this default toolchain will change frequently/unexpectedly to track the a recent Python version.
  • The name arg of python.toolchain has been removed. The toolchain repo name format is python_X_Y e.g. python_3_11.

Add to your MODULE.bazel file:

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

pip = use_extension("@​rules_python//python:extensions.bzl", "pip")

pip.parse(
    name = "pip",
    requirements_lock = "//:requirements_lock.txt",
)

use_repo(pip, "pip")

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 = "8272287b125a23bfc79650ecbbc045ebcaee4d632338b1a50aad34357bcbadce",
    strip_prefix = "rules_python-0.23.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.23.0/rules_python-0.23.0.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 = "8272287b125a23bfc79650ecbbc045ebcaee4d632338b1a50aad34357bcbadce",
    strip_prefix = "rules_python-0.23.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.23.0/rules_python-0.23.0.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()

What's Changed

New Contributors

Full Changelog: https://github.com/bazelbuild/rules_python/compare/0.22.0...0.23.0

v0.22.0

Compare Source

Notable and Breaking Changes

Bzlmod extension paths have changed

As part of fixing some fundamental issues with the bzlmod support, we had to change the path to our extensions. Instead of all extensions being in a single extensions.bzl file, each extension is in its own file. Users must update the file path in their use_repo() statements as follows:

  • use_extension("@​rules_python//python:extensions.bzl", "python") -> use_extension("@​rules_python//python/extensions:python.bzl", "python")
  • use_extension("@​rules_python//python:extensions.bzl", "pip") -> use_extension("@​rules_python//python/extensions:pip.bzl", "pip")

The following sed commands should approximate the necessary changes:

sed 'sXuse_extension("@​rules_python//python:extensions.bzl", "python")Xuse_extension("@​rules_python//python/extensions:python.bzl", "python")X'`
sed 'sXuse_extension("@​rules_python//python:extensions.bzl", "pip")Xuse_extension("@​rules_python//python/extensions:pip.bzl", "pip")X'`

See examples/bzlmod_build_file_generation/MODULE.bazel for an example of the new paths.

Lockfile output churn

The output of lockfiles has slightly changed. Though functionally the same, their integrity hashes will change.


Using Bzlmod with Bazel 6

NOTE: Bzlmod support is still in beta.

Add to your MODULE.bazel file:

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

pip = use_extension("@​rules_python//python/extensions:pip.bzl", "pip")

pip.parse(
    name = "pip",
    requirements_lock = "//:requirements_lock.txt",
)

use_repo(pip, "pip")

### (Optional) Register a specific python toolchain instead of using the host version
python = use_extension("@​rules_python//python/extensions:python.bzl", "python")

python.toolchain(
    name = "python3_9",
    python_version = "3.9",
)

use_repo(python, "python3_9_toolchains")

register_toolchains(
    "@​python3_9_toolchains//:all",
)

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 = "863ba0fa944319f7e3d695711427d9ad80ba92c6edd0b7c7443b84e904689539",
    strip_prefix = "rules_python-0.22.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.22.0/rules_python-0.22.0.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 = "863ba0fa944319f7e3d695711427d9ad80ba92c6edd0b7c7443b84e904689539",
    strip_prefix = "rules_python-0.22.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.22.0/rules_python-0.22.0.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()

What's Changed

New Contributors

Full Changelog: https://github.com/bazelbuild/rules_python/compare/0.21.0...0.22.0


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 these updates again.


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

This PR has been generated by Renovate Bot.

avdv avatar Nov 07 '23 09:11 avdv