Further modernization of the build backend to reduce `setup.py` usage
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- Cython
- Estrellas
- 3.4k
- Forks
- 329
- Merge medio
- 1 d 23 h
- PR fusionados (30 d)
- 116
Descripción
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 (
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Empieza comparando las configuraciones actuales de pyproject.toml y setup.py para cuda.bindings y cuda.core; después, lee la discusión enlazada en #46. Evalúa si las versiones recientes de setuptools pueden declarar las extensiones de Cython o si se necesitan scikit-build-core y un CMakeLists.txt, incluidas las consideraciones futuras sobre cudax:: en #528. Se considerará terminado cuando el proyecto acuerde una dirección para el backend de compilación y su alcance.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- cmake, python
- Área
- build-system
- Tipo de issue
- Refactorización
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Tranquilo
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 35/100