-
Notifications
You must be signed in to change notification settings - Fork 392
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Python wheel building improvements #10466
base: develop
Are you sure you want to change the base?
Conversation
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
3 similar comments
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
@dogganon @Myoldmopar it has been 29 days since this pull request was last updated. |
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
2 similar comments
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
@dogganon @Myoldmopar it has been 28 days since this pull request was last updated. |
@dogganon it has been 20 days since this pull request was last updated. |
Pull request overview
@Myoldmopar
Changes in this PR include:
setup.py
withpyproject.toml
for zero-config (almost) wheel building. Under the hood,scikit-build-core
is used as the build system for interacting with CMake. Also it's much faster since it tells CMake to use Ninja by default.energyplus
toenergyplus.core
. This convertsenergyplus
to a namespace package, which allows sub-packages released under EnergyPlus's "umbrella" to be included in the namespace. Currentlyenergyplus.core
(the Python binding) is the only sub-package available (in this repo); In the future, there should be aenergyplus.datasets
for auxiliary example IDFs and EPWs. Once we have that clean separation of functionality each package can be installed separately so I imagine the installation would be much more lightweight compared to using installers.scripts/dev/versioning.py
for PEP 440. Sincescikit-build-core
is configured to usesetuptools_scm
for versioning, which in turn uses Git tags, tags are required to follow PEP 440. This should be relatively easy if the project had used a consistent, common versioning scheme. EnergyPlus is obviously not the case (mostly due to unconventional suffixes like "FollowupBuild" and "IOFreeze"). So I included a scriptversioning.py
inscripts/dev/
to (hopefully) make future version tagging easier to get right, i.e. PEP 440 compliant. (Slidenote: CMake should be configured to pull versions from Git as well. Having two separate version-keeping systems is error-prone.)Reviewer
This will not be exhaustively relevant to every PR.