bazel-contrib / bazel-contrib/rules_python
Make py_wheel warn if BUILD (or other special bazel files) are included
- 主要语言
- Starlark
- 星标
- 688
- 派生
- 721
- 平均合并
- 15 小时 7 分钟
- 30 天内合并 PR
- 76
描述
We've seen there are wheels that have special bazel build-time artifacts in them, which then interfere with the pip integration. While we should remove these upon consuming a wheel to prevent the problem, the wheels also shouldn't have those files in them to begin with.
Something I wonder is _how_ those files are ending up in wheels? My guess is just naive `glob("**")` somewhere. We can't control other tools to create wheels, but at the least, we can change py_wheel to error or fail if such special files occur.
Hm, I wonder if we could query pypi to see how often the metadata `Generator` value indicates our py_wheel was used.
Special files:
* BUILD
* BUILD.bazel
* WORKSPACE
* WORKSPACE.bazel
* REPO.bazel
* MODULE.bazel
* Auto-generated `__init__.py` files
I include auto-generated init files because I've seen a few wheels (nvidia-something) that had empty `__init__.py` files in places they shouldn't be or made no sense. (they use namespace packages, so such empty init files break things).
贡献指南
调研方向
Start by tracing the py_wheel entry point to determine how wheel contents are assembled and where existing validation could run. Clarify whether the expected behavior is a warning or failure, then cover the listed Bazel files and inappropriate auto-generated __init__.py files; done means the intended cases are detected without disrupting valid wheels.
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- build-system
- Issue 类型
- 功能
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 35/100