<?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>285315</bug_id>
          
          <creation_ts>2025-01-02 13:10:05 -0800</creation_ts>
          <short_desc>&apos;git-webkit setup&apos; fails with &quot;ValueError: No archives for MarkupSafe-2.1.5 found&quot;</short_desc>
          <delta_ts>2025-01-10 08:41:44 -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>Other</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>
          
          <blocked>281877</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2084546</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2025-01-02 13:10:05 -0800</bug_when>
    <thetext>It seems &apos;git-webkit setup&apos; is broken:

$ git-webkit setup
Traceback (most recent call last):
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/git-webkit&quot;, line 63, in &lt;module&gt;
    sys.exit(program.main(
             ~~~~~~~~~~~~^
        identifier_template=is_webkit_filter(&apos;Canonical link: https://commits.webkit.org/{}&apos;),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ...&lt;2 lines&gt;...
        classifier=is_webkit_filter(classifier()),
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    ))
    ^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/__init__.py&quot;, line 184, in main
    return parsed.main(
           ~~~~~~~~~~~^
        args=parsed,
        ^^^^^^^^^^^^
    ...&lt;5 lines&gt;...
        canonical_svn=canonical_svn,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py&quot;, line 621, in main
    result = cls.git(args, repository, **kwargs)
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py&quot;, line 432, in git
    result += InstallHooks.main(args, repository, hooks=hooks, **kwargs)
              ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/install_hooks.py&quot;, line 230, in main
    from jinja2 import Template
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1360, in _find_and_load
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1322, in _find_and_load_unlocked
  File &quot;&lt;frozen importlib._bootstrap&gt;&quot;, line 1262, in _find_spec
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 697, in find_spec
    loader = cls.find_module(fullname, path=path)
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 711, in find_module
    cls.install(name)
    ~~~~~~~~~~~^^^^^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 684, in install
    return all([to_install.install() for to_install in packages])
                ~~~~~~~~~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 308, in install
    AutoInstall.install(dependency)
    ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 684, in install
    return all([to_install.install() for to_install in packages])
                ~~~~~~~~~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 322, in install
    raise ValueError(&apos;No archives for {}-{} found&apos;.format(self.pypi_name, self.version))
ValueError: No archives for MarkupSafe-2.1.5 found

I&apos;m using python 3.13.0. No clue why it&apos;s not able to find MarkupSafe 2.1.5, which seems to be normally available from PyPi.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2085865</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2025-01-08 11:45:28 -0800</bug_when>
    <thetext>I wish we gave better errors here.

https://pypi.org/project/MarkupSafe/2.1.5/#files shows there&apos;s no wheel for Python 3.13, and we seem to be forcing binary installs:

Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/__init__.py
57:AutoInstall.register(Package(&apos;markupsafe&apos;, Version(2, 1, 5), pypi_name=&apos;MarkupSafe&apos;, wheel=True))

Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
56:AutoInstall.register(Package(&apos;markupsafe&apos;, Version(2, 1, 5), pypi_name=&apos;MarkupSafe&apos;, wheel=True))

Probably just need to bump these for 3.13, but that implies a major version upgrade — try and run the tests, I guess?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2085899</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2025-01-08 15:04:27 -0800</bug_when>
    <thetext>I tried running test-webkitpy but it fails:

Traceback (most recent call last):
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 392, in &lt;module&gt;
    sys.exit(main())
             ~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 115, in main
    return not tester.run()
               ~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 193, in run
    return self._run_tests(names)
           ~~~~~~~~~~~~~~~^^^^^^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 207, in _run_tests
    AutoInstall.install_everything()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 696, in install_everything
    package.install()
    ~~~~~~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 322, in install
    raise ValueError(&apos;No archives for {}-{} found&apos;.format(self.pypi_name, self.version))
ValueError: No archives for hiredis-3 found

which is fixed by upgrading to hiredis-3.1.0, and also specifies wheel=true, so presumably that&apos;s the same problem. Next error:

Traceback (most recent call last):
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 392, in &lt;module&gt;
    sys.exit(main())
             ~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 115, in main
    return not tester.run()
               ~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 193, in run
    return self._run_tests(names)
           ~~~~~~~~~~~~~~~^^^^^^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/test/main.py&quot;, line 207, in _run_tests
    AutoInstall.install_everything()
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 696, in install_everything
    package.install()
    ~~~~~~~~~~~~~~~^^
  File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/libraries/webkitcorepy/webkitcorepy/autoinstall.py&quot;, line 322, in install
    raise ValueError(&apos;No archives for {}-{} found&apos;.format(self.pypi_name, self.version))
ValueError: No archives for lupa-2.2 found

But lupa is already at the latest version and there is just no wheel available. If I remove wheel=true, then our autoinstaller compiles it successfully instead of using the prebuilt wheel, so I guess we should do what works.

The webkitpy test suite fails, though. Several tests raise the following error:

602/2387] webkitpy.layout_tests.controllers.layout_test_finder_legacy_unittest.LayoutTestFinderTests.test_tempdir_relpath failed:              
  Traceback (most recent call last):
    File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/layout_tests/controllers/layout_test_finder_legacy_unittest.py&quot;, line 1585, in test_tempdir_relpath
      with fs.mkdtemp() as path:
           ~~~~~~~~~~^^
    File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/common/system/filesystem.py&quot;, line 213, in __exit__
      self._filesystem.rmtree(self._directory_path)
      ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
    File &quot;/home/mcatanzaro/Projects/WebKit/Tools/Scripts/webkitpy/common/system/filesystem.py&quot;, line 316, in rmtree
      shutil.rmtree(path, ignore_errors=True)
      ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
    File &quot;/usr/lib64/python3.13/shutil.py&quot;, line 763, in rmtree
      _rmtree_safe_fd(stack, onexc)
      ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^
    File &quot;/usr/lib64/python3.13/shutil.py&quot;, line 663, in _rmtree_safe_fd
      assert func is os.lstat
             ^^^^^^^^^^^^^^^^

This looks like a bug in the python standard library.

Then the test suite hangs after executing 2353 out of 2387 tests, but by this point I wasn&apos;t really expecting it to work, so OK. :)

My changes thus far:

diff --git a/Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/__init__.py b/Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/__init__.py
index f172250e7c3f..60d3ad9df042 100644
--- a/Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/__init__.py
+++ b/Tools/Scripts/libraries/webkitflaskpy/webkitflaskpy/__init__.py
@@ -52,11 +52,11 @@ version = Version(0, 7, 1)
 AutoInstall.register(Package(&apos;blinker&apos;, Version(1, 8, 2)))
 AutoInstall.register(Package(&apos;click&apos;, Version(8, 1, 7)))
 AutoInstall.register(Package(&apos;flask&apos;, Version(2, 3, 3)))
-AutoInstall.register(Package(&apos;hiredis&apos;, Version(3, 0, 0), wheel=True))
+AutoInstall.register(Package(&apos;hiredis&apos;, Version(3, 1, 0), wheel=True))
 AutoInstall.register(Package(&apos;itsdangerous&apos;, Version(1, 1, 0)))
-AutoInstall.register(Package(&apos;markupsafe&apos;, Version(2, 1, 5), pypi_name=&apos;MarkupSafe&apos;, wheel=True))
+AutoInstall.register(Package(&apos;markupsafe&apos;, Version(3, 0, 2), pypi_name=&apos;MarkupSafe&apos;, wheel=True))
 AutoInstall.register(Package(&apos;jinja2&apos;, Version(3, 1, 4), implicit_deps=[&apos;markupsafe&apos;]))
-AutoInstall.register(Package(&apos;lupa&apos;, Version(2, 2), wheel=True))
+AutoInstall.register(Package(&apos;lupa&apos;, Version(2, 2)))
 AutoInstall.register(Package(&apos;redis&apos;, Version(3, 5, 3)))
 AutoInstall.register(Package(&apos;sortedcontainers&apos;, Version(2, 4, 0)))
 AutoInstall.register(Package(&apos;werkzeug&apos;, Version(3, 0, 3)))
diff --git a/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py b/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
index fd1dc5abed72..2bb03a2f05f3 100644
--- a/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
+++ b/Tools/Scripts/libraries/webkitscmpy/webkitscmpy/__init__.py
@@ -53,7 +53,7 @@ except ImportError:
 version = Version(7, 0, 0)
 
 AutoInstall.register(Package(&apos;fasteners&apos;, Version(0, 15, 0)))
-AutoInstall.register(Package(&apos;markupsafe&apos;, Version(2, 1, 5), pypi_name=&apos;MarkupSafe&apos;, wheel=True))
+AutoInstall.register(Package(&apos;markupsafe&apos;, Version(3, 0, 2), pypi_name=&apos;MarkupSafe&apos;, wheel=True))
 AutoInstall.register(Package(&apos;jinja2&apos;, Version(3, 1, 4), implicit_deps=[&apos;markupsafe&apos;]))
 AutoInstall.register(Package(&apos;monotonic&apos;, Version(1, 5)))
 AutoInstall.register(Package(&apos;xmltodict&apos;, Version(0, 11, 0)))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2086144</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2025-01-09 10:53:25 -0800</bug_when>
    <thetext>My suggestion would be to exclude reporelaypy, resultsdbpy, and webkitflaskpy from test-webkitpy (in Tools/Scripts/webkitpy/test/main.py); they&apos;re all server-side code and not that relevant in the short-term.

I thought we&apos;d excluded them with some earlier release (3.12?), but I can&apos;t find such a thing in the history.

The failure in rmtree might be fixed by updating pyfakefs, because I think this will have been fixed as a result of https://github.com/pytest-dev/pyfakefs/commit/816d1142e1fb67bbc7526cd8f5f061e00ae8b5b4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2086174</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2025-01-09 13:11:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/142637619&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2086175</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2025-01-09 13:17:58 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/38804</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2086363</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2025-01-10 08:41:42 -0800</bug_when>
    <thetext>Committed 288712@main (bef0ec308c65): &lt;https://commits.webkit.org/288712@main&gt;

Reviewed commits have been landed. Closing PR #38804 and removing active labels.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>