aio-libs / yarl

Yet another URL library
https://yarl.aio-libs.org
Apache License 2.0
1.33k stars 167 forks source link

1.13.1: pep517 build do not produces `yarl._quoting_c` DSO module #1166

Open kloczek opened 1 month ago

kloczek commented 1 month ago

Please confirm the following

Describe the bug

After yarl 1.12.1 I cannot build correctly module because pep517 based build looks like is not building yarl._quoting_c DSO module and looking on the output cannot find any cause of that. Result is that pytest fails because it cannot find yarl._quoting_c module. May I ask for any hint about possible cause? 🤔

To Reproduce

Just run pip or build to perform pep517 based build. I\m using /usr/bin/python3 -sBm build -w --no-isolation --config-setting=pure-python=false --config-setting=with-cython-tracing=true command.

Expected behavior

As long as is used --config-setting=pure-python=false my understanding is that it should be build loadable DSO module.

Logs/tracebacks

<details>
<summary>Here is pep157 based build output:</summary>

+ /usr/bin/python3 -sBm build -w --no-isolation --config-setting=pure-python=false --config-setting=with-cython-tracing=true
* Getting build dependencies for wheel...
running egg_info
creating yarl.egg-info
writing yarl.egg-info/PKG-INFO
writing dependency_links to yarl.egg-info/dependency_links.txt
writing requirements to yarl.egg-info/requires.txt
writing top-level names to yarl.egg-info/top_level.txt
writing manifest file 'yarl.egg-info/SOURCES.txt'
reading manifest file 'yarl.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '*.cache' found anywhere in distribution
warning: no previously-included files found matching 'yarl/*.c'
warning: no previously-included files found matching 'yarl/*.html'
warning: no previously-included files found matching 'yarl/*.so'
warning: no previously-included files found matching 'yarl/*.pyd'
no previously-included directories found matching 'docs/_build'
adding license file 'LICENSE'
adding license file 'NOTICE'
writing manifest file 'yarl.egg-info/SOURCES.txt'
* Building wheel...
running bdist_wheel
running build
running build_py
creating build/lib/yarl
copying yarl/__init__.py -> build/lib/yarl
copying yarl/_helpers.py -> build/lib/yarl
copying yarl/_quoting.py -> build/lib/yarl
copying yarl/_quoting_py.py -> build/lib/yarl
copying yarl/_helpers_py.py -> build/lib/yarl
copying yarl/_url.py -> build/lib/yarl
running egg_info
writing yarl.egg-info/PKG-INFO
writing dependency_links to yarl.egg-info/dependency_links.txt
writing requirements to yarl.egg-info/requires.txt
writing top-level names to yarl.egg-info/top_level.txt
reading manifest file 'yarl.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no previously-included files matching '*.cache' found anywhere in distribution
warning: no previously-included files found matching 'yarl/*.c'
warning: no previously-included files found matching 'yarl/*.html'
warning: no previously-included files found matching 'yarl/*.so'
warning: no previously-included files found matching 'yarl/*.pyd'
no previously-included directories found matching 'docs/_build'
adding license file 'LICENSE'
adding license file 'NOTICE'
writing manifest file 'yarl.egg-info/SOURCES.txt'
copying yarl/_helpers_c.pyi -> build/lib/yarl
copying yarl/_helpers_c.pyx -> build/lib/yarl
copying yarl/_quoting_c.pyi -> build/lib/yarl
copying yarl/_quoting_c.pyx -> build/lib/yarl
copying yarl/py.typed -> build/lib/yarl
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
creating build/bdist.linux-x86_64/wheel
creating build/bdist.linux-x86_64/wheel/yarl
copying build/lib/yarl/__init__.py -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_helpers.py -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_quoting.py -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_quoting_py.py -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_helpers_py.py -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_url.py -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_helpers_c.pyi -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_helpers_c.pyx -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_quoting_c.pyi -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/_quoting_c.pyx -> build/bdist.linux-x86_64/wheel/./yarl
copying build/lib/yarl/py.typed -> build/bdist.linux-x86_64/wheel/./yarl
running install_egg_info
Copying yarl.egg-info to build/bdist.linux-x86_64/wheel/./yarl-1.13.1-py3.10.egg-info
running install_scripts
creating build/bdist.linux-x86_64/wheel/yarl-1.13.1.dist-info/WHEEL
creating '/home/tkloczko/rpmbuild/BUILD/yarl-1.13.1/dist/.tmp-r5kmgsqt/yarl-1.13.1-py3-none-any.whl' and adding 'build/bdist.linux-x86_64/wheel' to it
adding 'yarl/__init__.py'
adding 'yarl/_helpers.py'
adding 'yarl/_helpers_c.pyi'
adding 'yarl/_helpers_c.pyx'
adding 'yarl/_helpers_py.py'
adding 'yarl/_quoting.py'
adding 'yarl/_quoting_c.pyi'
adding 'yarl/_quoting_c.pyx'
adding 'yarl/_quoting_py.py'
adding 'yarl/_url.py'
adding 'yarl/py.typed'
adding 'yarl-1.13.1.dist-info/LICENSE'
adding 'yarl-1.13.1.dist-info/METADATA'
adding 'yarl-1.13.1.dist-info/NOTICE'
adding 'yarl-1.13.1.dist-info/WHEEL'
adding 'yarl-1.13.1.dist-info/top_level.txt'
adding 'yarl-1.13.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Successfully built yarl-1.13.1-py3-none-any.whl

</details>

Python Version

]$ python3 --version
Python 3.10.14

multidict Version

$ python -m pip show multidict
Name: multidict
Version: 6.1.0
Summary: multidict implementation
Home-page: https://github.com/aio-libs/multidict
Author: Andrew Svetlov
Author-email: andrew.svetlov@gmail.com
License: Apache 2
Location: /usr/lib64/python3.10/site-packages
Requires: typing-extensions
Required-by:

yarl Version

1.13.1

OS

Linux x86/64

Additional context

No response

bdraco commented 1 month ago

There doesn't seem to be any interesting changes that might cause this https://github.com/aio-libs/yarl/compare/v1.12.0...v1.13.1

I wonder if a build dep has changed

webknjaz commented 1 month ago

Linux x86/64

This is not helpful. It clearly works in our CI under this platform. Something changed in your environment, maybe setuptools or Cython. Debug that, please. Until then, there's nothing actionable for us. We have to be able to validate this in our CI.

kloczek commented 1 month ago

Did you chr=ech versions of cython and setuptools which are used by your CI and me?

webknjaz commented 1 month ago

That's your responsibility. We have no way of knowing what you got.