jsondiff
jsondiff copied to clipboard
2.0.0: pep517 based build fails with latest `setuptools` 62.0.0
Looks like just released 2.0.0 fail on use pep517 based build with latest setuptools
62.0.0
+ /usr/bin/python3 -sBm build -w --no-isolation
* Getting dependencies for wheel...
running egg_info
creating jsondiff.egg-info
writing jsondiff.egg-info/PKG-INFO
writing dependency_links to jsondiff.egg-info/dependency_links.txt
writing entry points to jsondiff.egg-info/entry_points.txt
writing top-level names to jsondiff.egg-info/top_level.txt
writing manifest file 'jsondiff.egg-info/SOURCES.txt'
reading manifest file 'jsondiff.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'jsondiff.egg-info/SOURCES.txt'
* Building wheel...
running bdist_wheel
running build
running build_py
creating build
creating build/lib
creating build/lib/jsondiff
copying jsondiff/__init__.py -> build/lib/jsondiff
copying jsondiff/cli.py -> build/lib/jsondiff
copying jsondiff/symbols.py -> build/lib/jsondiff
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/jsondiff
copying build/lib/jsondiff/__init__.py -> build/bdist.linux-x86_64/wheel/jsondiff
copying build/lib/jsondiff/cli.py -> build/bdist.linux-x86_64/wheel/jsondiff
copying build/lib/jsondiff/symbols.py -> build/bdist.linux-x86_64/wheel/jsondiff
running install_egg_info
running egg_info
writing jsondiff.egg-info/PKG-INFO
writing dependency_links to jsondiff.egg-info/dependency_links.txt
writing entry points to jsondiff.egg-info/entry_points.txt
writing top-level names to jsondiff.egg-info/top_level.txt
reading manifest file 'jsondiff.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
adding license file 'LICENSE'
writing manifest file 'jsondiff.egg-info/SOURCES.txt'
Copying jsondiff.egg-info to build/bdist.linux-x86_64/wheel/jsondiff-2.0.0-py3.8.egg-info
running install_scripts
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 363, in <module>
main()
File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 345, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/lib/python3.8/site-packages/pep517/in_process/_in_process.py", line 261, in build_wheel
return _build_backend().build_wheel(wheel_directory, config_settings,
File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 244, in build_wheel
File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 229, in _build_with_temp_dir
File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 281, in run_setup
File "/usr/lib/python3.8/site-packages/setuptools/build_meta.py", line 174, in run_setup
File "setup.py", line 8, in <module>
setup(
File "/usr/lib/python3.8/site-packages/setuptools/__init__.py", line 87, in setup
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 148, in setup
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 163, in run_commands
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 967, in run_commands
File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 1214, in run_command
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
File "/usr/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 335, in run
self.run_command('install')
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
help = {}
File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 1214, in run_command
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
File "/usr/lib/python3.8/site-packages/setuptools/command/install.py", line 68, in run
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/command/install.py", line 682, in run
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 313, in run_command
help = {}
File "/usr/lib/python3.8/site-packages/setuptools/dist.py", line 1214, in run_command
File "/usr/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 986, in run_command
File "/usr/lib/python3.8/site-packages/setuptools/command/install_scripts.py", line 19, in run
ModuleNotFoundError: No module named 'setuptools.command.easy_install'
I am not really familiar with the new school build tooling yet, so if you can provide a PR would help!
To be honet I have no idea how to fix that issue and setuptools
>= 60.0.0 introduced a lot of new features and cut of as well some legacy stuff .. which I think that those missing now legacy bits are affecting pep517 based build.
You need to contact setuptools
developer. There is as well github discussion forum https://github.com/pypa/setuptools/discussions
Is there a reason though why you need to build it yourself? The wheel has been uploaded to PyPI and if you need a workaround for now, just do python setup.py sdist bdist_wheel
Is there a reason though why you need to build it yourself
Yes it is. I'm working on whole Linux distribution and in case any issues when it will be necessary to apply some fix I need clean build procedure in which such patch can be easyly added. .whl files are not patchable ..
Executinf sdist and bdist_wheel soon will be deprecated and replaced by PEP517 https://peps.python.org/pep-0517/
FYI in this case it could be setuptools
issue.
Will back with some results tomorrow (I need to update my setuptools
rpm package to lates version).
I am unable to reproduce this issue with any version of setuptools (tried 62.0 -> latest) between the 2.0.0 tag and the tip of main. However, if we port setup.py to pyproject.toml we get a patchable distribution (tar.gz) for free.
Can you take a look at #65 and let me know if that is approaching something usable for you? I may have misunderstood your requirements so please let me know if I'm mistaken :)
This might be resolved by #65 . Feel free to re-open if it doesn't.
👍 Cannot apply that PR on top of last release. Will recheck that when new version will be released.
(hopefully new release will be soon 😋 )