Skip to content

Releases: aspect-build/rules_py

v1.11.3

05 May 06:42
5dda303

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.11.3")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • chore: upgrade bazelrc-preset.bzl to 1.9.2 by @jbedard in #916
  • Rewrite README with clearer structure and feature highlights by @xangcastle in #929
  • fix(toolchains): register native_build_toolchain per exec/target platform for sdist builds by @gregmagolan in #928
  • perf: reduce symlinks in third-party packages by @xangcastle in #931
  • refactor: simplify coalesce_symlinks logic by @xangcastle in #932
  • chore: split toolchain registration in root module to prod & dev by @gregmagolan in #933
  • deterministically resolve unconstrained dependencies when lockfile contains multiple versions by @xangcastle in #935
  • Updating Readme file by @xangcastle in #936
  • fix(uv): resolve per-group dependency versions from lockfile to prevent configuration conflicts by @xangcastle in #937
  • chore: upgrade llvm module to 0.7.1, fix macos 403s by @jbedard in #945
  • perf: set repo and module reproducible = True where possible by @jbedard in #946
  • refactor: do not duplicate site_packages into DefaultInfo+runfiles of py_binary by @jbedard in #949
  • fix: check main by resolved file basename, not label name by @jbedard in #950
  • refactor: upgrade toml2json to 0.0.26 by @jbedard in #955
  • ci: use aspect-large runner for tests by @jbedard in #958
  • chore: update cargo deps, remove unused by @jbedard in #956
  • docs: Update Gazelle section with pytest_main usage instructions by @hofbi in #953
  • chore: upgrade rules_rs to 0.0.64 by @jbedard in #915
  • refactor: cleanup unused bazel/platforms/* logic by @jbedard in #957
  • test: cherry-pick tests from #944 by @jbedard in #954
  • feat: add uv toolchain extension by @jbedard in #943
  • refactor(uv): remove dead lib_mode/whl_mode machinery by @jbedard in #951
  • refactor: extract pth file creation and imports depset into reusable pth.bzl helpers by @xangcastle in #961
  • chore: upgrade tar.bzl to 0.10.1 by @jbedard in #964

Full Changelog: v1.11.2...v1.11.3

v1.11.2

07 Apr 16:47
b8a2952

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.11.2")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • ci: replace github pre-commit workflow with aspect workflows buildifier by @jbedard in #922
  • feat(whl_install): expose install_dir via OutputGroupInfo by @gregmagolan in #926

Full Changelog: v1.11.1...v1.11.2

v1.11.1

06 Apr 19:55
08e6f3c

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.11.1")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • fix(interpreter): drop exec_compatible_with from Python interpreter toolchain by @gregmagolan in #924
  • fix(whl_install): use rules_python exec tools toolchain for pyc compilation by @gregmagolan in #903
  • fix(venv): handle internal package symlinks to prevent dangling references by @xangcastle in #904
  • feat(e2e): add pytest subdirectory imports example and test case by @xangcastle in #908
  • fix(whl_install): remove install_dir from DefaultInfo.files by @gregmagolan in #907
  • feat(whl_install): enable path mapping for remote cache deduplication by @gregmagolan in #906
  • refactor(whl_install): remove resolved_unpack_toolchain workaround by @gregmagolan in #905
  • fix(toolchain): build unpack binary in exec config to prevent ELF-on-macOS failure by @gregmagolan in #910
  • refactor(exec_tools): hoist py_exec_tools_toolchain from rules_python, drop min version to 1.0.0 by @gregmagolan in #913
  • refactor(toolchain): replace resolved_venv_toolchain with venv_exec_toolchain_type by @gregmagolan in #911
  • ci: do not run pre-commit when PRs come from forks by @jbedard in #914
  • chore: replace toolchains_llvm_bootstrapped with llvm 0.7.0 by @gregmagolan in #920
  • chore: remove dead would_create_symlink_cycle function by @gregmagolan in #919
  • feat: add scope = "universal" to @pypi//venv for Bazel 10 compatibility by @gregmagolan in #917
  • fix(uv): fix evaluation of PEP 508 specs involving nested parentheses by @acozzette in #901

New Contributors

Full Changelog: v1.10.1...v1.11.1

v1.10.1

04 Apr 16:36
1206561

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.10.1")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • docs(examples): add debugger (debugpy) example by @arrdem in #882
  • test(e2e): add namespace package regression test (#547) by @arrdem in #883
  • fix: rename our crates repo by @alexeagle in #886
  • tweak(sdist_configure): suppress setup.py stdout/stderr unless eval fails by @arrdem in #888
  • fix(py_library): don't return transitive srcs in DefaultInfo.files by @arrdem in #891
  • fix(uv): fix handling of versions containing plus characters by @acozzette in #898
  • chore: update maintainers in metadata.template.json by @alexeagle in #902
  • Make script parameter optional in py_console_script_binary by @hofbi in #893

New Contributors

Full Changelog: v1.10.0...v1.10.1

v1.10.0

20 Mar 12:50

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.10.0")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • Allow extra annotations in annotations.toml by @dzbarsky in #850
  • test(uv): Add ~= (compatible release) version specifier tests by @arrdem in #856
  • docs(examples): Conditional dev dependencies with dependency groups by @arrdem in #845
  • fix(uv): Read python version from aspect_rules_py flag for abi3 compat by @arrdem in #861
  • fix(uv): resolve multi-match version constraints to greatest version by @arrdem in #865
  • feat(pyc): Add .pyc pre-compilation to wheel install by @arrdem in #857
  • fix: Respect package_collisions in py_binary by @ramilmsh in #862
  • feat(py): Interpreter feature exclusion flags by @arrdem in #836
  • feat(interpreter): local interpreter support + config_settings on toolchains by @arrdem in #859
  • fix(py_image_layer): Fix interpreter regex matching pip packages by @arrdem in #822
  • fix(pytest): prefix generated pytest main file to avoid test discovery by @arrdem in #867
  • fix(interpreter): Lazy toolchain resolution via hub-local config_settings by @arrdem in #871
  • fix(pytest): remove spammy py_pytest_main deprecation warning by @arrdem in #872
  • fix(pyc): default to checked-hash invalidation, add invalidation_mode flag by @arrdem in #873
  • fix(venv): skip symlinking runfiles pycache/init.pyc by @arrdem in #875
  • feat(sdist): auto-detect native sources and build deps by @arrdem in #870
  • test(e2e): add pytest-mock regression test by @arrdem in #876
  • fix(venv): skip walking nested virtualenvs during plan generation by @arrdem in #878
  • test(e2e): add venv isolated mode regression test (#703) by @arrdem in #879
  • feat(sdist): dynamic setup.py evaluator for build dep extraction by @arrdem in #874
  • feat(venv): coalesce file-level symlinks into directory symlinks by @arrdem in #877
  • fix(whl_install): use exec-configured interpreter for pyc compilation by @arrdem in #881
  • feat(pex): use exec interpreter for PEX builds, enabling cross-builds by @arrdem in #880
  • test(e2e): Add Windows cross-build verification test by @arrdem in #837
  • Fix BCR release by @dzbarsky in #884

New Contributors

Full Changelog: v1.9.1...v1.10.0

v1.9.1

11 Mar 18:27
f709ae8

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.9.1")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • revert(py_venv): Revert shell-less hermetic launcher (#825) by @arrdem in #851

Full Changelog: v1.9.0...v1.9.1

v1.9.0

10 Mar 20:59
4721efc

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.9.0")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • feat(uv): Support PEP 735 include-group syntax in dependency-groups by @ctcjab in #843
  • fix(uv): Reject unsupported wheel platform tags via allowlist by @arrdem in #844
  • feat(py_venv): Shell-less hermetic launcher for py_venv_binary by @arrdem in #825
  • feat(py): Python interpreter provisioning from python-build-standalone by @arrdem in #827
  • fix(py): Fix freethreaded e2e test for Bazel 9 on macOS by @arrdem in #846
  • fix(e2e): Add @platforms//os:linux to OCI distroless exec tests by @arrdem in #847

New Contributors

Full Changelog: v1.8.6...v1.9.0

v1.8.6

09 Mar 08:48
7f252f1

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.8.6")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • Remove print statement from py_semantics.bzl by @lukasoyen in #811
  • Fix python interpreter lookup when space in path exists by @Wito-1 in #806
  • fix(py_venv): Stabilize _aspect.pth files by @arrdem in #815
  • fix(uv): Prevent invalid cross-ABI wheel selection by @arrdem in #814
  • chore(uv): Adding tests replacing #750 by @arrdem in #813
  • fix(py_venv): Correct 'home' key by @arrdem in #816
  • fix: Bump gazelle and rules_go for Bazel 9 compatibility by @arrdem in #821
  • fix(py): Remove dead rattler_installs_packages dependency by @arrdem in #820
  • fix(uv): Honor version pinnings in [dependency-groups] by @arrdem in #819
  • perf(py_venv): Avoid depset flattening and explicit .path usage by @arrdem in #823
  • chore(py_pytest_main): Refactor template to be valid Python by @arrdem in #824
  • feat(uv): Support [tool.uv] no-binary-package by @arrdem in #831
  • fix(uv): Support arbitrary version specifiers in dependency groups by @arrdem in #828
  • feat(uv): Add package patching support to override_package by @arrdem in #829
  • refactor(sdist_build): Use py_venv_binary for build tool by @arrdem in #832
  • fix(sdist_build): Set determinism env vars for reproducible wheel builds by @arrdem in #834
  • fix(uv): Don't just delete windows whls by @arrdem in #773
  • fix(py_binary): Double-slash in paths when running from root directory by @arrdem in #838
  • fix(py_binary): Resolve .venv.pth action conflict with .venv target by @arrdem in #839
  • fix(py_venv): Link dependency bin scripts into venv bin/ directory by @arrdem in #840
  • chore(uv): Expose gazelle_python_manifest in uv/unstable:defs.bzl by @arrdem in #842

New Contributors

Full Changelog: v1.8.5...v1.8.6

v1.8.5

04 Mar 21:36
0516d1c

Choose a tag to compare

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.8.5")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

What's Changed

  • fix(uv): Transition build deps of whls back to libs by @arrdem in #772
  • change hub name back to match root by @alexeagle in #775
  • feat(uv): Support native sdist builds via RBE by @arrdem in #770
  • chore: OCI tests to e2e by @arrdem in #786
  • fix: document module extensions, not workspace repositories by @alexeagle in #788
  • fix: rules_pkg is in the released version loading graph by @alexeagle in #799
  • Upgrade toml2json to v0.0.23 and add Windows binaries by @mkanat in #808
  • docs: fix starlark sample code by @hofbi in #809
  • chore(docs): add starter repo section to README by @alexeagle in #782
  • chore(deps): update dependency rules_oci to v2.2.7 by @renovate[bot] in #780
  • chore(deps): update dependency rules_cc to v0.2.16 by @renovate[bot] in #779
  • chore(deps): update dependency googleapis to v0.0.0-20260109-6145b5ff by @renovate[bot] in #765
  • feat(uv): multiversion packages and extras support by @arrdem in #778
  • Remove duplicated rules_shell by @dzbarsky in #812

New Contributors

Full Changelog: v1.8.4...v1.8.5

v1.8.4

15 Jan 09:33
3b46164

Choose a tag to compare

Using Bzlmod with Bazel 6:

Add to your MODULE.bazel file:

bazel_dep(name = "aspect_rules_py", version = "1.8.4")

And also register a Python toolchain, see rules_python. For example:

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
python.toolchain(
    python_version = "3.13",
)

Using WORKSPACE

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
http_archive(
    name = "aspect_rules_py",
    sha256 = "d02bb318336198afb282ae2380cdd23dc3f06a509bd2e63600efa656e91d8fb4",
    strip_prefix = "rules_py-1.8.4",
    url = "https://github.com/aspect-build/rules_py/releases/download/v1.8.4/rules_py-v1.8.4.tar.gz",
)

load("@aspect_rules_py//py:repositories.bzl", "rules_py_dependencies")

rules_py_dependencies()

load("@aspect_rules_py//py:toolchains.bzl", "rules_py_toolchains")

rules_py_toolchains()

# "Installation" for rules_python
load("@rules_python//python:repositories.bzl", "py_repositories", "python_register_toolchains")

python_register_toolchains(
    name = "python_toolchain",
    python_version = "3.9",
)

py_repositories()

Full Changelog: v1.8.3...v1.8.4