Skip to content

Releases: bazelbuild/rules_python

0.25.0

22 Aug 21:18
7e4d19c
Compare
Choose a tag to compare

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.25.0")

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 = "5868e73107a8e85d8f323806e60cad7283f34b32163ea6ff1020cf27abef6036",
    strip_prefix = "rules_python-0.25.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.25.0/rules_python-0.25.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 = "5868e73107a8e85d8f323806e60cad7283f34b32163ea6ff1020cf27abef6036",
    strip_prefix = "rules_python-0.25.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.25.0/rules_python-0.25.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

  • docs: Use correct pip extension path in generated release notes by @rickeylev in #1310
  • doc: correct name of rules_python in bzlmod support doc by @aignas in #1317
  • test: Remove testonly=True from test toolchain implementations by @rickeylev in #1327
  • cleanup: Add placeholder comment to defs.bzl to make patching loads easier by @rickeylev in #1319
  • fix(multi-versions): correctly default 'main' arg for transition rules by @aignas in #1316
  • refactor: have a single function for normalized PyPI package names by @aignas in #1329
  • refactor: add a version label function for consistent labels by @aignas in #1328
  • docs: Updating README by @chrislovecnm in #1282
  • revert(bzlmod)!: allow bzlmod pip.parse to implicitly use default python version by @chrislovecnm in #1341
  • feat: stop generating imports when not necessary by @linzhp in #1335
  • fix: Don't require default Python version for pip hubs by @rickeylev in #1344
  • docs: Better explain when and how to use toolchains for bzlmod by @rickeylev in #1349
  • refactor(whl_library): move bazel file generation to Starlark by @aignas in #1336
  • feat: add a tool to update internal dependencies by @aignas in #1321
  • refactor: support rendering pkg aliases without whl_library_alias by @aignas in #1346
  • Feat: Using repo-relative labels by @chrislovecnm in #1367
  • feat: Add s390x release by @namrata-ibm in #1352
  • feat: Improve exec error handling by @chrislovecnm in #1368
  • feat: Update MINOR_MAPPING to latest version by @namrata-ibm in #1370
  • feat: add CHANGELOG to make summarizing releases easier. by @rickeylev in #1382
  • docs: add update changelog as part of pull request instructions by @rickeylev in #1384
  • tests: Expose test's fake_header.h so py_cc_toolchain tests can use it. by @rickeylev in #1388
  • Update changelog for 0.25.0 by @rickeylev in #1389

New Contributors

Full Changelog: 0.24.0...0.25.0

0.24.0

11 Jul 22:31
02b521f
Compare
Choose a tag to compare

BREAKING CHANGES

Users of this Gazelle extension must upgrade to Gazelle v0.30.0 or above.

Using Bzlmod with Bazel 6

NOTE: bzlmod support is still beta; APIs are settling down but some are still subject to change

Add to your MODULE.bazel file:

bazel_dep(name = "rules_python", version = "0.24.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 = "0a8003b044294d7840ac7d9d73eef05d6ceb682d7516781a4ec62eeb34702578",
    strip_prefix = "rules_python-0.24.0",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.24.0/rules_python-0.24.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 = "0a8003b044294d7840ac7d9d73eef05d6ceb682d7516781a4ec62eeb34702578",
    strip_prefix = "rules_python-0.24.0/gazelle",
    url = "https://github.com/bazelbuild/rules_python/releases/download/0.24.0/rules_python-0.24.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

  • fix: Ignore tempoary pyc.NNN files in wheels by @rickeylev in #1266
  • fix(bzlmod): Fixing Windows Python Interpreter symlink issues by @chrislovecnm in #1265
  • feat(bzlmod)!: Calling pip multiple times allowing for multiple Python versions by @chrislovecnm in #1254
  • fix(py_wheel.publish): allow twine tags and args by @alexeagle in #1271
  • feat(py_wheel): Add support for specifying Description-Content-Type and Summary in METADATA by @sfc-gh-zpeng in #1274
  • feat(py_wheel): Add support for specifying Project-URL in METADATA by @sfc-gh-wzhao in #1276
  • test: basic analysis tests for py_wheel by @rickeylev in #1279
  • fix: plugin_output in py_proto_library rule by @comius in #1280
  • cleanup: Typos, doc, and formatting cleanup in pip extension et al by @rickeylev in #1275
  • feat: Upgrading gazelle and rules_go by @chrislovecnm in #1283
  • tests: make analysis tests support --incompatible_enable_cc_toolchain_resolution by @comius in #1281
  • feat!: using Gazelle's lifecycle manager to manage external processes by @linzhp in #1284
  • fix(toolchain): restrict coverage tool visibility under bzlmod by @aignas in #1252
  • fix: add format() calls to glob_exclude templates by @lpulley in #1285
  • feat: Expose Python C headers through the toolchain. by @rickeylev in #1287
  • feat(bzlmod): Implementing wheel annotations via whl_mods by @chrislovecnm in #1278
  • feat(gazelle): support multiple requirements files in manifest generation by @aignas in #1301
  • feat: Add setting generate_hashes for requirements by @vonschultz in #1290
  • feat(bzlmod): Use a common constant for detecting bzlmod being enabled by @chrislovecnm in #1302
  • fix(bzlmod)!: Changing repository name "python_aliases" to "python_versions" by @chrislovecnm in #1304
  • feat(bzlmod): Allow bzlmod pip.parse to reference the default python toolchain and interpreter by @chrislovecnm in #1303
  • feat: Create all_data_requirements alias by @kevinpark1217 in #1292
  • chore: Bump rules_testing to 0.4.0 from 0.0.5 by @rickeylev in #1306
  • cleanup(tests): Use new APIs in rules_testing 0.4.0 by @rickeylev in #1307

New Contributors

Full Changelog: 0.23.1...0.24.0

0.23.1

13 Jun 17:45
9ffb1ec
Compare
Choose a tag to compare

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

  • fix(bzlmod+gazelle): update BCR release presubmit to use correct example by @rickeylev in #1264

Full Changelog: 0.23.0...0.23.1

0.23.0

12 Jun 17:08
2c28e61
Compare
Choose a tag to compare

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

  • feat(bzlmod): Allowing multiple python.toolchain extension calls by @chrislovecnm in #1230
  • build: Upgrade Gazelle to v0.31.0 by @linzhp in #1240
  • fix: make import python.runfiles work with --experimental_python_import_all_repositories=false by @rickeylev in #1243
  • feat(bzlmod): Moving register.toolchains internal by @chrislovecnm in #1238
  • docs(compile_pip_requirements): Add note on requirements.txt VC by @boomanaiden154 in #1245
  • cleanup: Set toolchain target_setting directly instead of via inline ternary by @rickeylev in #1246
  • fix(bzlmod): give precedence to the first seen versioned toolchain by @rickeylev in #1244
  • chore: add a pre-commit hook to maintain deleted packages by @aignas in #1208
  • chore: auto-publish gazelle module to BCR by @kormide in #1247
  • fix(coverage): bump to latest coverage.py and fix import shadowing by @aignas in #1249
  • feat: add ppc64le releases and update to 3.10.11, 3.11.3 for python-build-standalone by @clnperez in #1234
  • fix(bzlmod)!: Remove ability to specify toolchain repo name. by @rickeylev in #1258
  • fix: update correct requirements lock file when using os specific lock files by @Rasrack in #1123
  • fix: use only-binary for download_only pip download by @lpulley in #1219
  • feat: Adding variable support for distribution in py_wheel by @ns-tkonduri in #1251
  • feat(bzlmod): Register a default toolchain by @rickeylev in #1259

New Contributors

Full Changelog: 0.22.0...0.23.0

0.22.0

25 May 20:09
693a158
Compare
Choose a tag to compare

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

  • fix: remove reference to @bazel_tools//tools/python/private:defs.bzl by @comius in #1173
  • docs: Tell how to use GitHub to find commits in an upcoming release. by @rickeylev in #1092
  • fix: compile_pip_requirements test from external repositories by @Rasrack in #1124
  • feat: add Python 3.8.16 by @jml-derek in #1168
  • test: Set mac platform for test_mac_requires_darwin_for_execution by @rickeylev in #1179
  • fix: Don't reference deleted private bazel_tools bzl file by @rickeylev in #1180
  • docs: Add starlark directive to code snippet by @blorente in #1170
  • tests: Upgrade rules_testing to 0.0.5 by @rickeylev in #1184
  • tests: Set linux platform for test_non_mac_doesnt_require_darwin_for_execution by @rickeylev in #1183
  • fix(bzlmod): correctly template repository macros for requirements, etc by @aignas in #1190
  • type:docs Update README.md by @yuanweixin in #1186
  • fix: Allow passing a tuple to the tags attribute. by @rickeylev in #1191
  • tests: Add skylib to various test dependencies to fix CI by @chrislovecnm in #1199
  • feat: removing bzlmod from example by @chrislovecnm in #1200
  • feat: propagate visibility attribute for py_wheel publishing by @chrislovecnm in #1203
  • docs: fix typos in pip_repository docs by @martis42 in #1202
  • tests: Force analysis test labels to resolve within @rules_python context by @rickeylev in #1187
  • fix(update_deleted_packages.sh): allow to run from anywhere in the repo by @aignas in #1206
  • feat(bzlmod): expose platform-agnostic repo target for toolchain interpreter by @chrislovecnm in #1155
  • fix(update_deleted_packages.sh): wheels example should not be included in .bazelrc by @aignas in #1207
  • fix: Strip trailing newline from python output by @illicitonion in #1212
  • fix: manually ignore bazel-* directories to make using custom Bazel builds easier by @rickeylev in #1181
  • test(bzlmod): explicitly enable bzlmod in the test harness by @aignas in #1204
  • feat(bzlmod): Cleaning up interpreter resolution by @chrislovecnm in #1218
  • feat(bzlmod)!: Move each bzlmod extension into its own file by @chrislovecnm in #1226
  • Adding bzlmod support document by @chrislovecnm in #1214
  • test(coverage): add a test to check the sys.path under bzlmod by @aignas in #1223
  • fix(toolchain): set correct return attrs to remove non-hermeticity warning by @aignas in #1231
  • fix: allow url fragments in requirements file by @mattoberle in #1195
  • fix: example/build_file_generation/README.md by @ofey404 in #1164
  • fix: Using canonical name in requirements.bzl by @linzhp in #1176
  • feat(bzlmod): support entry_point macro by @aignas in #1220

New Contributors

Full Changelog: 0.21.0...0.22.0

0.21.0

20 Apr 16:51
c72c7bc
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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