Skip to content

Switch to PEP517 build process & pyproject.toml #5090

@Flamefire

Description

@Flamefire

When installing EasyBuild with pip the following deprecation warning is shown:

DEPRECATION: Building 'easybuild-framework' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the --use-pep517 option, (possibly combined with --no-build-isolation), or adding a pyproject.toml file to the source tree of 'easybuild-framework'. Discussion can be found at pypa/pip#6334

With pip 25.3 on Python 3.14 there is no warning or error, although the new build process seems to be used:

jreuter@Linux ~ pip --version
pip 25.3 from /usr/lib/python3.14/site-packages/pip (python 3.14)
jreuter@Linux ~ update-easybuild.sh
Collecting https://github.com/easybuilders/easybuild-easyconfigs/archive/develop.tar.gz
Using cached https://github.com/easybuilders/easybuild-easyconfigs/archive/develop.tar.gz (7.3 MB)
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: easybuild-easyconfigs
Building wheel for easybuild-easyconfigs (pyproject.toml) ... done
Created wheel for easybuild-easyconfigs: filename=easybuild_easyconfigs-5.2.1.dev0-py3-none-any.whl size=18205668 sha256=c7085de0e06e8918e551a60942840e9f2164463315ff9bb5e83e0245730e93a6
Stored in directory: /tmp/pip-ephem-wheel-cache-fyq07w5v/wheels/6d/03/51/5dcd5171e39e242d65d07f2b8afb05bc84b5318c07cabd38a5
Successfully built easybuild-easyconfigs
Installing collected packages: easybuild-easyconfigs
Attempting uninstall: easybuild-easyconfigs
Found existing installation: easybuild-easyconfigs 5.2.1.dev0
Uninstalling easybuild-easyconfigs-5.2.1.dev0:
Successfully uninstalled easybuild-easyconfigs-5.2.1.dev0
Successfully installed easybuild-easyconfigs-5.2.1.dev0

PEP 517 is especially about build isolation, i.e. (automatically) creating a virtualenv where build dependencies are installed to before building the package.

This might also be useful for #5065 if it turns out that our standard use of setuptools (in there) is (unexpectedly) incompatible with some specific setuptools version as we can use pyproject.toml setup-requires to specify what we want or don't want.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions