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

fix: Fall back to directory based runfiles using relative paths #2621

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

mering
Copy link

@mering mering commented Feb 21, 2025

This will also work out of the box when the runfiles tree is packaged into a container image as follows:

py_binary(
    name = "binary",
    srcs = ["main.py"],
    data = ["runfile.txt"],
)

pkg_tar(
    name = "layer",
    srcs = [":binary"],
    strip_prefix = "/",
    include_runfiles = True,
)

oci_image(
    name = "image",
    tars = [":layer"],
)

@rickeylev
Copy link
Collaborator

Thanks for the fix @mering . I think this looks fine, but some surrounding changes to make:

  • Can you describe the problematic case and why this fixes it?
  • Tests: This looks easy to test if we just have a shell script setup the environment (unset the RUNFILES env vars) and call the binary and check it worked. The tests/support/sh_py_run_test.bzl#sh_py_run_test should make this pretty easy. There are examples of using it in tests/bootstrap_impls
  • CHANGELOG.md needs to be updated.

@mering
Copy link
Author

mering commented Feb 26, 2025

@rickeylev Thanks for the review. See my answers below:

  • When used in a container image without involving Bazel at all, the environment variables are not set but runfiles are in the expected folder BIN.runfiles as it was packaged via pkg_tar with include_runfiles = True. I updated the description with an example.
  • I tried doing this but for some reason the $RUNFILES_DIR is still set within Python even though I unset it in the shell script.
  • I added this to the CHANGELOG.

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.

2 participants