Skip to content

Missing cp310 wheels for river 0.23.0 #1728

@yokofly

Description

@yokofly

Versions

river version: 0.23.0
Python version: 3.10
Operating system: linux, ubuntu 22.04 (amd64)

Describe the bug

Hi, we maintain a DBMS project (https://github.com/timeplus-io/proton/) and our CI uses river for Python UDF tests. After the 0.23.0 release, we found that PyPI only provides wheels for Python 3.11 / 3.12 / 3.13 — no cp310 wheels. see https://pypi.org/project/river/0.23.0/#files

On Ubuntu 22.04 (Python 3.10), pip now falls back to building from source, which breaks our CI.

Is dropping Python 3.10 support intentional? If not, could cp310 wheels be restored?

Steps/code to reproduce

docker run -it --rm ubuntu:22.04 sh -c "
  apt-get update &&
  apt-get install -y python3 python3-pip &&
  pip3 install river==0.23.0
"

error:

Building wheels for collected packages: river
  Building wheel for river (pyproject.toml) ... error
  error: subprocess-exited-with-error
  
  × Building wheel for river (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [51 lines of output]
      A setup.py file already exists. Using it.
      Compiling river/drift/adwin_c.pyx because it changed.
      Compiling river/metrics/efficient_rollingrocauc/efficient_rollingrocauc.pyx because it depends on /tmp/pip-build-env-upid0g1f/overlay/local/lib/python3.10/dist-packages/Cython/Includes/libcpp/vector.pxd.
      Compiling river/metrics/expected_mutual_info.pyx because it changed.
      Compiling river/utils/vectordict.pyx because it changed.
      [1/4] Cythonizing river/drift/adwin_c.pyx
      [2/4] Cythonizing river/metrics/expected_mutual_info.pyx
      [3/4] Cythonizing river/utils/vectordict.pyx
      [4/4] Cythonizing river/metrics/efficient_rollingrocauc/efficient_rollingrocauc.pyx
      Traceback (most recent call last):
        File "/tmp/pip-install-bsk1hzmh/river_00c64a2929c941298ae9c07f5498f9f2/setup.py", line 82, in <module>
          setup(**setup_kwargs)
        File "/usr/lib/python3/dist-packages/setuptools/__init__.py", line 153, in setup
          return distutils.core.setup(**attrs)
        File "/usr/lib/python3/dist-packages/setuptools/_distutils/core.py", line 109, in setup
          _setup_distribution = dist = klass(attrs)
        File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 459, in __init__
          _Distribution.__init__(
        File "/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py", line 293, in __init__
          self.finalize_options()
        File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 836, in finalize_options
          for ep in sorted(loaded, key=by_order):
        File "/usr/lib/python3/dist-packages/setuptools/dist.py", line 835, in <lambda>
          loaded = map(lambda e: e.load(), filtered)
        File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2464, in load
          self.require(*args, **kwargs)
        File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2487, in require
          items = working_set.resolve(reqs, env, installer, extras=self.extras)
        File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 782, in resolve
          raise VersionConflict(dist, req).with_context(dependent_req)
      pkg_resources.VersionConflict: (setuptools 59.6.0 (/usr/lib/python3/dist-packages), Requirement.parse('setuptools>=62.4'))
      Traceback (most recent call last):
        File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 363, in <module>
          main()
        File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 345, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
        File "/usr/lib/python3/dist-packages/pip/_vendor/pep517/in_process/_in_process.py", line 261, in build_wheel
          return _build_backend().build_wheel(wheel_directory, config_settings,
        File "/tmp/pip-build-env-upid0g1f/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/api.py", line 58, in build_wheel
          return WheelBuilder.make_in(
        File "/tmp/pip-build-env-upid0g1f/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 95, in make_in
          wb.build(target_dir=directory)
        File "/tmp/pip-build-env-upid0g1f/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 132, in build
          self._build(zip_file)
        File "/tmp/pip-build-env-upid0g1f/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 193, in _build
          self._run_build_command(setup)
        File "/tmp/pip-build-env-upid0g1f/overlay/local/lib/python3.10/dist-packages/poetry/core/masonry/builders/wheel.py", line 288, in _run_build_command
          subprocess.check_call(
        File "/usr/lib/python3.10/subprocess.py", line 369, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['/usr/bin/python3', '/tmp/pip-install-bsk1hzmh/river_00c64a2929c941298ae9c07f5498f9f2/setup.py', 'build', '-b', '/tmp/pip-install-bsk1hzmh/river_00c64a2929c941298ae9c07f5498f9f2/build', '--build-purelib', '/tmp/pip-install-bsk1hzmh/river_00c64a2929c941298ae9c07f5498f9f2/build/lib', '--build-platlib', '/tmp/pip-install-bsk1hzmh/river_00c64a2929c941298ae9c07f5498f9f2/build/lib.linux-x86_64-cpython-310']' returned non-zero exit status 1.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for river
Failed to build river
ERROR: Could not build wheels for river, which is required to install pyproject.toml-based projects
➜  ~ 


Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions