bazel-contrib / bazel-contrib/rules_python

pip.override in upstream modules but got "overrides are only supported in root modules"

未关闭
#2,513 3 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Starlark
星标
688
派生
721
平均合并
15 小时 7 分钟
30 天内合并 PR
76

描述

# 🐞 bug report

### Affected Rule

The issue is caused by the rule: https://github.com/bazelbuild/rules_python/blob/66a8b5b595710bd107c31ad5d449593536effb76/python/private/pypi/extension.bzl#L404

### Is this a regression?

No

### Description
I'm migrating from WORKSPACE to bzlmod.
There is a library `A`, in which it has patches like
```
pip.override(
file = "torch-2.3.0-cp311-cp311-manylinux1_x86_64.whl",
patch_strip = 1,
patches = [
# FIXME: https://github.com/pytorch/pytorch/issues/117350
"//bazel/patches:pytorch.patch",
"//bazel/patches:pytorch_record.patch",
],
)
```
And I have another project `B`, which depends on A, however after adding deps like
`bazel_dep(name = "A", version = "x.y.z")`
I got the error
```
ERROR: /xxxx/df5a01bdd2671083bb14bf68b19a3f38/external/rules_python~/python/private/pypi/extension.bzl:406:21: Traceback (most recent call last):
File "/xx/.cache/bazel/xxxxx/df5a01bdd2671083bb14bf68b19a3f38/external/rules_python~/python/private/pypi/extension.bzl", line 406, column 21, in _pip_impl
fail("overrides are only supported in root modules")
Error in fail: overrides are only supported in root modules
ERROR: Analysis of target '//xxx' failed; build aborted: error evaluating module extension pip in @@rules_python~//python/extensions:pip.bzl
```

## 🔬 Minimal Reproduction

## 🔥 Exception or Error

## 🌍 Your Environment

**Operating System:**

  

Ubuntu 24.04.1 LTS

**Output of `bazel version`:**

  

7.4.1

**Rules_python version:**

  

0.34.0

**Anything else relevant?**

贡献指南

打开贡献指南

调研方向

从 python/private/pypi/extension.bzl 的 404-406 行附近开始,这里 upstream 模块中的 pip.override 会触发所报告的失败。使用 Bazel 7.4.1 和 rules_python 0.34.0,通过库 A 和项目 B 重现从 WORKSPACE 到 bzlmod 的迁移。依赖场景得到解决,或明确记录受支持的限制,即表示完成。

由索引模型根据 Issue 内容生成。

评估

技术栈
python
领域
build-system
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
32/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。