-
Notifications
You must be signed in to change notification settings - Fork 497
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
Add PEP-517 compliant build requirement specification #807
Conversation
PEP 517 [1] provides a new standard format for specifying build-time dependencies for Python packages. This format supercedes previous formats, such as the `setup_requirements` argument in setuptools[2]. In order for this package to be installable by systems that expect PEP 517-compliant formatting, such as Poetry, a minimal pyproject.toml file must be added specifying the build-time requirements. This file does not trigger any other changes to the build system or require the adoption of any new tools; recent versions of setuptools support referencing the pyproject.toml `build-system` header information. [1]: https://peps.python.org/pep-0517/ [2]: https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#build-system-requirement
cc: @Radiomics/developers |
@ReeceStevens thank you for your contribution and detailed explanation! @JoostJM is maintaining the repository, and I think it would be best to wait for him to respond. I see CI tests are failing, but they have also been failing for the latest commit, so this is probably not because of a problem with your PR. If we don't hear back from Joost after the holidays, I can merge your PR. |
Hi @fedorov, @ReeceStevens, just curious what the status of this PR is?
Having this merge along with a patch release would really help us with our build pipelines for a tool we are developing (https://github.com/AustralianCancerDataNetwork/pydicer). Curious to hear what the next steps are to have this resolved. Thanks! |
@pchlap I will defer to @hugoaerts who is the director of the lab behind this software package. |
Sorry for the late reply. I have been struggling with updating the entire CI pipeline in my spare time, to get PyRadiomics up-to-date again. This is nearly done, and I'm about to make the new release, which already includes (a more extensive) pyproject.toml. Therefore I'm closing this PR. |
Has this been solved, I'm still getting the same error - also using poetry.
|
cc: @Radiomics/developers
Hello pyradiomics team! Thanks for the great open source software you are building here.
I am working on a project using
pyradiomics
that is transitioning to using poetry for dependency management. During the migration, I ran into issues installingpyradiomics
due to the build-time dependency ofnumpy
not being present. After doing some research, I realized this is because poetry expects a PEP-517 style build dependency specification, which is basically just a stubpyproject.toml
file with the build-time requirements specified.It looks like this new format for build-time dependencies is now the standard in the Python ecosystem, and setuptools (the packaging solution used in this project) also recommends the use of the toml file approach now (see https://setuptools.pypa.io/en/latest/userguide/dependency_management.html#build-system-requirement). This is in contrast to the current use of the
setup_requirements
kwarg insetup.py
.I have confirmed that with the addition of this stub
pyproject.toml
file, installation with poetry works as expected. Since this is now an accepted PEP and tools are moving towards expectation of this format, I wanted to propose the addition of this file to enable usingpyradiomics
in poetry-based python projects. This should have no other side effects in the build system and require no changes to any existing build tools.In addition to merging this in to master, I am hoping it would be possible to cut a v3.0.2 patch release that will add support for PEP-517 builds to the version of pyradiomics available on pypi.
I'm happy to answer any questions you have and discuss further! Thanks!