WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
253421
REGRESSION(
261097@main
) [Win] test-webkitpy: Failed to install pytest-asyncio-0.20.3!
https://bugs.webkit.org/show_bug.cgi?id=253421
Summary
REGRESSION(261097@main) [Win] test-webkitpy: Failed to install pytest-asyncio...
Fujii Hironori
Reported
2023-03-05 17:40:55 PST
REGRESSION(
261097@main
) [Win] test-webkitpy: Failed to install pytest-asyncio-0.20.3! After fleshing out the container image, WinCairo tester is failing to install pytest-asyncio-0.20.3
https://build.webkit.org/#/builders/727/builds/10707
Downloading pytest-asyncio-0.20.3... Installing pytest-asyncio-0.20.3... Traceback (most recent call last): File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 33, in __getattr__ return next( ^^^^^ StopIteration The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 387, in _parse_attr return getattr(StaticModule(module_name), attr_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 41, in __getattr__ raise AttributeError( AttributeError: pytest_asyncio has no attribute __version__ During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\ContainerAdministrator\AppData\Local\Temp\pytest_asyncio-8808\pytest-asyncio-0.20.3\setup.py", line 3, in <module> setup() File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\__init__.py", line 153, in setup return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\_distutils\core.py", line 121, in setup dist.parse_config_files() File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\dist.py", line 715, in parse_config_files parse_configuration(self, self.command_options, File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 157, in parse_configuration meta.parse() File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 463, in parse section_parser_method(section_options) File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 436, in parse_section self[name] = value ~~~~^^^^^^ File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 220, in __setitem__ value = parser(value) ^^^^^^^^^^^^^ File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 552, in _parse_version version = self._parse_attr(value, self.package_dir) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py", line 390, in _parse_attr module = importlib.import_module(module_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\tools\python3\Lib\importlib\__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1206, in _gcd_import File "<frozen importlib._bootstrap>", line 1178, in _find_and_load File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "C:\Users\ContainerAdministrator\AppData\Local\Temp\pytest_asyncio-8808\pytest-asyncio-0.20.3\pytest_asyncio\__init__.py", line 3, in <module> from .plugin import fixture File "C:\Users\ContainerAdministrator\AppData\Local\Temp\pytest_asyncio-8808\pytest-asyncio-0.20.3\pytest_asyncio\plugin.py", line 27, in <module> import pytest ModuleNotFoundError: No module named 'pytest' Failed to install pytest-asyncio-0.20.3!
Attachments
Add attachment
proposed patch, testcase, etc.
Fujii Hironori
Comment 1
2023-03-06 19:26:52 PST
There are two problems. setup.cfg of pytest-asyncio-0.20.3 is using attr for version.
> version = attr: pytest_asyncio.__version__
https://github.com/pytest-dev/pytest-asyncio/blob/v0.20.3/setup.cfg#L3
So, setuptools tries to load pytest_asyncio. It imports pytest. But, it fails to load pytest because pytest isn't installed yet.
> import pytest
https://github.com/pytest-dev/pytest-asyncio/blob/v0.20.3/pytest_asyncio/plugin.py#L27
On Linux, however, setuptools doen't try to load pytest_asyncio because it already knows version.
https://github.com/pypa/setuptools/blob/v56.0.0/setuptools/config.py#L213-L214
This is a test program.
> import setuptools > print(setuptools.__version__) > dist = setuptools.Distribution() > print(dist.metadata.version)
Use WebKit's autoinstalled setuptools:
> export PYTHONPATH=/webkit/Tools/Scripts/libraries/autoinstalled/python-3-x86_64
Unpack pytest-asyncio-0.20.3.tar.gz, and place the test program in the top directory that has setup.cfg. And, invoke 'python test.py' With Windows Python, it doesn't know the dist.metadata.version.
> 56.0.0 > None
With Linux Python, it knows the dist.metadata.version.
> 56.0.0 > 0.20.3
I don't know the reason of this difference.
Fujii Hironori
Comment 2
2023-03-06 19:53:17 PST
Pull request:
https://github.com/WebKit/WebKit/pull/11150
EWS
Comment 3
2023-03-07 12:55:56 PST
Committed
261341@main
(8fd5bfebd3eb): <
https://commits.webkit.org/261341@main
> Reviewed commits have been landed. Closing PR #11150 and removing active labels.
Radar WebKit Bug Importer
Comment 4
2023-03-07 12:56:16 PST
<
rdar://problem/106375444
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug