Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change py_binary to load from rules_python #235

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant