Repository navigation
Releases: bazel-contrib/rules_python
Release list
2.5.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 = "2.5.0-rc0")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "2bf5f5ff0be99bf9f6e02ab4086848a181c9093a09e04719ab80bc27a59d7645",
strip_prefix = "rules_python-2.5.0-rc0",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.5.0-rc0/rules_python-2.5.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 = "2bf5f5ff0be99bf9f6e02ab4086848a181c9093a09e04719ab80bc27a59d7645",
strip_prefix = "rules_python-2.5.0-rc0/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.5.0-rc0/rules_python-2.5.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
- chore(release): add release-prepared label to prepare PRs by @rickeylev in #4015
- refactor(tests): convert legacy py_extension in local_toolchains to official rule by @rickeylev in #3988
- chore(release): support manual dispatch and /prepare-complete for complete prepare workflow by @rickeylev in #4016
- chore(release): invoke create release branch from prepare complete and support /create-release-branch by @rickeylev in #4017
- agents: optimize rules and clarify create-pr subagent requirements by @rickeylev in #4018
- agents: document Windows machine normalization and SOABI support by @rickeylev in #4019
- build(deps): bump cryptography from 49.0.0 to 50.0.0 in /tools/publish by @dependabot[bot] in #3995
- agents: add merge queue CI monitoring and lockfile sync rules by @rickeylev in #4021
- agents(rules): document linking external objects in TypedDict docstrings by @rickeylev in #4022
- agents: rename pre-review-audit to review-code and add news file checks by @rickeylev in #4027
- feat(runfiles): add CreateOrRaise API by @rickeylev in #4028
- build(dev): bump dev requirements python version to 3.10 by @rickeylev in #4024
- agents(rules): document git push -u guardrail and delegating function docstrings by @rickeylev in #4030
- agents: document dev python version bump and merge queue fields by @rickeylev in #4031
- build(deps): bump packaging from 26.2 to 26.3 in /tools/publish by @dependabot[bot] in #4032
- build(deps): bump cffi from 2.1.0 to 2.1.1 in /tools/publish by @dependabot[bot] in #4033
- build(pyrefly): enable Pyrefly static type checking across Python targets by @rickeylev in #4020
- fix: preserve arguments with spaces by @stanbot8 in #4026
- agents(rules): update python rules with typing and runfiles conventions by @rickeylev in #4035
- feat(bzlmod): make init.py generation configurable module-wide by @armandomontanez in #3997
- build(ci): remove legacy mypy type checking workflow and comments by @rickeylev in #4036
- agents(analyze-ci-failure): enhance network reset and macOS sandbox flake detection by @rickeylev in #4037
- fix(pypi): rewrite RECORD file entries for extracted .data contents by @rickeylev in #4025
- fix(pypi): resolve self-referencing extras to a real fixed point by @muravev-vasilii in #4039
- agents(rules): add Starlark dict union and Pyrefly PackagePath conventions by @rickeylev in #4038
- fix(pypi): do not return rctx.metadata for pip_archive by @aignas in #4043
- refactor(release): move on_comment workflow logic into Python script by @rickeylev in #4045
- workflows: auto-create patch release tracking issue on /backport by @rickeylev in #4046
- agents(rules): update github_actions_workflows rule with python script and testing conventions by @rickeylev in #4047
- agents(review-code): export review results artifact and factor report format by @rickeylev in #4048
- workflows(release): support /backport comment on release tracking issue and pr by @rickeylev in #4050
- workflows(release): remove non-patch release tasks from patch release issues by @rickeylev in #4051
- tests: use runfiles.CreateOrRaise in release_test_helper by @rickeylev in #4052
- agents: clarify commit and PR type conventions in pr.md by @rickeylev in #4055
- workflow(release): surface subprocess output and improve error handling in backport operations by @rickeylev in #4056
- agents: add workflow type convention and python exception rules by @rickeylev in #4057
- refactor: split code into multiple files by @aignas in #4044
- chore(release): sync changelog and version markers for 2.3 backports by @rickeylev in #4058
- feat(sphinxdocs): make SphinxDocsLibraryInfo provider public by @JoHoenk in #4041
- agents(starlark): document depset element immutability and provider conventions by @rickeylev in #4060
- build(release): add process-news command with PR and version marker support by @rickeylev in #4062
- agents: refine commit type definitions and interface docstring rules by @rickeylev in #4063
- agents: update review-code skill to initialize and update artifact on responses by @rickeylev in #4066
- test(pytest): support python_versions in pytest_test macro by @rickeylev in #4064
- agents: add native.test_suite API tag invariant rule by @rickeylev in #4068
- build(release): separate sync changelog into standalone workflow and CLI tool by @rickeylev in #4067
- agents: update CI soft-fail handling and GHA event parsing rules by @rickeylev in #4069
- tests(runfiles): migrate runfiles tests to pytest_test by @rickeylev in #4061
- workflows: make on_pr_closed.py executable and add permissions test by @rickeylev in #4076
- build(deps): bump astral-sh/setup-uv from 9.0.0 to 10.0.1 by @dependabot[bot] in #4072
- build(deps): bump actions/setup-python from 5 to 7 by @dependabot[bot] in #4074
- build(deps): bump charset-normalizer from 3.4.9 to 3.5.0 in /tools/publish by @dependabot[bot] in #4073
- build(deps): bump bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml from 1.4.2 to 1.5.0 by @dependabot[bot] in #4075
- agents: document rf.root() path navigation and Runfiles.CreateOrRaise() in python rules by @rickeylev in #4078
- fix(py_test): fix Windows crash in
py_testmain validation by @rdesgroppes in #4079 - agents: document direct integration test execution in testing rules by @rickeylev in https://github.com...
2.4.6
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 = "2.4.6")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "4765b9a4a9c6e0fb89f465aac5b5b0ac06589c9477144340859310777ad801a7",
strip_prefix = "rules_python-2.4.6",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.6/rules_python-2.4.6.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 = "4765b9a4a9c6e0fb89f465aac5b5b0ac06589c9477144340859310777ad801a7",
strip_prefix = "rules_python-2.4.6/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.6/rules_python-2.4.6.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: 2.4.5...2.4.6
2.4.5
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 = "2.4.5")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "05088402fa356af097064dbccd7082a061171ef39fbd748fab946e9775f46a16",
strip_prefix = "rules_python-2.4.5",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.5/rules_python-2.4.5.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 = "05088402fa356af097064dbccd7082a061171ef39fbd748fab946e9775f46a16",
strip_prefix = "rules_python-2.4.5/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.5/rules_python-2.4.5.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: 2.4.4...2.4.5
2.4.4
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 = "2.4.4")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "ce2b9317d21f3af1283aaa8f502b34f980407fcc8eb10beaa6bf9dbf39ea27ed",
strip_prefix = "rules_python-2.4.4",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.4/rules_python-2.4.4.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 = "ce2b9317d21f3af1283aaa8f502b34f980407fcc8eb10beaa6bf9dbf39ea27ed",
strip_prefix = "rules_python-2.4.4/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.4/rules_python-2.4.4.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: 2.4.3...2.4.4
2.4.3
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 = "2.4.3")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "4d8b6d82a51fba064431257a2941a6bc6b45e2365a40b9d6ecaef3e297bcf97e",
strip_prefix = "rules_python-2.4.3",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.3/rules_python-2.4.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 = "4d8b6d82a51fba064431257a2941a6bc6b45e2365a40b9d6ecaef3e297bcf97e",
strip_prefix = "rules_python-2.4.3/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.3/rules_python-2.4.3.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: 2.4.2...2.4.3
2.4.2
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 = "2.4.2")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "14f8fc9adbf471c7c1258cbf0998de3f63d8d3c81f88e2b96cadff44d71adf71",
strip_prefix = "rules_python-2.4.2",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.2/rules_python-2.4.2.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 = "14f8fc9adbf471c7c1258cbf0998de3f63d8d3c81f88e2b96cadff44d71adf71",
strip_prefix = "rules_python-2.4.2/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.2/rules_python-2.4.2.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: 2.4.1...2.4.2
2.4.1
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 = "2.4.1")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "7338fac5da94920b9a2db88add662246e7c41cc5c357ea93670ef23f1f153d4f",
strip_prefix = "rules_python-2.4.1",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.1/rules_python-2.4.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 = "7338fac5da94920b9a2db88add662246e7c41cc5c357ea93670ef23f1f153d4f",
strip_prefix = "rules_python-2.4.1/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.1/rules_python-2.4.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: 2.4.0...2.4.1
2.4.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 = "2.4.0")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "4f4e68bd0e385fb8550b72c77f11ff51c8abd39ea872bfb2f62cc9032c600751",
strip_prefix = "rules_python-2.4.0",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.0/rules_python-2.4.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 = "4f4e68bd0e385fb8550b72c77f11ff51c8abd39ea872bfb2f62cc9032c600751",
strip_prefix = "rules_python-2.4.0/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.0/rules_python-2.4.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: generate release changelog from news entries by @rickeylev in #3827
- fix(coverage): skip lcov report when no data was collected by @maxbirkner in #3832
- fix(pypi): respect empty envsubst expansion in experimental_index_url by @kriscfoster in #3828
- refactor(pypi): don't use Python to patch wheels by @aignas in #3808
- feat(py_info): expose VenvSymlinkEntry and VenvSymlinkKind as public APIs by @rickeylev in #3835
- doc: merge news into generated changelog by @rickeylev in #3836
- ci: enable bazel-diff by @rickeylev in #3838
- fix: run bazel-diff in cquery mode under bazelci by @rickeylev in #3839
- ci: disable bazel-diff due to platform compatibility conflicts by @rickeylev in #3840
- chore: warn on implicit init.py creation by @rickeylev in #3841
- fix(bootstrap): use retry loop for win32 version lookup in site init template by @rickeylev in #3842
- fix(rules): disambiguate slash target venv outputs by @gleyba in #3845
- chore: automate releases by @rickeylev in #3833
- build(deps): bump actions/checkout from 6 to 7 by @dependabot[bot] in #3843
- chore: remove accidentally committed release automation plan by @rickeylev in #3846
- feat: unified pypi hub repository by @rickeylev in #3837
- feat(pypi): support importing uv.lock file by @aignas in #3785
- chore: add agent rule to base new branches on upstream/main by @rickeylev in #3849
- build(ci): consolidate PR guardrails and block draft files by @rickeylev in #3859
- refactor: use gazelle for bzl_library management by @rickeylev in #3852
- fix(ci): use --repo flag in gh pr diff to avoid checkout by @rickeylev in #3861
- feat: stop using chmod on Bazel 8.6+ by @aignas in #3855
- ci: make pr-metadata-check run on PR body edit by @rickeylev in #3862
- chore(pypi): cleanup unused code by @aignas in #3864
- chore(release): correct version tagging and improve promotion flow by @rickeylev in #3866
- chore(release): add dry-run to release tool prepare command by @rickeylev in #3869
- chore(release): reuse existing PRs and avoid early exit in prep tool by @rickeylev in #3870
- chore(release): use force push and clean up git helpers in prep tool by @rickeylev in #3873
- Prepare release v2.2.0 by @github-actions[bot] in #3874
- chore(release): fix release label consistency in workflows and templates by @rickeylev in #3876
- fix: avoid stage1 bootstrap stdlib shadowing by @gleyba in #3854
- build(deps): bump bazel-contrib/publish-to-bcr/.github/workflows/publish.yaml from 1.1.0 to 1.4.1 by @dependabot[bot] in #3822
- chore(release): support custom remote in create-release-branch and refactor by @rickeylev in #3877
- chore(release): refactor create-rc and handle existing remote release branch by @rickeylev in #3879
- chore(release): various fixes to release tool and workflows by @rickeylev in #3880
- feat(pypi): add pip.dep to declare abstract pypi dependencies by @rickeylev in #3850
- chore(release): refactor process-backports and various release tool fixes by @rickeylev in #3881
- chore(release): factor code, make testable, clarify workflow names by @rickeylev in #3882
- chore(release): pass missing --remote argument to release workflows by @rickeylev in #3883
- chore(release): enable execution in process-backports workflow by @rickeylev in #3884
- chore(release): release automation fixes and refactoring by @rickeylev in #3885
- fix: use locale-neutral Windows ACL for build data by @alex-the-third in #3887
- feat(py_test): add opt-in safeguard against accidental no-op tests by @thirtyseven in #3825
- feat: enable pyproject.toml as single source of truth for Python version by @golithe in #3514
- Fix release tool links and improve workflow robustness by @rickeylev in #3888
- build(release): support triggering release workflows via comments by @rickeylev in #3889
- chore(release): allow comments to trigger actions, update releasing docs by @rickeylev in #3891
- chore(release): grant write permissions to on_issue_comment workflow by @rickeylev in #3892
- chore(release): add pull-requests: write permission to on_issue_comment workflow by @rickeylev in #3893
- chore(release): auto-add RC tasks to checklist in create-rc by @rickeylev in #3894
- chore(release): secure workflows against shell injection by @rickeylev in #3895
- fix: run executable zip action with execution Python to better support windows building by @dzbarsky in #3890
- chore(release): process backports as part of creating RC by @rickeylev in #3896
- chore(release): automate backport processing on PR merge, and have add-backports accept hashtag and url refs by @rickeylev in #3897
- chore(release): fix promote_rc arguments and align comments by @rickeylev in #3898
- chore(release): fix promote-rc command and update workflow args by @rickeylev in #3899
- chore(release): make promote_rc workflow call publish_release workflow to finish publishing by @rickeylev in #3900
- docs: sync 2.2 changelog and news to main by @rickeylev in #3901
- chore(release): sync changelog and version markers to main during backports by @rickeylev in #3903
- chore: remove stale process-backports-before-rc news file by @rickeylev in https://github.com/bazel-contrib/...
2.4.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 = "2.4.0-rc3")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "acf425401f347cec1e2a5efbb97f1fa4930e180996ab00594e19c300dfa45319",
strip_prefix = "rules_python-2.4.0-rc3",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.0-rc3/rules_python-2.4.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 = "acf425401f347cec1e2a5efbb97f1fa4930e180996ab00594e19c300dfa45319",
strip_prefix = "rules_python-2.4.0-rc3/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.0-rc3/rules_python-2.4.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: 2.4.0-rc2...2.4.0-rc3
2.4.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 = "2.4.0-rc2")
python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
python_version = "3.14",
)
pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip")
pip.parse(
hub_name = "pypi",
python_version = "3.14",
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 = "a97164eb05b089d421dea53edb77a64ae5b10ab97b49dbb53c6a42b5bcf32903",
strip_prefix = "rules_python-2.4.0-rc2",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.0-rc2/rules_python-2.4.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 = "a97164eb05b089d421dea53edb77a64ae5b10ab97b49dbb53c6a42b5bcf32903",
strip_prefix = "rules_python-2.4.0-rc2/gazelle",
url = "https://github.com/bazel-contrib/rules_python/releases/download/2.4.0-rc2/rules_python-2.4.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: 2.4.0-rc1...2.4.0-rc2