<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>253421</bug_id>
          
          <creation_ts>2023-03-05 17:40:55 -0800</creation_ts>
          <short_desc>REGRESSION(261097@main) [Win] test-webkitpy: Failed to install pytest-asyncio-0.20.3!</short_desc>
          <delta_ts>2023-03-07 12:56:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1939003</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-03-05 17:40:55 -0800</bug_when>
    <thetext>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 &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 33, in __getattr__
    return next(
           ^^^^^
StopIteration
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 387, in _parse_attr
    return getattr(StaticModule(module_name), attr_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, 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 &quot;C:\Users\ContainerAdministrator\AppData\Local\Temp\pytest_asyncio-8808\pytest-asyncio-0.20.3\setup.py&quot;, line 3, in &lt;module&gt;
    setup()
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\__init__.py&quot;, line 153, in setup
    return distutils.core.setup(**attrs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\_distutils\core.py&quot;, line 121, in setup
    dist.parse_config_files()
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\dist.py&quot;, line 715, in parse_config_files
    parse_configuration(self, self.command_options,
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 157, in parse_configuration
    meta.parse()
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 463, in parse
    section_parser_method(section_options)
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 436, in parse_section
    self[name] = value
    ~~~~^^^^^^
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 220, in __setitem__
    value = parser(value)
            ^^^^^^^^^^^^^
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 552, in _parse_version
    version = self._parse_attr(value, self.package_dir)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\BW\WinCairo-64-bit-Debug-Tests\build\Tools\Scripts\libraries\autoinstalled\python-3-AMD64\setuptools\config.py&quot;, line 390, in _parse_attr
    module = importlib.import_module(module_name)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;C:\tools\python3\Lib\importlib\__init__.py&quot;, line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1206, in _gcd_import
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1178, in _find_and_load
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1149, in _find_and_load_unlocked
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 690, in _load_unlocked
  File &quot;&lt;frozen importlib._bootstrap_external&gt;&quot;, line 940, in exec_module
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 241, in _call_with_frames_removed
  File &quot;C:\Users\ContainerAdministrator\AppData\Local\Temp\pytest_asyncio-8808\pytest-asyncio-0.20.3\pytest_asyncio\__init__.py&quot;, line 3, in &lt;module&gt;
    from .plugin import fixture
  File &quot;C:\Users\ContainerAdministrator\AppData\Local\Temp\pytest_asyncio-8808\pytest-asyncio-0.20.3\pytest_asyncio\plugin.py&quot;, line 27, in &lt;module&gt;
    import pytest
ModuleNotFoundError: No module named &apos;pytest&apos;
Failed to install pytest-asyncio-0.20.3!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939324</commentid>
    <comment_count>1</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-03-06 19:26:52 -0800</bug_when>
    <thetext>There are two problems.
setup.cfg of pytest-asyncio-0.20.3 is using attr for version.

&gt; 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&apos;t installed yet.

&gt; import pytest
https://github.com/pytest-dev/pytest-asyncio/blob/v0.20.3/pytest_asyncio/plugin.py#L27

On Linux, however, setuptools doen&apos;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.

&gt; import setuptools
&gt; print(setuptools.__version__)
&gt; dist = setuptools.Distribution()
&gt; print(dist.metadata.version)

Use WebKit&apos;s autoinstalled setuptools:

&gt; 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 &apos;python test.py&apos;

With Windows Python, it doesn&apos;t know the dist.metadata.version.

&gt; 56.0.0
&gt; None

With Linux Python, it knows the dist.metadata.version.

&gt; 56.0.0
&gt; 0.20.3

I don&apos;t know the reason of this difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939325</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2023-03-06 19:53:17 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/11150</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939530</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-03-07 12:55:56 -0800</bug_when>
    <thetext>Committed 261341@main (8fd5bfebd3eb): &lt;https://commits.webkit.org/261341@main&gt;

Reviewed commits have been landed. Closing PR #11150 and removing active labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1939531</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2023-03-07 12:56:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/106375444&gt;</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>