[!WARNING]
Some dependencies could not be looked up. Check the Dependency Dashboard for more information.
Release Notes
bazelbuild/rules_python (bazel-runfiles)
### [`v0.27.1`](https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.1)
[Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.27.0...0.27.1)
##### Using Bzlmod with Bazel 6
**NOTE: bzlmod support is still beta. APIs subject to change.**
Add to your `MODULE.bazel` file:
```starlark
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:
```starlark
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:
```starlark
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`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0270---2023-11-16)
[Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.26.0...0.27.0)
[0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0
##### 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](https://peps.python.org/pep-0621/) 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.
[0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0
### [`v0.26.0`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0260---2023-10-06)
[Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.25.0...0.26.0)
##### 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`](./docs/py_console_script_binary.md), 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.
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "after 9am every weekday,before 5pm every weekday" (UTC).
🚦 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 Mend Renovate. View repository job log here.
This PR contains the following updates:
==0.25.0
->==0.27.1
Release Notes
bazelbuild/rules_python (bazel-runfiles)
### [`v0.27.1`](https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.1) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.27.0...0.27.1) ##### Using Bzlmod with Bazel 6 **NOTE: bzlmod support is still beta. APIs subject to change.** Add to your `MODULE.bazel` file: ```starlark 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: ```starlark 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: ```starlark 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`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0270---2023-11-16) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.26.0...0.27.0) [0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0 ##### 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](https://peps.python.org/pep-0621/) 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. [0.27.0]: https://togithub.com/bazelbuild/rules_python/releases/tag/0.27.0 ### [`v0.26.0`](https://togithub.com/bazelbuild/rules_python/blob/HEAD/CHANGELOG.md#0260---2023-10-06) [Compare Source](https://togithub.com/bazelbuild/rules_python/compare/0.25.0...0.26.0) ##### 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`](./docs/py_console_script_binary.md), 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.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "after 9am every weekday,before 5pm every weekday" (UTC).
🚦 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.
This PR has been generated by Mend Renovate. View repository job log here.