Merge branch 'master' into henryiii-patch-3
diff --git a/.github/workflows/tests-cibw.yml b/.github/workflows/tests-cibw.yml
index 5dfb5dc..ef495a8 100644
--- a/.github/workflows/tests-cibw.yml
+++ b/.github/workflows/tests-cibw.yml
@@ -27,7 +27,7 @@
         PYODIDE_BUILD_EXPORTS: whole_archive
       with:
         package-dir: tests
-        only: cp312-pyodide_wasm32
+        only: cp313-pyodide_wasm32
 
   build-ios:
     name: iOS wheel ${{ matrix.runs-on }}
@@ -48,7 +48,6 @@
     - uses: pypa/cibuildwheel@v3.3
       env:
         CIBW_PLATFORM: ios
-        CIBW_SKIP: cp314-*  # https://github.com/pypa/cibuildwheel/issues/2494
       with:
         package-dir: tests
 
diff --git a/tests/pyproject.toml b/tests/pyproject.toml
index 8821ea3..503f602 100644
--- a/tests/pyproject.toml
+++ b/tests/pyproject.toml
@@ -9,12 +9,10 @@
 [project]
 name = "pybind11_tests"
 version = "0.0.1"
-dependencies = ["pytest", "pytest-timeout"]
-
-
-[dependency-groups]
-numpy = ["numpy"]
-scipy = ["scipy"]
+dependencies = [
+  "pytest",
+  "pytest-timeout",
+]
 
 
 [tool.scikit-build]
@@ -30,11 +28,8 @@
 test-command = "python -m pytest -v -o timeout=120 -p no:cacheprovider tests"
 # Pyodide doesn't have signal.setitimer, so pytest-timeout can't work with timeout > 0
 pyodide.test-command = "python -m pytest -v -o timeout=0 -p no:cacheprovider tests"
-environment.PIP_ONLY_BINARY = "numpy"
+environment.PIP_ONLY_BINARY = "numpy,scipy"
 environment.PIP_PREFER_BINARY = "1"
-
 android.environment.ANDROID_API_LEVEL = "24"  # Needed to include libc++ in the wheel.
-pyodide.test-groups = ["numpy", "scipy"]
-ios.test-groups = ["numpy"]
 ios.xbuild-tools = ["cmake", "ninja"]
-ios.environment.PIP_EXTRA_INDEX_URL = "https://pypi.anaconda.org/beeware/simple"
+pyodide.test-requires = ["numpy", "scipy"]