Further modernization of the build backend to reduce `setup.py` usage
Personne n'a encore pris cette issue.
- Langage dominant
- Cython
- Étoiles
- 3.4k
- Forks
- 329
- Merge moyen
- 1 j 21 h
- PR mergées (30 j)
- 113
Description
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 (
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par comparer les configurations actuelles de pyproject.toml et setup.py pour cuda.bindings et cuda.core, puis lisez la discussion liée dans #46. Évaluez si les versions récentes de setuptools peuvent déclarer les extensions Cython ou si scikit-build-core et un CMakeLists.txt sont nécessaires, en tenant compte également des considérations futures concernant cudax:: dans #528. Le travail sera considéré comme terminé lorsque le projet aura convenu d’une orientation pour le backend de build et de son périmètre.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- cmake, python
- Domaine
- build-system
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Calme
- Clarté
- À clarifier
- Accessibilité débutants
- 35/100