Skip to content

Releases: bazel-contrib/rules_python

0.21.0

20 Apr 16:51
c72c7bc

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "94750828b18044533e98a129003b6a68001204038dc4749f40b195b24c38f49f",
    strip_prefix = "rules_python-0.21.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.21.0/rules_python-0.21.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 = "94750828b18044533e98a129003b6a68001204038dc4749f40b195b24c38f49f",
    strip_prefix = "rules_python-0.21.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.21.0/rules_python-0.21.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

  • cleanup: factor reexports.bzl into the respective implementation files by @rickeylev in #1137
  • fix: bump installer to handle windows better by @f0rmiga in #1138
  • build: Fixing buildifier by @chrislovecnm in #1148
  • docs: Updating documentation for bzlmod by @chrislovecnm in #1149
  • fix: use a consistent buildifier version for CI and pre-commit by @aignas in #1151
  • chore: bump buildifier to 6.1.0 by @aignas in #1152
  • fix: correct the labels returned by all_requirements lists by @aignas in #1146
  • fix: gazelle correctly adds new py_test rules by @amartani in #1143
  • fix: respect kind mapping by @OniOni in #1158
  • test: cleanup gazelle tests and run them in parallel by @aignas in #1159
  • [docs] Fixing rule name in coverage.md docs by @anfelbar in #1162
  • feat: Support specifying multiple download URLs in tool_versions. by @quval in #1145

New Contributors

Full Changelog: 0.20.0...0.21.0

0.20.0

20 Mar 20:17
c394c46

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "a644da969b6824cc87f8fe7b18101a8a6c57da5db39caa6566ec6109f37d2141",
    strip_prefix = "rules_python-0.20.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.20.0/rules_python-0.20.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 = "a644da969b6824cc87f8fe7b18101a8a6c57da5db39caa6566ec6109f37d2141",
    strip_prefix = "rules_python-0.20.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.20.0/rules_python-0.20.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

  • chore: fix some lingering GH archive URLs by @alexeagle in #1108
  • feat: add bzlmod support for gazelle plugin by @aignas in #1077
  • docs: Simplify pull request template by @rickeylev in #1100
  • chore: fix syntax that stardoc misunderstands as HTML by @alexeagle in #1110
  • fix: update gazelle to properly handle dot in package name. by @OniOni in #1083
  • fix(bzlmod): expose ignore_root_user_error attribute from python_register_toolchains by @alexeagle in #1114
  • feat: add bzl_library for defs.bzl and its dependencies by @rickeylev in #1115
  • fix: docs for ignore_root_user_error at the module level by @stonier in #1112
  • fix: generation of toolchain aliases //:defs.bzl file. by @oxidase in #1088
  • feat: make variable substitution for py_wheel abi, python_tag args by @stonier in #1113
  • feat: add bzl_library for proto.bzl by @rickeylev in #1116
  • cleanup: Remove license comment in proto build file by @rickeylev in #1118
  • fix: restrict proto package visibility to private by @rickeylev in #1117
  • cleanup: rename proto BUILD -> BUILD.bazel by @rickeylev in #1119
  • feat: bzl file per rule/provider by @rickeylev in #1122
  • cleanup: fix typo: libraries, not libaries by @rickeylev in #1127
  • feat: add public entry point for PyCcLinkParamsInfo by @rickeylev in #1128
  • cleanup: reformat defs.bzl doc string. by @rickeylev in #1126
  • fix: Include filename when parsing imports for gazelle by @jlaxson in #1133

New Contributors

Full Changelog: 0.19.0...0.20.0

0.19.0

28 Feb 21:48
c504355

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "ffc7b877c95413c82bfd5482c017edcf759a6250d8b24e82f41f3c8b8d9e287e",
    strip_prefix = "rules_python-0.19.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.19.0/rules_python-0.19.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 = "ffc7b877c95413c82bfd5482c017edcf759a6250d8b24e82f41f3c8b8d9e287e",
    strip_prefix = "rules_python-0.19.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.19.0/rules_python-0.19.0.tar.gz",
)

What's Changed

  • Making exclusions more strict by @linzhp in #1054
  • docs: fix requirement line for runfiles example by @alexeagle in #1052
  • fix: make py_proto_library respect PyInfo imports by @aignas in #1046
  • Make toolchain acceptance tests work with latest Bazel build CI pipeline by @rickeylev in #1062
  • Only set py_runtime.coverage_tool for Bazel 6 and higher. by @rickeylev in #1061
  • Allow building with unreleased Bazel versions. by @rickeylev in #1063
  • Extending server process timeout by @linzhp in #1060
  • chore: regenerate gazelle_python.yaml manifest by @aignas in #1066
  • feat: wheel publishing by @alexeagle in #1015
  • fix: checked-in requirements imports generated requirements by @f0rmiga in #1053
  • fix: Propagate testonly et al for wheel .dist targets by @rickeylev in #1064
  • fix: correctly advertise minimum supported version by @aignas in #1065
  • refactor: starlark reimplementation of pip_repository by @aignas in #1043
  • Add some docs about how to configure coverage. by @rickeylev in #1074
  • Remove empty line between copyright and build file docstring. by @rickeylev in #1084
  • cleanup: Remove license type comment; they're no longer required by @rickeylev in #1078
  • fix: Use GitHub download URL for BCR URL instead of archive URL. by @rickeylev in #1093
  • Add a script to add missing license headers by @rickeylev in #1094
  • fix: Update pre-commit dependency versions so isort works. by @rickeylev in #1096
  • docs: doc that the Conventional Commit style should be used for merged commits and PRs by @rickeylev in #1099
  • test(core): Add analysis tests for base Python rules. by @rickeylev in #1102

Full Changelog: 0.18.0...0.19.0

0.18.1

14 Feb 18:39

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "29a801171f7ca190c543406f9894abf2d483c206e14d6acbd695623662320097",
    strip_prefix = "rules_python-0.18.1",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.18.1/rules_python-0.18.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 = "29a801171f7ca190c543406f9894abf2d483c206e14d6acbd695623662320097",
    strip_prefix = "rules_python-0.18.1/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.18.1/rules_python-0.18.1.tar.gz",
)

Relevant Changes

  • Only set py_runtime.coverage_tool for Bazel 6 and higher. (#1061)

Full Changelog: 0.18.0...0.18.1

0.18.0

08 Feb 16:49
6c8ae76

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "36362b4d54fcb17342f9071e4c38d63ce83e2e57d7d5599ebdde4670b9760664",
    strip_prefix = "rules_python-0.18.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.18.0/rules_python-0.18.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 = "36362b4d54fcb17342f9071e4c38d63ce83e2e57d7d5599ebdde4670b9760664",
    strip_prefix = "rules_python-0.18.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.18.0/rules_python-0.18.0.tar.gz",
)

Relevant Changes

Post-release notes

  • bug #1056: This release does not work with Bazel 5. Please upgrade to 0.18.1

Coverage

rules_python now includes coverage as part of the toolchain as an opt-in feature. To get started, pass register_coverage_tool = True to python_register_toolchains or python_register_multi_toolchains.

runfiles wheel

The bazel-runfiles wheel is now published to https://pypi.org/project/bazel-runfiles/.

What's Changed

New Contributors

Full Changelog: 0.17.3...0.18.0

0.17.3

27 Jan 01:15
3aefaed

Choose a tag to compare

Note, the prior 0.17 tags (0.17.0, 0.17.1, and 0.17.2) were never published as releases and can be ignored.

Breaking Change

The Gazelle extension for Python has been updated to better integrate with the conventions of Python and Bazel. This includes changes to how test files with the prefix or suffix of "test_" and "*_test" are handled. If a test target is not present, these files will now be added to individual py_test targets. To align your projects with these changes, any test utility files that were previously included in py_library targets and have the aforementioned prefix or suffix, will need to be renamed for consistency.

To use the gazelle extension you must now fetch another external repository, rules_python_gazelle_plugin, see the snippet below.
Also, change your gazelle binary registration to load from this new repository:

gazelle(
    name = "gazelle",
    data = GAZELLE_PYTHON_RUNTIME_DEPS,
    gazelle = "@rules_python_gazelle_plugin//python:gazelle_binary",
)

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "8c15896f6686beb5c631a4459a3aa8392daccaab805ea899c9d14215074b60ef",
    strip_prefix = "rules_python-0.17.3",
    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.17.3.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 = "8c15896f6686beb5c631a4459a3aa8392daccaab805ea899c9d14215074b60ef",
    strip_prefix = "rules_python-0.17.3/gazelle",
    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.17.3.tar.gz",
)

What's Changed

  • Update runfiles lib by @fmeum in #982
  • Refactor poor naming and unused code in wheel_installer by @groodt in #990
  • Add new Python versions including 3.11 by @jvolkman in #992
  • runfiles: Drop outdated comments about vendoring by @fmeum in #986
  • Implement py_proto_library by @comius in #832
  • runfiles: Fix usage instructions by @fmeum in #985
  • chore: fix red CI - buildifier was broken by #832 by @alexeagle in #996
  • runfiles: Import CurrentRepository from Bazel by @fmeum in #988
  • Fix misleading error message by @suzaku in #927
  • runfiles: Apply repo mapping to Rlocation path by @fmeum in #998
  • fix(deps): declare our dependency on bazel_skylib by @alexeagle in #1001
  • chore: publish a runfiles library as a wheel by @alexeagle in #995
  • feat: allow patching the interpreter fetched via toolchains by @mattem in #1004
  • Redirect stdout when checking imports. by @aptenodytes-forsteri in #1007
  • Fix Python interpreter target labels with @@ prefixes. by @oxidase in #940
  • cleanup: remove vendored copy of skylib by @alexeagle in #1003
  • generate py_test without test by @linzhp in #999
  • Add runtime dependencies to gazelle extension by @linzhp in #993
  • fix: allow omitting the strip_prefix in tool_versions by @lummax in #975
  • refactor(gazelle): Move plugin to a separate directory. by @aignas in #983
  • fix: windows *.lib interface in python_headers by @lummax in #976
  • python_repository: Exclude pycache files by @illicitonion in #907
  • runfiles: Remove dead code by @fmeum in #1011
  • runfiles: Add proper test coverage for an edge case by @fmeum in #1012
  • refactor: pull implementations out of packaging.bzl by @alexeagle in #1013
  • Fix requirement parser by @tgeng in #1009
  • feat(gazelle)!: Move the plugin to a separate workspace by @aignas in #972
  • refactor: py_wheel now a macro by @alexeagle in #1014
  • fix: ensure 'patches' attr is included for the canonical representation of the toolchain by @mattem in #1018
  • feat: produce publishable distribution archives by @alexeagle in #1019
  • fix(release): use correct GH workflows syntax by @alexeagle in #1020
  • feat: allow absolute urls in tool_versions by @lummax in #973
  • chore: revert publish wheel on releases by @alexeagle in #1022

New Contributors

Full Changelog: 0.16.2...0.17.3

0.16.2

10 Jan 22:08
70cce26

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "48a838a6e1983e4884b26812b2c748a35ad284fd339eb8e2a6f3adf95307fbcd",
    strip_prefix = "rules_python-0.16.2",
    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.16.2.tar.gz",
)

What's Changed

  • fix: gazelle panics when "# gazelle:ignore" doesn't have a value by @stdll00 in #915
  • Remove unused code by @groodt in #933
  • Various updates build_file_generation example by @chrislovecnm in #869
  • Fix CI after bazel 6.0.0 by @groodt in #938
  • Refactor wheel_installer by @groodt in #937
  • Updates lockfiles by @groodt in #943
  • fix: embed stamped version in py_wheel METADATA by @mattoberle in #935
  • chore(gazelle): clarify a particular failure message by @srabraham in #939
  • pip: 22.2.1 -> 22.3.1; build: 0.8.0 -> 0.9.0; installer: 0.5.1 -> 0.6.0; pip-tools: 6.8.0 -> 6.12.1 by @groodt in #944
  • Update name of compile_pip_requirements by @groodt in #945
  • Rename BUILD -> BUILD.bazel by @groodt in #946
  • Add missing .gitignore for //examples/pip_parse_vendored by @groodt in #947
  • Removes unused "incremental" property by @groodt in #948
  • Disable bytecode optimization during wheel installation by @groodt in #949
  • Fix broken link. by @phst in #955
  • Don’t use keyword argument for TestEnvironment. by @phst in #954
  • Fix hyphen in requirement didn't work with bzlmod (#952) by @acr92 in #957
  • chore(docs): fix bad html formatting by @alexeagle in #959
  • Fully switch to bazel 6.0.0 in all places by @aignas in #960
  • Use 'os' instead of 'ioutil' in gazelle tests by @aignas in #962
  • Refactor and separate concerns of external python package handling code by @groodt in #953

New Contributors

Full Changelog: 0.16.1...0.16.2

0.16.1

06 Dec 22:02
9bf7c49

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "497ca47374f48c8b067d786b512ac10a276211810f4a580178ee9b9ad139323a",
    strip_prefix = "rules_python-0.16.1",
    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.16.1.tar.gz",
)

What's Changed

New Contributors

Full Changelog: 0.15.1...0.16.1

0.15.1

01 Dec 22:46
c572cdc

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "bazel_skylib",
    sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
    ],
)
http_archive(
    name = "rules_python",
    sha256 = "bc4e59e17c7809a5b373ba359e2c974ed2386c58634819ac5a89c0813c15705c",
    strip_prefix = "rules_python-0.15.1",
    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.15.1.tar.gz",
)

What's Changed

  • fix: pip_compile to handle multiple generated requirements.in by @f0rmiga in #909
  • ci: add debian11 to the matrix by @f0rmiga in #910

Full Changelog: 0.15.0...0.15.1

0.15.0

29 Nov 17:58
518c873

Choose a tag to compare

Using Bzlmod with Bazel 6

Add to your MODULE.bazel file:

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

pip = use_extension("@rules_python//python:extensions.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.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 = "bazel_skylib",
    sha256 = "74d544d96f4a5bb630d465ca8bbcfe231e3594e5aae57e1edbf17a6eb3ca2506",
    urls = [
        "https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
        "https://github.com/bazelbuild/bazel-skylib/releases/download/1.3.0/bazel-skylib-1.3.0.tar.gz",
    ],
)
http_archive(
    name = "rules_python",
    sha256 = "fda23c37fbacf7579f94d5e8f342d3a831140e9471b770782e83846117dd6596",
    strip_prefix = "rules_python-0.15.0",
    url = "https://github.com/bazelbuild/rules_python/archive/refs/tags/0.15.0.tar.gz",
)

What's Changed

  • Expose python3n.lib as libpython's interface_library by @jlaxson in #890
  • Fix //docs:update by @philsc in #876
  • fix: correct bcr metadata template filename by @kormide in #892
  • fix: fix a bug where some transitive deps could not be resolved via bzlmod by @kormide in #893
  • feat: multi-toolchain support by @f0rmiga in #846
  • bump: python toolchain releases by @f0rmiga in #902
  • Correctly reference os-specific labels from central alias repo by @jlaxson in #889
  • Document how to get started working on rules_python by @rickeylev in #891
  • fix: #895 append _py if ending with .py by @rbuckland in #897
  • fix: missing RunEnvironmentInfo by @f0rmiga in #904

New Contributors

Full Changelog: 0.14.0...0.15.0