Skip to content

Build wheels for free-threading Python (3.15?) #37

@blankjul

Description

@blankjul

Hey,

I have just wanted to build the binaries in pymoo for a new release and ran into the following issue shown below.
(see https://github.com/anyoptimization/pymoo/actions/runs/19623799509/job/56188870983#logs)

Can extend your build to include the new version as well? At least with a quick look at it I think that is the issue here.

+ uv venv /private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/venv-test-arm64 --python /Library/Frameworks/PythonT.framework/Versions/3.14/bin/python3.14t
  Using CPython 3.14.0+freethreaded interpreter at: /Library/Frameworks/PythonT.framework/Versions/3.14/bin/python3.14t
  Creating virtual environment at: /private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/venv-test-arm64
  Activate with: source /private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/venv-test-arm64/bin/activate
  + which python
  /private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/venv-test-arm64/bin/python
  + /Users/runner/hostedtoolcache/uv/0.9.11/aarch64/uv pip install /private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/repaired_wheel/pymoo-0.6.1.6-cp314-cp314t-macosx_11_0_arm64.whl
  Using Python 3.14.0 environment at: /private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/venv-test-arm64
  Resolved 24 packages in 162ms
  Downloading fonttools (2.8MiB)
  Downloading pillow (4.4MiB)
  Downloading scipy (20.4MiB)
  Downloading matplotlib (7.8MiB)
     Building moocore==0.1.9
   Downloaded pillow
   Downloaded fonttools
   Downloaded matplotlib
   Downloaded scipy
    × Failed to build `moocore==0.1.9`
    ├─▶ The build backend returned an error
    ╰─▶ Call to `setuptools.build_meta.build_wheel` failed (exit status: 1)
  
        [stdout]
        Ignoring py_limited_api=True for free-threaded build.
        running bdist_wheel
  
        [stderr]
        /Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/config/pyprojecttoml.py:72:
        _ExperimentalConfiguration: `[tool.distutils]` in `pyproject.toml` is
        still *experimental* and likely to change in future releases.
          config = read_configuration(filepath, True, ignore_option_errors,
        dist)
        Traceback (most recent call last):
          File "<string>", line 11, in <module>
            wheel_filename =
        backend.build_wheel("/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmpperhId",
        {}, None)
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/build_meta.py",
        line 432, in build_wheel
            return _build(['bdist_wheel'])
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/build_meta.py",
        line 423, in _build
            return self._build_with_temp_dir(
                   ~~~~~~~~~~~~~~~~~~~~~~~~~^
                cmd,
                ^^^^
            ...<3 lines>...
                self._arbitrary_args(config_settings),
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
            )
            ^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/build_meta.py",
        line 404, in _build_with_temp_dir
            self.run_setup()
            ~~~~~~~~~~~~~~^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/build_meta.py",
        line 317, in run_setup
            exec(code, locals())
            ~~~~^^^^^^^^^^^^^^^^
          File "<string>", line 4, in <module>
            sys.path.pop(0)
            ~~~~~~~~~~~~^^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/__init__.py",
        line 115, in setup
            return distutils.core.setup(**attrs)
                   ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/_distutils/core.py",
        line 186, in setup
            return run_commands(dist)
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/_distutils/core.py",
        line 202, in run_commands
            dist.run_commands()
            ~~~~~~~~~~~~~~~~~^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/_distutils/dist.py",
        line 1002, in run_commands
            self.run_command(cmd)
            ~~~~~~~~~~~~~~~~^^^^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/dist.py",
        line 1102, in run_command
            super().run_command(command)
            ~~~~~~~~~~~~~~~~~~~^^^^^^^^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/_distutils/dist.py",
        line 1020, in run_command
            cmd_obj.ensure_finalized()
            ~~~~~~~~~~~~~~~~~~~~~~~~^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/_distutils/cmd.py",
        line 135, in ensure_finalized
            self.finalize_options()
            ~~~~~~~~~~~~~~~~~~~~~^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/command/bdist_wheel.py",
        line 250, in finalize_options
            self._validate_py_limited_api()
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
          File
        "/Users/runner/work/_temp/setup-uv-cache/builds-v0/.tmp9nqxn6/lib/python3.14t/site-packages/setuptools/command/bdist_wheel.py",
        line 285, in _validate_py_limited_api
            raise ValueError(
            ...<4 lines>...
            )
        ValueError: `py_limited_api='cp310'` not supported. `Py_LIMITED_API`
        is currently incompatible with `Py_GIL_DISABLED`. See
        https://github.com/python/cpython/issues/111506.
  
        hint: This usually indicates a problem with the package or the build
        environment.
    help: `moocore` (v0.1.9) was included because `pymoo` (v0.6.1.6) depends
          on `moocore`
                                                              ✕ 2.46s
Error: cibuildwheel: Command ['/Users/runner/hostedtoolcache/uv/0.9.11/aarch64/uv', 'pip', 'install', '/private/var/folders/6c/pzd640_546q6_yfn24r65c_40000gn/T/cibw-run-0n992_zu/cp314t-macosx_arm64/repaired_wheel/pymoo-0.6.1.6-cp314-cp314t-macosx_11_0_arm64.whl'] failed with code 1. 

Error: Process completed with exit code 1.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions