Releases: bazel-contrib/rules_python
1.8.0
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.8.0")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "0558021abbd244f3e2b51120a7ec4bded37c6cb02c372aaa188da9ba375560d8",
strip_prefix = "rules_python-1.8.0",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0/rules_python-1.8.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 = "0558021abbd244f3e2b51120a7ec4bded37c6cb02c372aaa188da9ba375560d8",
strip_prefix = "rules_python-1.8.0/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0/rules_python-1.8.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: remove bcr app settings by @rickeylev in #3370
- chore: make pypi release workflow perform checkout by @rickeylev in #3371
- fix(gazelle) Delete python targets with invalid srcs by @yushan26 in #3046
- revert(pypi): revert the default for pipstar by @aignas in #3373
- fix: Add linux_riscv64 to _pip_repository_impl by @kxxt in #3350
- feat: Add libpython QNX platform support by @lalten in #3372
- build: change gazelle rules_python override to use bazelrc by @rickeylev in #3382
- gazelle: set min rules_python version as 1.4 by @rickeylev in #3383
- chore(toolchain): drop all but the latest 3.9 toolchain by @aignas in #3377
- fix: make CI pass with the next version of Bazel (9.0.0rc1) by @jsing-canva in #3393
- Add batch_commands to presubmit.yml by @meteorcloudy in #3389
- fix(runfiles): correct Python runfiles path assumption by @jsing-canva in #3086
- chore: Bazel 9 is rc now by @alexeagle in #3394
- chore: update to latest buildifier by @aignas in #3386
- chore: switch bcr to 8.x instead of last_rc by @aignas in #3395
- fix(local): Fix local_runtime use with free-threaded python by @laramiel in #3399
- refactor: defer zip manifest building to execution phase to improve analysis phase performance by @tobyh-canva in #3381
- fix(pip): allow for different extras for different target platforms by @aignas in #3385
- chore: make doc building use bootstrap script and venv site packages by @rickeylev in #3403
- fix: use runfiles symlinks for venv symlink creation to reduce action count by @rickeylev in #3402
- fix(gazelle): correct runfiles path handling in gazelle_python_manifest test by @timfallmk in #3398
- tests: set --windows_enable_symlinks in bzlmod example by @rickeylev in #3409
- docs: Explain why the
lockrule has no implicit test target by @martis42 in #3411 - refactor(gazelle): Generate a modules map per wheel, then merge by @thejcannon in #3415
- docs: fix markdown by @dizzy57 in #3417
- feat(toolchain): drop 3.8 and print info level messages about it by @aignas in #3387
- fix: Avoid C++ toolchain requirement if possible by @fmeum in #2919
- doc: add documentation to the changelog about the removal of 3.8 by @aignas in #3418
- fix: make python_headers targets compatible with layering checks by @keith in #3420
- fix(local) Add api3 targets and additional defines. by @laramiel in #3408
- chore: start cleaning up 3.9 usage from examples by @aignas in #3419
- chore: enable disk cache for faster local builds by @rickeylev in #3424
- chore(bazelrc): fix the update-deleted-packages script by @aignas in #3425
- chore(toolchain): remove chmod and disable ignore_root_error by @aignas in #3421
- ci: switch our jobs to mac arm64 by @aignas in #3426
- docs: enable pipstar for doc building by @rickeylev in #3427
- fix: add runfiles root for system_python bootstrap by @rickeylev in #3423
- refactor(pypi): parse entry_points without Python by @aignas in #3429
- chore: enable pipstar for experimental_index_url users by @aignas in #3428
- fix(pip): do not add a pip-fallback when there is no sdist by @aignas in #3432
- build(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #3433
- refactor(pypi): extract the wheel without python by @aignas in #3430
- chore: remove extraneous dep from sys_path_order test by @rickeylev in #3435
- refactor: remove gazelle plugin as dev dependency by @rickeylev in #3436
- ci: add ci config to test 7 and 8 for bcr like setup by @aignas in #3404
- feat(pip.parse): limit the target platforms we parse requirements for by @aignas in #3441
- refactor(core): get_zip_runfiles_path should call startswith less by @aignas in #3442
- ci: start testing BCR tests with bazel 9 by @aignas in #3443
- doc: target_platforms by @aignas in #3445
- chore(bzlmod): assume that we can always mark the extension as reproducible by @aignas in #3444
- refactor: avoid conflict merging when shared libraries are present by @rickeylev in #3448
- refactor: add mnemonics to some gazelle and sphinxdocs actions by @tyler-french in #3449
- fix(pip): Only directly extract .whl files in Bazel >9 by @armandomontanez in #3452
- feat(toolchains): Add 3.13.10, 3.13.11, 3.14.1, 3.14.2, 3.15.0a2 by @pjjw in #3451
- chore(pip): Check for whl extract compatibility in internal_config_repo.bzl by @armandomontanez in #3456
- fix(pip): set better defaults for the new target_platforms attr by @aignas in #3447
- fix: correctly merge conflicting paths when files (instead of dirs) are being linked by @rickeylev in #3458
- refactor(repo_utils): create a helper for extracting files by @aignas in #3459
- refactor: optimize venv building for namespace packages by @rickeylev in #3454
- chore: add missing py_internal dep to venv_runfiles by @rickeylev in #3462
- fix: allow pypi packages with empty data attribute by @rickeylev in #3463
- docs: Fix broken links to bzlmod build_file_generation example by @willstranton in https://github.com/bazel-contrib...
1.8.0-rc4
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.8.0-rc4")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "fd9317dfb618a822b65ed348e70d4fdc792a0a517d83e4b187a6e44114f00764",
strip_prefix = "rules_python-1.8.0-rc4",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc4/rules_python-1.8.0-rc4.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 = "fd9317dfb618a822b65ed348e70d4fdc792a0a517d83e4b187a6e44114f00764",
strip_prefix = "rules_python-1.8.0-rc4/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc4/rules_python-1.8.0-rc4.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: 1.8.0-rc3...1.8.0-rc4
1.8.0-rc3
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.8.0-rc3")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "ba4016696c347574847feac1ee808ba503d1396325ed25c93507b7cb4da4cb07",
strip_prefix = "rules_python-1.8.0-rc3",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc3/rules_python-1.8.0-rc3.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 = "ba4016696c347574847feac1ee808ba503d1396325ed25c93507b7cb4da4cb07",
strip_prefix = "rules_python-1.8.0-rc3/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc3/rules_python-1.8.0-rc3.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: 1.8.0-rc2...1.8.0-rc3
1.8.0-rc2
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.8.0-rc2")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "c707a3cad27f95adaf860df32f410e7ca27bb2d0d5a84507027e6286a8be3656",
strip_prefix = "rules_python-1.8.0-rc2",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc2/rules_python-1.8.0-rc2.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 = "c707a3cad27f95adaf860df32f410e7ca27bb2d0d5a84507027e6286a8be3656",
strip_prefix = "rules_python-1.8.0-rc2/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc2/rules_python-1.8.0-rc2.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: 1.8.0-rc1...1.8.0-rc2
1.8.0-rc1
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.8.0-rc1")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "a8d24cb0d53d8df4ef08741d70157f19481bb577a956b7de2cd445bc393e625b",
strip_prefix = "rules_python-1.8.0-rc1",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc1/rules_python-1.8.0-rc1.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 = "a8d24cb0d53d8df4ef08741d70157f19481bb577a956b7de2cd445bc393e625b",
strip_prefix = "rules_python-1.8.0-rc1/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc1/rules_python-1.8.0-rc1.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(venv): Fix all .so files missing when py_binary lives at //:BUILD by @shayanhoshyari in #3474
New Contributors
- @shayanhoshyari made their first contribution in #3474
Full Changelog: 1.8.0-rc0...1.8.0-rc1
1.8.0-rc0
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.8.0-rc0")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "7cd5bab76de50f35e2050b6171f3ea8a341d80a562f7b47ef549f6c174cee0af",
strip_prefix = "rules_python-1.8.0-rc0",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc0/rules_python-1.8.0-rc0.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 = "7cd5bab76de50f35e2050b6171f3ea8a341d80a562f7b47ef549f6c174cee0af",
strip_prefix = "rules_python-1.8.0-rc0/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.8.0-rc0/rules_python-1.8.0-rc0.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(bootstrap): handle when runfiles env vars don't point to current binary's runfiles by @rickeylev in #3192
- docs: fix a couple typos in the changelog by @rickeylev in #3208
- chore: release helper tool by @rickeylev in #3206
- docs: fix changelog header anchors by @rickeylev in #3207
- fix(gazelle): Do not build proto targets with default Gazelle by @dougthor42 in #3216
- chore: create workflow to check the do-not-merge label by @rickeylev in #3213
- docs: Add 1.5.4 release notes to changelog by @rickeylev in #3221
- build(deps): bump requests from 2.32.4 to 2.32.5 in /tools/publish by @dependabot[bot] in #3214
- docs: tell how to push one tag; that rc start with n=0 by @rickeylev in #3222
- build(deps): bump typing-extensions from 4.14.1 to 4.15.0 in /docs by @dependabot[bot] in #3212
- build(deps): bump requests from 2.32.4 to 2.32.5 in /docs by @dependabot[bot] in #3211
- cleanup: remove support for extra actions by @comius in #3210
- build(deps): bump docutils from 0.21.2 to 0.22 in /docs by @dependabot[bot] in #3166
- chore: add AGENTS.md to help AI agents work with rules_python by @rickeylev in #3227
- build(deps): bump rich from 13.9.4 to 14.1.0 in /tools/publish by @dependabot[bot] in #3230
- build(deps): bump charset-normalizer from 3.4.2 to 3.4.3 in /tools/publish by @dependabot[bot] in #3231
- chore: allow release workflow to be manually run and skip pypi upload by @rickeylev in #3232
- chore: make release tool auto detect next version by @rickeylev in #3219
- build(deps): bump cryptography from 44.0.1 to 45.0.7 in /tools/publish by @dependabot[bot] in #3235
- build(deps): bump jeepney from 0.8.0 to 0.9.0 in /tools/publish by @dependabot[bot] in #3234
- build(deps): bump keyring from 25.5.0 to 25.6.0 in /tools/publish by @dependabot[bot] in #3236
- build(deps): bump importlib-metadata from 8.5.0 to 8.7.0 in /tools/publish by @dependabot[bot] in #3237
- refactor(gazelle): report missing BUILD_WORKSPACE_DIRECTORY key more directly by @ctcjab in #3240
- chore(deps): bump rules_cc to 0.1.5 by @aignas in #3238
- fix(sphinxdocs): add retry logic when exit code 2 occurs by @rickeylev in #3241
- fix(system_python): write import paths to generated file instead of using PYTHONPATH by @rickeylev in #3242
- refactor(pypi): split out a hub_builder helper from the extension code by @aignas in #3243
- chore: add GEMINI.md, have it load AGENTS.md by @rickeylev in #3246
- docs: fix pr doc builds by removing external_version_warning plugin by @rickeylev in #3244
- refactor: migrate tests to use hub_builder instead of full integration by @aignas in #3247
- build(deps): bump zipp from 3.20.2 to 3.23.0 in /tools/publish by @dependabot[bot] in #3253
- build(deps): bump more-itertools from 10.7.0 to 10.8.0 in /tools/publish by @dependabot[bot] in #3254
- feat: allow registering arbitrary settings for py_binary transitions by @rickeylev in #3248
- fix: ensure the stage1 bootstrap is executable by @EdSchouten in #3258
- fix: don't call Args.add() with an integer by @EdSchouten in #3259
- docs: update changelog for config_settings attribute by @rickeylev in #3257
- chore: add agents guidance for creating bzl_library targets by @rickeylev in #3264
- docs: improve whl_library documentation by @baxelrod-bdai in #3266
- refactor: use common_labels.bzl for labels used across files by @rickeylev in #3263
- fix(pypi): select the lowest available libc version by default by @aignas in #3255
- tests: add non-blocking ci config for bazel rolling by @rickeylev in #3272
- fix: venv site packages with pkgutil packages by @rickeylev in #3268
- build(deps): bump pycparser from 2.22 to 2.23 in /tools/publish by @dependabot[bot] in #3271
- build(deps): bump cffi from 1.17.1 to 2.0.0 in /tools/publish by @dependabot[bot] in #3270
- build: remove no-op _native_rules_allowlist by @mai93 in #3275
- build(deps): bump pkginfo from 1.10.0 to 1.12.1.2 in /tools/publish by @dependabot[bot] in #3229
- tests: make py_cc_toolchain test of headers/includes work with Bazel 9 by @rickeylev in #3276
- chore(docs): remove duplicate bzlmod guidance by @alexeagle in #3278
- chore: remove non-toolchain runtime resolution logic. by @gregestren in #3280
- feat(toolchains): ABI3 Python headers target by @nicholasjng in #3274
- docs: move 1.6.3 related changelog by @aignas in #3284
- refactor: read migrated native flags through a centralized accessor function by @gregestren in #3290
- build(deps): bump docutils from 0.21.2 to 0.22.2 in /docs by @dependabot[bot] in #3287
- build(deps): bump jaraco-functools from 4.1.0 to 4.3.0 in /tools/publish by @dependabot[bot] in #3288
- docs: add example for a complex multi-platform pypi configuration by @rickeylev in #3292
- feat(runfiles): support for --incompatible_compact_repo_mapping_manifest by @jklukas in #3277
- chore: cleanup bazel flags related to bazel 6 or below by @aignas in #3282
- refactor: rename symbols in re-exports by @aignas in #3300
- chore: use python.defaults to set rules_python default python version by @rickeylev in #3301
- docs: fix spelling of venvs_site_packages flag in changelog by @rickeylev in https://gi...
1.7.0
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.7.0")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "f609f341d6e9090b981b3f45324d05a819fd7a5a56434f849c761971ce2c47da",
strip_prefix = "rules_python-1.7.0",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0/rules_python-1.7.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 = "f609f341d6e9090b981b3f45324d05a819fd7a5a56434f849c761971ce2c47da",
strip_prefix = "rules_python-1.7.0/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0/rules_python-1.7.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(bootstrap): handle when runfiles env vars don't point to current binary's runfiles by @rickeylev in #3192
- docs: fix a couple typos in the changelog by @rickeylev in #3208
- chore: release helper tool by @rickeylev in #3206
- docs: fix changelog header anchors by @rickeylev in #3207
- fix(gazelle): Do not build proto targets with default Gazelle by @dougthor42 in #3216
- chore: create workflow to check the do-not-merge label by @rickeylev in #3213
- docs: Add 1.5.4 release notes to changelog by @rickeylev in #3221
- build(deps): bump requests from 2.32.4 to 2.32.5 in /tools/publish by @dependabot[bot] in #3214
- docs: tell how to push one tag; that rc start with n=0 by @rickeylev in #3222
- build(deps): bump typing-extensions from 4.14.1 to 4.15.0 in /docs by @dependabot[bot] in #3212
- build(deps): bump requests from 2.32.4 to 2.32.5 in /docs by @dependabot[bot] in #3211
- cleanup: remove support for extra actions by @comius in #3210
- build(deps): bump docutils from 0.21.2 to 0.22 in /docs by @dependabot[bot] in #3166
- chore: add AGENTS.md to help AI agents work with rules_python by @rickeylev in #3227
- build(deps): bump rich from 13.9.4 to 14.1.0 in /tools/publish by @dependabot[bot] in #3230
- build(deps): bump charset-normalizer from 3.4.2 to 3.4.3 in /tools/publish by @dependabot[bot] in #3231
- chore: allow release workflow to be manually run and skip pypi upload by @rickeylev in #3232
- chore: make release tool auto detect next version by @rickeylev in #3219
- build(deps): bump cryptography from 44.0.1 to 45.0.7 in /tools/publish by @dependabot[bot] in #3235
- build(deps): bump jeepney from 0.8.0 to 0.9.0 in /tools/publish by @dependabot[bot] in #3234
- build(deps): bump keyring from 25.5.0 to 25.6.0 in /tools/publish by @dependabot[bot] in #3236
- build(deps): bump importlib-metadata from 8.5.0 to 8.7.0 in /tools/publish by @dependabot[bot] in #3237
- refactor(gazelle): report missing BUILD_WORKSPACE_DIRECTORY key more directly by @ctcjab in #3240
- chore(deps): bump rules_cc to 0.1.5 by @aignas in #3238
- fix(sphinxdocs): add retry logic when exit code 2 occurs by @rickeylev in #3241
- fix(system_python): write import paths to generated file instead of using PYTHONPATH by @rickeylev in #3242
- refactor(pypi): split out a hub_builder helper from the extension code by @aignas in #3243
- chore: add GEMINI.md, have it load AGENTS.md by @rickeylev in #3246
- docs: fix pr doc builds by removing external_version_warning plugin by @rickeylev in #3244
- refactor: migrate tests to use hub_builder instead of full integration by @aignas in #3247
- build(deps): bump zipp from 3.20.2 to 3.23.0 in /tools/publish by @dependabot[bot] in #3253
- build(deps): bump more-itertools from 10.7.0 to 10.8.0 in /tools/publish by @dependabot[bot] in #3254
- feat: allow registering arbitrary settings for py_binary transitions by @rickeylev in #3248
- fix: ensure the stage1 bootstrap is executable by @EdSchouten in #3258
- fix: don't call Args.add() with an integer by @EdSchouten in #3259
- docs: update changelog for config_settings attribute by @rickeylev in #3257
- chore: add agents guidance for creating bzl_library targets by @rickeylev in #3264
- docs: improve whl_library documentation by @baxelrod-bdai in #3266
- refactor: use common_labels.bzl for labels used across files by @rickeylev in #3263
- fix(pypi): select the lowest available libc version by default by @aignas in #3255
- tests: add non-blocking ci config for bazel rolling by @rickeylev in #3272
- fix: venv site packages with pkgutil packages by @rickeylev in #3268
- build(deps): bump pycparser from 2.22 to 2.23 in /tools/publish by @dependabot[bot] in #3271
- build(deps): bump cffi from 1.17.1 to 2.0.0 in /tools/publish by @dependabot[bot] in #3270
- build: remove no-op _native_rules_allowlist by @mai93 in #3275
- build(deps): bump pkginfo from 1.10.0 to 1.12.1.2 in /tools/publish by @dependabot[bot] in #3229
- tests: make py_cc_toolchain test of headers/includes work with Bazel 9 by @rickeylev in #3276
- chore(docs): remove duplicate bzlmod guidance by @alexeagle in #3278
- chore: remove non-toolchain runtime resolution logic. by @gregestren in #3280
- feat(toolchains): ABI3 Python headers target by @nicholasjng in #3274
- docs: move 1.6.3 related changelog by @aignas in #3284
- refactor: read migrated native flags through a centralized accessor function by @gregestren in #3290
- build(deps): bump docutils from 0.21.2 to 0.22.2 in /docs by @dependabot[bot] in #3287
- build(deps): bump jaraco-functools from 4.1.0 to 4.3.0 in /tools/publish by @dependabot[bot] in #3288
- docs: add example for a complex multi-platform pypi configuration by @rickeylev in #3292
- feat(runfiles): support for --incompatible_compact_repo_mapping_manifest by @jklukas in #3277
- chore: cleanup bazel flags related to bazel 6 or below by @aignas in #3282
- refactor: rename symbols in re-exports by @aignas in #3300
- chore: use python.defaults to set rules_python default python version by @rickeylev in #3...
1.7.0-rc6
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.7.0-rc6")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "df04602e341fe0414d3774b5297c34cbcd8d9e0a525d28a87c25adae4588c11d",
strip_prefix = "rules_python-1.7.0-rc6",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0-rc6/rules_python-1.7.0-rc6.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 = "df04602e341fe0414d3774b5297c34cbcd8d9e0a525d28a87c25adae4588c11d",
strip_prefix = "rules_python-1.7.0-rc6/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0-rc6/rules_python-1.7.0-rc6.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: 1.7.0-rc5...1.7.0-rc6
1.7.0-rc5
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.7.0-rc5")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "6b9185460d11d57a32139b103363fce39d81889206561ef582678273b74372ac",
strip_prefix = "rules_python-1.7.0-rc5",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0-rc5/rules_python-1.7.0-rc5.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 = "6b9185460d11d57a32139b103363fce39d81889206561ef582678273b74372ac",
strip_prefix = "rules_python-1.7.0-rc5/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0-rc5/rules_python-1.7.0-rc5.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: 1.7.0-rc4...1.7.0-rc5
1.7.0-rc4
For more detailed setup instructions, see https://rules-python.readthedocs.io/en/latest/getting-started.html
For the user-facing changelog see here
Using Bzlmod
Add to your MODULE.bazel file:
bazel_dep(name = "rules_python", version = "1.7.0-rc4")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.13",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.13",
requirements_lock = "//:requirements_lock.txt",
)
use_repo(pip, "pypi")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 = "e7d0a548ce2302b3186f4b0d2d7c7d39d68dd62955468e9b160746af1aa234d1",
strip_prefix = "rules_python-1.7.0-rc4",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0-rc4/rules_python-1.7.0-rc4.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 = "e7d0a548ce2302b3186f4b0d2d7c7d39d68dd62955468e9b160746af1aa234d1",
strip_prefix = "rules_python-1.7.0-rc4/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/1.7.0-rc4/rules_python-1.7.0-rc4.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: 1.7.0-rc2...1.7.0-rc4