Emit RunfilesGroupInfo in py_binary targets
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 48/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 活発
- 技術スタック
- python
- 領域
- build-system
調査の方向性
まず、リンクされている rules_runfiles_group Bazel モジュールの py_library ルールと py_binary ルールの実装、および provider のセマンティクスを読みます。依存関係がどのように転送・集約されるかを定義し、その後、py_binary がインタープリターと標準ライブラリ、およびサードパーティ依存関係のグループを出力することを、要求された provider とメタデータを対象とするテストで検証します。
索引モデルが issue の本文から書いたものです。
説明
🚀 feature request
Relevant Rules
I want py_binary to return an additional provider, RunfilesGroupInfo.
py_library could contribute by also returning this provider, but that's more of an implementation detail.
I'd be open to work on this if you agree that this is a good idea.
Description
I'd like to make packaging of py_binary targets in container images more efficient. To that end, I have designed a set of providers and described their semantics in a new Bazel module.
Describe the solution you'd like
py_library targets should forward RunfilesGroupInfo and RunfilesGroupMetadataInfo from their deps and add their own runfiles (srcs, data) to a group.
py_binary targets should aggregate runfiles groups from their deps and emit RunfilesGroupInfo and RunfilesGroupMetadataInfo that contain at least:
- A group for the interpreter + standard library
- One group per third party dependency
Additionally, it could also make sense to produce groups for each py_library target in the transitive dependency graph.
Describe alternatives you've considered
Doing nothing would mean we continue creating (very large) container image layers that contain the full runfiles tree of a py_binary target.
Writing custom packaging rules just for rules_python is unsustainable in my opinion.
- 主要言語
- Starlark
- スター
- 690
- フォーク
- 722
- 平均マージ
- 1日 55分
- マージ済み PR(30日)
- 38
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
bazel-contrib/rules_python のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
bazel-contrib/rules_python#4179 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
bazel-contrib/rules_python#4164 · コメント 1 件 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
bazel-contrib/rules_python#3821 ·
-
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
bazel-contrib/rules_python#4181 ·
-
Release 2.4.0 オープンtype: release
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
bazel-contrib/rules_python#4175 · コメント 3 件 ·
bazel-contrib/rules_python の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
-
bug
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
area:engineering priority:p2 type:bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
jejjohnson/pyrox#234 ·
-
good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 90/100
-
good first issue
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
ros2/ros2_tracing#266 · コメント 1 件 ·