Skip to content

[2.x] Update virtualenv URLs to avoid blob URLs#2775

Merged
joerick merged 8 commits into2.xfrom
2.x-avoid-blob-urls
Mar 16, 2026
Merged

[2.x] Update virtualenv URLs to avoid blob URLs#2775
joerick merged 8 commits into2.xfrom
2.x-avoid-blob-urls

Conversation

@joerick
Copy link
Contributor

@joerick joerick commented Mar 12, 2026

It looks like a few people are hitting the HTTP 429 for old versions of cibuildwheel. These hosted versions of virtualenv should work, let's see. If it's easy to change to this, I'm willing to do a 2.x patch for those packaging for older versions of Python.

joerick added 2 commits March 12, 2026 22:06
It looks like many people are hitting the HTTP 429 for old versions of cibuildwheel. These hosted versions of virtualenv should work, let's see...
@henryiii
Copy link
Contributor

henryiii commented Mar 13, 2026

CI's going to be pretty broken. I can probably get copilot to figure out what parts of the 3.x CI updates to apply to the 2.x branch, seems like something it would be good at. Edit: not great, it wanted to update the deprecated cibuildwheel settings in the CI too. But I just added the parts that made sense, and went from there.

Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
Signed-off-by: Henry Schreiner <henryschreineriii@gmail.com>
@henryiii henryiii force-pushed the 2.x-avoid-blob-urls branch from 15c34dc to 0fb00ee Compare March 13, 2026 17:57
@henryiii
Copy link
Contributor

@agriyakhetarpal pyodide is reporting "no such command "build"", do you know why it might be doing that? Maybe a version isn't pinned somewhere?

@joerick
Copy link
Contributor Author

joerick commented Mar 14, 2026

Thanks for working on this!

That failure is test_dependency_constraints_file, so I guess it's unpinning pyodide-build, causing an incompatibility. Probably that test isn't suitable in this context.

btw: I'd be happy to merge this as-is, there don't appear to be any regressions and virtualenv looks like it's working!

Copy link
Contributor

@henryiii henryiii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, as is is fine.

@agriyakhetarpal
Copy link
Member

Yes, multiple versions of pyodide-build are being downloaded during dependency resolution, which ultimately settles on pyodide_build==0.19.1. This is too old to be compatible with the newer pyodide-cli==0.5.0. Full logs from running locally:

Installing build tools...

+ pip install --upgrade auditwheel-emscripten 'build[virtualenv]' pyodide-build -c '/private/var/folders/b3/2bq1m1_50bs4c7305j8vxcqr0000gn/T/pytest-of-agriyakhetarpal/pytest-53/popen-gw9/test_dependency_constraints_fi0/constraints file.txt'
Collecting auditwheel-emscripten
  Downloading auditwheel_emscripten-0.2.3-py3-none-any.whl (32 kB)
Collecting build[virtualenv]
  Downloading build-1.4.0-py3-none-any.whl (24 kB)
Collecting pyodide-build
  Downloading pyodide_build-0.33.0-py3-none-any.whl (121 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 121.3/121.3 kB 474.0 kB/s eta 0:00:00
Collecting leb128 (from auditwheel-emscripten)
  Downloading leb128-1.0.9-py2.py3-none-any.whl (3.7 kB)
Collecting packaging (from auditwheel-emscripten)
  Downloading packaging-26.0-py3-none-any.whl (74 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 74.4/74.4 kB 1.3 MB/s eta 0:00:00
Collecting pyodide-cli>=0.4 (from auditwheel-emscripten)
  Downloading pyodide_cli-0.5.0-py3-none-any.whl (12 kB)
Collecting wheel (from auditwheel-emscripten)
  Downloading wheel-0.46.3-py3-none-any.whl (30 kB)
Collecting pyproject_hooks (from build[virtualenv])
  Downloading pyproject_hooks-1.2.0-py3-none-any.whl (10 kB)
Collecting virtualenv>=20.17 (from build[virtualenv])
  Downloading virtualenv-21.2.0-py3-none-any.whl (5.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.8/5.8 MB 5.0 MB/s eta 0:00:00
INFO: pip is looking at multiple versions of pyodide-build to determine which version is compatible with other requirements. This could take a while.
Collecting pyodide-build
  Downloading pyodide_build-0.32.1-py3-none-any.whl (119 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 119.9/119.9 kB 8.8 MB/s eta 0:00:00
  Downloading pyodide_build-0.32.0-py3-none-any.whl (119 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 119.0/119.0 kB 6.5 MB/s eta 0:00:00
  Downloading pyodide_build-0.31.2-py3-none-any.whl (118 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.1/118.1 kB 6.5 MB/s eta 0:00:00
  Downloading pyodide_build-0.31.1-py3-none-any.whl (117 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 5.3 MB/s eta 0:00:00
  Downloading pyodide_build-0.31.0-py3-none-any.whl (117 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 117.6/117.6 kB 4.4 MB/s eta 0:00:00
  Downloading pyodide_build-0.30.9-py3-none-any.whl (115 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 115.4/115.4 kB 4.2 MB/s eta 0:00:00
  Downloading pyodide_build-0.30.8-py3-none-any.whl (113 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 113.5/113.5 kB 2.4 MB/s eta 0:00:00
INFO: pip is looking at multiple versions of pyodide-build to determine which version is compatible with other requirements. This could take a while.
  Downloading pyodide_build-0.30.7-py3-none-any.whl (112 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.2/112.2 kB 5.2 MB/s eta 0:00:00
  Downloading pyodide_build-0.30.6-py3-none-any.whl (112 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 112.2/112.2 kB 1.9 MB/s eta 0:00:00
Collecting auditwheel-emscripten
  Downloading auditwheel_emscripten-0.1.0-py3-none-any.whl (32 kB)
Collecting pyodide-build
  Downloading pyodide_build-0.30.5-py3-none-any.whl (111 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.8/111.8 kB 3.8 MB/s eta 0:00:00
  Downloading pyodide_build-0.30.4-py3-none-any.whl (111 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.8/111.8 kB 2.8 MB/s eta 0:00:00
  Downloading pyodide_build-0.30.3-py3-none-any.whl (111 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.9/111.9 kB 4.6 MB/s eta 0:00:00
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
  Downloading pyodide_build-0.30.2-py3-none-any.whl (111 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 111.8/111.8 kB 2.0 MB/s eta 0:00:00
  Downloading pyodide_build-0.30.0-py3-none-any.whl (110 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 110.8/110.8 kB 840.1 kB/s eta 0:00:00
  Downloading pyodide_build-0.29.3-py3-none-any.whl (101 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.4/101.4 kB 2.5 MB/s eta 0:00:00
Collecting auditwheel-emscripten
  Downloading auditwheel_emscripten-0.0.16-py3-none-any.whl (31 kB)
Collecting pyodide-build
  Downloading pyodide_build-0.29.2-py3-none-any.whl (98 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.5/98.5 kB 2.7 MB/s eta 0:00:00
  Downloading pyodide_build-0.29.1-py3-none-any.whl (98 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.4/98.4 kB 1.6 MB/s eta 0:00:00
  Downloading pyodide_build-0.29.0-py3-none-any.whl (97 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.6/97.6 kB 1.7 MB/s eta 0:00:00
  Downloading pyodide_build-0.28.0-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.1/96.1 kB 1.1 MB/s eta 0:00:00
  Downloading pyodide_build-0.27.3-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.1/96.1 kB 4.1 MB/s eta 0:00:00
  Downloading pyodide_build-0.27.2-py3-none-any.whl (100 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.0/101.0 kB 3.4 MB/s eta 0:00:00
  Downloading pyodide_build-0.27.1-py3-none-any.whl (97 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.0/98.0 kB 2.5 MB/s eta 0:00:00
  Downloading pyodide_build-0.27.0-py3-none-any.whl (97 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.2/97.2 kB 2.2 MB/s eta 0:00:00
  Downloading pyodide_build-0.26.4-py3-none-any.whl (92 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.6/92.6 kB 4.1 MB/s eta 0:00:00
  Downloading pyodide_build-0.26.3-py3-none-any.whl (92 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.6/92.6 kB 2.2 MB/s eta 0:00:00
  Downloading pyodide_build-0.26.2-py3-none-any.whl (92 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 92.6/92.6 kB 2.3 MB/s eta 0:00:00
  Downloading pyodide_build-0.26.1-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.9/96.9 kB 2.3 MB/s eta 0:00:00
  Downloading pyodide_build-0.26.0-py3-none-any.whl (96 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 96.4/96.4 kB 2.5 MB/s eta 0:00:00
  Downloading pyodide_build-0.25.1-py3-none-any.whl (91 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 91.1/91.1 kB 1.5 MB/s eta 0:00:00
Collecting pyyaml (from pyodide-build)
  Downloading pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl (173 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 174.0/174.0 kB 3.1 MB/s eta 0:00:00
Collecting cython<3.0 (from pyodide-build)
  Downloading Cython-0.29.37-py2.py3-none-any.whl (989 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 989.5/989.5 kB 3.0 MB/s eta 0:00:00
Collecting ruamel.yaml (from pyodide-build)
  Downloading ruamel_yaml-0.19.1-py3-none-any.whl (118 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 118.1/118.1 kB 1.1 MB/s eta 0:00:00
Collecting tomli (from pyodide-build)
  Downloading tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl (149 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 149.1/149.1 kB 1.6 MB/s eta 0:00:00
Collecting pyodide-build
  Downloading pyodide_build-0.25.0-py3-none-any.whl (90 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.9/90.9 kB 1.6 MB/s eta 0:00:00
Collecting pydantic<2,>=1.10.2 (from pyodide-build)
  Downloading pydantic-1.10.26-cp312-cp312-macosx_11_0_arm64.whl (2.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 2.4 MB/s eta 0:00:00
Collecting pyodide-build
  Downloading pyodide_build-0.24.1-py3-none-any.whl (85 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.1/85.1 kB 345.6 kB/s eta 0:00:00
  Downloading pyodide_build-0.24.0-py3-none-any.whl (85 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.0/85.0 kB 2.0 MB/s eta 0:00:00
  Downloading pyodide_build-0.23.4-py3-none-any.whl (85 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 85.4/85.4 kB 1.8 MB/s eta 0:00:00
  Downloading pyodide_build-0.23.3-py3-none-any.whl (84 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.8/84.8 kB 1.8 MB/s eta 0:00:00
  Downloading pyodide_build-0.23.2-py3-none-any.whl (84 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.1/84.1 kB 2.0 MB/s eta 0:00:00
  Downloading pyodide_build-0.23.1-py3-none-any.whl (84 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 84.0/84.0 kB 1.2 MB/s eta 0:00:00
  Downloading pyodide_build-0.23.0-py3-none-any.whl (83 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 83.9/83.9 kB 2.3 MB/s eta 0:00:00
  Downloading pyodide_build-0.22.1-py3-none-any.whl (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.8/60.8 kB 1.4 MB/s eta 0:00:00
  Downloading pyodide_build-0.22.0-py3-none-any.whl (60 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 2.0 MB/s eta 0:00:00
  Downloading pyodide_build-0.21.0-py3-none-any.whl (45 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.9/45.9 kB 1.7 MB/s eta 0:00:00
  Downloading pyodide_build-0.19.1-py3-none-any.whl (33 kB)
Collecting click (from pyodide-cli>=0.4->auditwheel-emscripten)
  Downloading click-8.3.1-py3-none-any.whl (108 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 108.3/108.3 kB 2.4 MB/s eta 0:00:00
Collecting rich (from pyodide-cli>=0.4->auditwheel-emscripten)
  Downloading rich-14.3.3-py3-none-any.whl (310 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 310.5/310.5 kB 2.1 MB/s eta 0:00:00
Collecting distlib<1,>=0.3.7 (from virtualenv>=20.17->build[virtualenv])
  Downloading distlib-0.4.0-py2.py3-none-any.whl (469 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 469.0/469.0 kB 2.0 MB/s eta 0:00:00
Collecting filelock<4,>=3.24.2 (from virtualenv>=20.17->build[virtualenv])
  Downloading filelock-3.25.2-py3-none-any.whl (26 kB)
Collecting platformdirs<5,>=3.9.1 (from virtualenv>=20.17->build[virtualenv])
  Downloading platformdirs-4.9.4-py3-none-any.whl (21 kB)
Collecting python-discovery>=1 (from virtualenv>=20.17->build[virtualenv])
  Downloading python_discovery-1.1.3-py3-none-any.whl (31 kB)
Collecting markdown-it-py>=2.2.0 (from rich->pyodide-cli>=0.4->auditwheel-emscripten)
  Downloading markdown_it_py-4.0.0-py3-none-any.whl (87 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.3/87.3 kB 1.9 MB/s eta 0:00:00
Collecting pygments<3.0.0,>=2.13.0 (from rich->pyodide-cli>=0.4->auditwheel-emscripten)
  Downloading pygments-2.19.2-py3-none-any.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 2.2 MB/s eta 0:00:00
Collecting mdurl~=0.1 (from markdown-it-py>=2.2.0->rich->pyodide-cli>=0.4->auditwheel-emscripten)
  Downloading mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Installing collected packages: leb128, distlib, pyyaml, pyproject_hooks, pygments, platformdirs, packaging, mdurl, filelock, cython, click, wheel, python-discovery, pyodide-build, markdown-it-py, build, virtualenv, rich, pyodide-cli, auditwheel-emscripten
Successfully installed auditwheel-emscripten-0.2.3 build-1.4.0 click-8.3.1 cython-0.29.37 distlib-0.4.0 filelock-3.25.2 leb128-1.0.9 markdown-it-py-4.0.0 mdurl-0.1.2 packaging-26.0 platformdirs-4.9.4 pygments-2.19.2 pyodide-build-0.19.1 pyodide-cli-0.5.0 pyproject_hooks-1.2.0 python-discovery-1.1.3 pyyaml-6.0.3 rich-14.3.3 virtualenv-21.2.0 wheel-0.46.3

                                                                      ✓ 34.12s
Installing Emscripten version: 3.1.58 ...


                                                                       ✓ 0.00s
Installing Pyodide xbuildenv version: 0.27.0 ...

+ python -m pip freeze --all

                                                                       ✓ 0.29s
Building wheel...

+ pyodide build /private/var/folders/b3/2bq1m1_50bs4c7305j8vxcqr0000gn/T/pytest-of-agriyakhetarpal/pytest-53/popen-gw9/test_dependency_constraints_fi0/project --outdir=/private/var/folders/b3/2bq1m1_50bs4c7305j8vxcqr0000gn/T/cibw-run-7bshphet/cp312-pyodide_wasm32/built_wheel
----------------------------------------------------------------------------------- Captured stderr call ------------------------------------------------------------------------------------
Warning: free-threaded-support and prerelease-pythons should be specified by enable instead

Usage: pyodide [OPTIONS] COMMAND [ARGS]...
Try 'pyodide --help' for help.

Error: No such command 'build'.
Traceback (most recent call last):
  File "<frozen runpy>", line 198, in _run_module_as_main
  File "<frozen runpy>", line 88, in _run_code
  File "/Users/agriyakhetarpal/Desktop/agriya-cibuildwheel/cibuildwheel/__main__.py", line 430, in <module>
    main()
    ~~~~^^
  File "/Users/agriyakhetarpal/Desktop/agriya-cibuildwheel/cibuildwheel/__main__.py", line 49, in main
    main_inner(global_options)
    ~~~~~~~~~~^^^^^^^^^^^^^^^^
  File "/Users/agriyakhetarpal/Desktop/agriya-cibuildwheel/cibuildwheel/__main__.py", line 184, in main_inner
    build_in_directory(args)
    ~~~~~~~~~~~~~~~~~~^^^^^^
  File "/Users/agriyakhetarpal/Desktop/agriya-cibuildwheel/cibuildwheel/__main__.py", line 351, in build_in_directory
    platform_module.build(options, tmp_path)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^
  File "/Users/agriyakhetarpal/Desktop/agriya-cibuildwheel/cibuildwheel/pyodide.py", line 297, in build
    call(
    ~~~~^
        "pyodide",
        ^^^^^^^^^^
    ...<4 lines>...
        env=build_env,
        ^^^^^^^^^^^^^^
    )
    ^
  File "/Users/agriyakhetarpal/Desktop/agriya-cibuildwheel/cibuildwheel/util.py", line 154, in call
    result = subprocess.run(
        args_,
    ...<5 lines>...
        text=capture_stdout,
    )
  File "/Users/agriyakhetarpal/Library/Application Support/uv/python/cpython-3.14.2-macos-aarch64-none/lib/python3.14/subprocess.py", line 577, in run
    raise CalledProcessError(retcode, process.args,
                             output=stdout, stderr=stderr)
subprocess.CalledProcessError: Command '['/private/var/folders/b3/2bq1m1_50bs4c7305j8vxcqr0000gn/T/cibw-run-7bshphet/cp312-pyodide_wasm32/build/venv/bin/pyodide', 'build', '/private/var/folders/b3/2bq1m1_50bs4c7305j8vxcqr0000gn/T/pytest-of-agriyakhetarpal/pytest-53/popen-gw9/test_dependency_constraints_fi0/project', '--outdir=/private/var/folders/b3/2bq1m1_50bs4c7305j8vxcqr0000gn/T/cibw-run-7bshphet/cp312-pyodide_wasm32/built_wheel']' returned non-zero exit status 2.

@agriyakhetarpal
Copy link
Member

agriyakhetarpal commented Mar 16, 2026

I did

echo "pip==23.1.2
delocate==0.10.3" > constraints_file.txt

and

uv pip install --upgrade auditwheel-emscripten 'build[virtualenv]' pyodide-build \
  -c constraints_file.txt \
  --dry-run \
  -v 2>&1 | grep -i "because\|constraint\|conflict\|pip"

gives us

DEBUG Recording unit propagation conflict of pyodide-build from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.32.1 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.32.0 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.31.2 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.31.1 from incompatibility of (pyodide-build, build)
DEBUG Package pyodide-build has too many conflicts (affected), prioritizing
DEBUG Package build has too many conflicts (culprit), deprioritizing and backtracking
DEBUG Recording unit propagation conflict of pyodide-build from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.31.0 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.30.9 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.30.8 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.30.7 from incompatibility of (pyodide-build, build)
DEBUG Recording dependency conflict of pyodide-build==0.30.6 from incompatibility of (pyodide-build, auditwheel-emscripten)
DEBUG Recording dependency conflict of pyodide-build==0.30.5 from incompatibility of (pyodide-build, auditwheel-emscripten)
DEBUG Recording dependency conflict of pyodide-build==0.30.4 from incompatibility of (pyodide-build, auditwheel-emscripten)
DEBUG Recording dependency conflict of pyodide-build==0.30.3 from incompatibility of (pyodide-build, auditwheel-emscripten)
DEBUG Recording dependency conflict of pyodide-build==0.30.2 from incompatibility of (pyodide-build, auditwheel-emscripten)
DEBUG Package auditwheel-emscripten has too many conflicts (culprit), deprioritizing and backtracking
  Requested: Registry { specifier: VersionSpecifiers([VersionSpecifier { operator: Equal, version: "1.2.2.post1" }]), index: Some(IndexMetadata { url: Pypi(VerbatimUrl { url: DisplaySafeUrl { scheme: "https", cannot_be_a_base: false, username: "", password: None, host: Some(Domain("pypi.org")), port: None, path: "/simple", query: None, fragment: None }, given: None }), format: Simple }), conflict: None }

and since pyodide-build requires build~=1.2.0 and thus <1.3, and we also require virtualenv as a direct dependency (see https://github.com/pyodide/pyodide-build/blob/2dd2157f2e6728435909c6847e6bd97511c22491/pyproject.toml#L16-L30), let's perhaps remove "build[virtualenv]" below and let pyodide-build manage its own constraints?

log.step("Installing build tools...")
call(
"pip",
"install",
"--upgrade",
"auditwheel-emscripten",
"build[virtualenv]",
"pyodide-build",
*dependency_constraint_flags,
env=env,
)

Removing this makes the test pass, since the extensive backtracking doesn't occur.

If y'all don't mind, I'll push a change here and I'll create a separate PR for the main branch for this.

@joerick
Copy link
Contributor Author

joerick commented Mar 16, 2026

Thanks @agriyakhetarpal ! makes sense to me

@joerick joerick merged commit ff9508a into 2.x Mar 16, 2026
24 of 25 checks passed
@joerick joerick deleted the 2.x-avoid-blob-urls branch March 16, 2026 19:24
AlexanderWells-diamond added a commit to DiamondLightSource/pythonSoftIOC that referenced this pull request Mar 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants