Skip to content

Conversation

@horizon-blue
Copy link
Contributor

Closes MET-41

Summary of Changes

scikit-build-core has an editable.rebuild option, which can automatically invoke CMake under the hood when we import from genmetaballs to rebuild the C++ extension if needed. To use this option, we need to turn off build isolation for our package so that scikit build can use the right set of tools (see scikit-build/scikit-build-core#1112 (comment)). On the other hand, this also makes rebuilding a lot faster because Pixi doesn't have to re-create a new isolated environment and build from scratch.

See scikit-build-core's official doc on editable install for more details.

With this change, we shouldn't need to manually run pixi reinstall genmetaballs anymore. Hopefully this will make our development experience a bit smoother :).

Test Plan

After enabling this option & run pixi reinstall genmetaballs one last time just to make sure that the config is active. Then, I tried modifying a couple of the C++ files, then run pixi run test immediately after (without running reinstall manually), and the changes are correctly reflected on the Python test results.

@linear
Copy link

linear bot commented Nov 30, 2025

MET-41 Speed up pre-push behavior

Right now, pushing is very slow because it unconditionally does a pixi reinstall genmetaballs before running the tests during pre-push (see MET-28). This takes over 40s on my side every-time I need to push.

A smarter way would be to conditionally re-install only when the build files are not updated to any source code. This could be automated via some script.


scikit-build-core has an editable.rebuild option, which can automatically rebuild the package at import time if needed (see the official doc for details). This can save us from having to explicitly invoking pixi reinstall genmetaballs.

@horizon-blue
Copy link
Contributor Author

I'm going to merge this now so we can develop faster. Lmk if it breaks your workflow, and we can always revert this setting if needed :)

@horizon-blue horizon-blue merged commit 40b6391 into master Dec 2, 2025
1 check passed
@horizon-blue horizon-blue deleted the xiaoyan/fast-editable-reinstall branch December 2, 2025 20:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants