Redesigning Build System for PyNE with Scikit-Build #1499
ahnaf-tahmid-chowdhury
started this conversation in
Ideas
Replies: 1 comment
-
I've identified an alternative approach to incorporate our arguments. Instead of passing arguments directly, we can utilize environment variables that are set prior to executing the setup process. Here's the code snippet that demonstrates this approach: export DAGMC_ROOT = /dagmc root
export MOAB_ROOT = /moab root Check for the presence of environment variables and include them in setup.py if "DAGMC_ROOT" in os.environ:
cmake_args.append("-DDAGMC_ROOT:FILEPATH=" + os.environ["DAGMC_ROOT"])
if "MOAB_ROOT" in os.environ:
cmake_args.append("-DMOAB_ROOT:FILEPATH=" + os.environ["MOAB_ROOT"]) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Introduction:
I wanted to share some thoughts regarding the redesign of our build system using Scikit-Build. As many of us are fans of PYPI, it's essential for us to have a streamlined and efficient build process. This initiative has been prompted by issue #1442, and I believe it's a step in the right direction.
Here are a few points I'd like to discuss and get your insights on:
1. Handling Optional Dependencies
We have optional dependencies like
MOAB
andDAGMC
. Considering that Scikit-Build compiles the source code and generates platform-specific wheel packages, we need to decide whether to create separate packages for each dependency or build a single binary package that includes all of them. This decision could impact the user experience and the maintainability of our packages.2. Platform Considerations
Given that Scikit-Build creates platform-specific packages, it's crucial to identify the platforms we should prioritize. We should discuss which platforms are most commonly used by our community and ensure that our packages cater to those platforms.
3. Custom Arguments and Migration from setup.py
Currently, I am using the command
python3 -m build --wheel
to build packages. One concern is that Scikit-Build doesn't easily allow the addition of custom arguments. This might require modifications to our previoussetup.py
and adapting it to the Scikit-Build format. Let's brainstorm on the best approach for this transition.4. Transition to Cython v3
Since we are revamping the build method, it's worth considering whether we should also make the leap to the latest version of Cython (v3). This could potentially bring performance improvements and better compatibility.
Community Discussion:
I'm excited about the possibilities this change could bring, but I want to make sure we're aligned on these points before diving in. Your feedback and insights are incredibly valuable as we navigate this transition.
Feel free to share your thoughts, suggestions, and experiences. Together, we can propel PyNE's development and ensure its continued excellence.
Let the discussion begin! 🚀
Beta Was this translation helpful? Give feedback.
All reactions