Further modernization of the build backend to reduce `setup.py` usage
オープン
まだ誰も着手していません。
CI/CD
cuda.bindings
cuda.core
enhancement
- 主要言語
- Cython
- スター
- 3.4k
- フォーク
- 329
- 平均マージ
- 1日 21時間
- マージ済み PR(30日)
- 113
説明
Creating an issue to capture the internal discussions.
Currently both cuda.bindings and cuda.core use setuptools as the build backend and have a mixture of pyproject.toml static declarations and setup.py dynamic logics. We have two choices here:
- Keep
setuptoolsbut further reduce the amount of code insetup.py:- This seems to become possible with recent
setuptools, where Cython extensions can now be declared inpyproject.toml.
- This seems to become possible with recent
- Switch to use
scikit-build-core:- This has the benefit of reusing CUDA discovery mechanism (
FindCUDAToolkit) and other nice build system features provided by CMake (see the relevant discussion in #46). - The potential downside is to maintain a custom
CMakeLists.txtwhich is arguably a burden for non-C++ (=C & Python) oriented developers. Our Cython extensions are very simple to build.- However, this might become necessary once we start integrating some features from
cudax::, e.g. #528.
- However, this might become necessary once we start integrating some features from
- This has the benefit of reusing CUDA discovery mechanism (
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、cuda.bindings と cuda.core の現在の pyproject.toml および setup.py の設定を比較し、次に #46 にリンクされている議論を読んでください。最近の setuptools で Cython 拡張を宣言できるのか、それとも scikit-build-core と CMakeLists.txt が必要なのかを、#528 における将来の cudax:: に関する考慮事項も含めて評価してください。プロジェクトが build backend の方向性とその範囲について合意すれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- cmake, python
- 領域
- build-system
- issue の種類
- リファクタリング
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 静か
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100