Skip to content

Conversation

@stagnation
Copy link

To follow the (future) migration of the python rules out of the set of native rules: bazelbuild/bazel#17773 . This requires us to load the 'rules_python' module and while at it we parameterize the 'py_binary' so it is possible for consumers to switch to their own macros, following the model of pip_compile: https://github.com/bazelbuild/rules_python/blob/9b2b70adba5431162401a97b2bbab1dc938e7245/python/private/pypi/pip_compile.bzl#L32

This solves loading errors:

ERROR: Traceback (most recent call last): File "/home/nwirekli/.cache/bazel/_bazel_nwirekli/1eeb85843c9866d288d7d5644c3b4615/ external/hedron_compile_commands+/refresh_compile_commands.bzl", line 67, column 27, in <toplevel> py_binary = native.py_binary, Error: no native function or rule 'py_binary' Available attributes: ... ERROR: error loading package under directory '': error loading package '@@hedron_compile_commands+//': initialization of module 'refresh_compile_commands.bzl' failed 
To follow the (future) migration of the python rules out of the set of native rules: bazelbuild/bazel#17773 . This requires us to load the 'rules_python' module and while at it we parameterize the 'py_binary' so it is possible for consumers to switch to their own macros, following the model of pip_compile: https://github.com/bazelbuild/rules_python/blob/9b2b70adba5431162401a97b2bbab1dc938e7245/python/private/pypi/pip_compile.bzl#L32 This solves loading errors: ERROR: Traceback (most recent call last): File "/home/nwirekli/.cache/bazel/_bazel_nwirekli/1eeb85843c9866d288d7d5644c3b4615/ external/hedron_compile_commands+/refresh_compile_commands.bzl", line 67, column 27, in <toplevel> py_binary = native.py_binary, Error: no native function or rule 'py_binary' Available attributes: ... ERROR: error loading package under directory '': error loading package '@@hedron_compile_commands+//': initialization of module 'refresh_compile_commands.bzl' failed
@stagnation stagnation force-pushed the feature/change-py-binary-to-load-from-rules_python branch from 059ae12 to c8c0afe Compare December 18, 2024 12:28
@stagnation
Copy link
Author

I think this is only needed because we use 8.0.0rc2. Where the default value for a new flag was too strict. A colleague mentioned similar errors and that with the real 8.0.0 this is not a problem. So, after digging ourselves out of the module-version hole that prevents a clean upgrade to 8 this is helpful. And I hope to save some time in a later migration away from native.py_binary.

@keith
Copy link

keith commented Sep 12, 2025

this will be required for bazel 9.x bazelbuild/bazel@0522f8e, so probably want to merge this soon since that's ~2 months away

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants