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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions