bazel-contrib / bazel-contrib/rules_python

A utility to generate "runfiles tree" for build actions

Open
#1,602 0 comments 1 reaction 0 assignees View on GitHub
help wanted
Dominant language
Starlark
Stars
688
Forks
721
Avg merge
15h 7m
Merged PRs (30d)
76

Description

# 🚀 feature request

### Description

I'm wondering if there's a way to generate python runfiles in an action. This is probably a Bazel request but so far I've only really felt this pain for python as I try to write aspects that run on `py_library` targets but otherwise require a full runfiles tree.

The only issue I struggle to find a clean solution for is how to deal with generated files. Any library that contains generated files results in files being "missing" in the action bit in reality it hasn't been collapsed into a runfiles tree so other sources fail to import, for example.

### Describe the solution you'd like

I think if there's gonna be a `rules_python` specific implementation then it'd be natural to want to put this logic in python so it can run in the action and avoid impacting the analysis phase too much. Though I'm not sure how to handle environments like windows which do not run in a sandbox and would potentially litter the execroot or conflict with other running actions. Some utility in `rules_python` would be fantastic.

Contributor guide

Open the contributing guide

Research direction

The issue names no files, tests, or implementation entry point. Start by tracing how Python runfiles, generated files, and py_library aspects are handled in build actions, then investigate the Windows execroot and sandbox constraints. Done would require a defined utility design that makes generated files available without unnecessary analysis-phase impact or action conflicts.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.