Comments (9)
I chose not to include cugraph-ops in this work because that package uses nanobind instead of Cython for its bindings, so it's not sensitive to rapids-cython changes. I also don't know much about its nanobind usage, and it looks like they do something bespoke with setting the CMake install directory. I'd rather leave that one to the devs to manage the transition since it doesn't impact rapids-cython at all.
from build-planning.
Good catches @jameslamb! Let me work through these. As far as build options we've just been removing the build options everywhere, so I'll do that, and hopefully the configure options are mostly fixed already since those need to be right for everything to work correctly.
from build-planning.
These are the remaining issues in repos that have made the scikit-build-core transition. We can close this issue once the following PRs are merged:
from build-planning.
I'm +1 on this.
For reference, the README has a thorough and direct list of differences between scikit-build
and scikit-build-core
: https://github.com/scikit-build/scikit-build-core
from build-planning.
@vyasr Would it be possible to migrate cugraph-ops
as well? It seems that repo was missed. It'd be good to handle this while it's fresh on our minds.
https://github.com/rapidsai/cugraph-ops/blob/96a388691c8d42a9f3b7a56bf6f29d24d8ffe166/pylibcugraphops/pyproject.toml#L20
https://github.com/rapidsai/cugraph-ops/blob/96a388691c8d42a9f3b7a56bf6f29d24d8ffe166/docker/Dockerfile#L63
from build-planning.
Also, this might not need migrated, but rapids-cmake
also relies on scikit-build
as a test dependency (and cython>=0.29,<0.30
which might be possible to clean up at the same time).
from build-planning.
Regarding rapids-cmake, I'm pretty sure that dependency is superfluous and can be removed altogether. We never actually launch builds via Python in rapids-cmake. Removed that dependency in rapidsai/rapids-cmake#512.
from build-planning.
I think there's one more block of work that should be done as part of this.
There are some projects with configuration in environment variables that scikit-build
recognized but scikit-build-core
does not. From scikit-build-core
's migration guide (docs)
The
SKBUILD_CONFIGURE_OPTIONS
environment variable is now namedSKBUILD_CMAKE_ARGS
for consistency.
The
SKBUILD_BUILD_OPTIONS
environment variable is not supported. Some specific features are accessible using alternative variables. In particular, useCMAKE_BUILD_PARALLEL_LEVEL
orSKBUILD_CMAKE_VERBOSE
to control build parallelism or CMake verbosity directly.
So I see 3 small pieces of additional work:
- convert all uses of
SKBUILD_CONFIGURE_OPTIONS
toSKBUILD_CMAKE_ARGS
- convert stuff like
SKBUILD_BUILD_OPTIONS="-j4"
toCMAKE_BUILD_PARALLEL_LEVEL=4
- convert stuff like
SKBUILD_BUILD_OPTIONS="-v"
toSKBUILD_CMAKE_VERBOSE="true"
For all projects that have recently cut over to scikit-build-core
.
I didn't find a ton of these from GitHub search (e.g. this link), but there are a few.
For example, cuml
cut over to scikit-build-core
(rapidsai/cuml#5693) but is still using SKBUILD_BUILD_OPTIONS
to control parallelism (code link).
from build-planning.
Closing this now. All the associated work has been merged.
from build-planning.
Related Issues (20)
- Remove usage of the NumPy C API HOT 5
- Build Python packages using the limited API HOT 5
- Properly support building pure Python packages
- Align conda and wheel building workflows HOT 2
- Build and ship C++ RAPIDS binaries
- Split RAPIDS C++ conda libraries into standardized components
- Evaluate replacing conda-build with rattler-build
- Merge the miniforge-cuda repo into ci-imgs
- Merge the gha-tools repo into ci-imgs HOT 1
- Investigate using micromamba instead of installing miniforge HOT 1
- Use GHA's caching mechanism to save package manager caches between runs HOT 1
- Add CMake presets to RAPIDS repositories
- Simplify and standardize (or replace) build.sh scripts HOT 5
- Treat clobber warnings as errors for conda builds HOT 10
- update `fmt` and `spdlog` across RAPIDS HOT 2
- Fix UCX support for cuML/RAFT in wheels packages HOT 13
- update scikit-build-core floors, set a minimum version, address deprecation warnings HOT 2
- Add support for CI for workflows in repositories that don't follow the traditional RAPIDS branching model HOT 3
- Merge relevant parts of pypi-wheel-scripts into release-scripts HOT 2
- Enable building only some outputs of conda recipes HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from build-planning.