openeo-python-client icon indicating copy to clipboard operation
openeo-python-client copied to clipboard

Run GA unittest workflow against python 3.14 too

Open soxofaan opened this issue 7 months ago • 3 comments

like #653 but for python 3.14 (latest currently: 3.14.0rc2)

soxofaan avatar Aug 19 '25 16:08 soxofaan

added "3.14-dev" to test matrix, but installation of dependencies fails on netCDF4 for which there are no pre-built wheels yet I guess

Collecting netCDF4>=1.7.0 (from openeo==0.44.0a1)
  Downloading netcdf4-1.7.2.tar.gz (835 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 835.1/835.1 kB 106.2 MB/s  0:00:00
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'error'
  error: subprocess-exited-with-error

soxofaan avatar Aug 19 '25 17:08 soxofaan

now that python 3.14 was release, I changed the build matrix entry to "3.14", but that fails on install of pyogrio dependency of geopandas:

Collecting pyogrio>=0.7.2 (from geopandas>=0.14->openeo==0.46.0a1)
  Downloading pyogrio-0.11.1.tar.gz (287 kB)
  Installing build dependencies: started
  Installing build dependencies: finished with status 'done'
  Getting requirements to build wheel: started
  Getting requirements to build wheel: finished with status 'done'
  Preparing metadata (pyproject.toml): started
  Preparing metadata (pyproject.toml): finished with status 'error'
  error: subprocess-exited-with-error
  
  × Preparing metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [40 lines of output]
      Traceback (most recent call last):
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
          main()
          ~~~~^^
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
          json_out["return_val"] = hook(**hook_input["kwargs"])
                                   ~~~~^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 175, in prepare_metadata_for_build_wheel
          return hook(metadata_directory, config_settings)
        File "/tmp/pip-build-env-1pnluo97/overlay/lib/python3.14/site-packages/setuptools/build_meta.py", line 374, in prepare_metadata_for_build_wheel
          self.run_setup()
          ~~~~~~~~~~~~~~^^
        File "/tmp/pip-build-env-1pnluo97/overlay/lib/python3.14/site-packages/setuptools/build_meta.py", line 317, in run_setup
          exec(code, locals())
          ~~~~^^^^^^^^^^^^^^^^
        File "<string>", line 154, in <module>
        File "<string>", line 129, in get_gdal_config
        File "<string>", line 85, in get_gdal_config
        File "<string>", line 39, in read_response
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/subprocess.py", line 472, in check_output
          return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
                 ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                     **kwargs).stdout
                     ^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/subprocess.py", line 554, in run
          with Popen(*popenargs, **kwargs) as process:
               ~~~~~^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/subprocess.py", line 1038, in __init__
          self._execute_child(args, executable, preexec_fn, close_fds,
          ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                              pass_fds, cwd, env,
                              ^^^^^^^^^^^^^^^^^^^
          ...<5 lines>...
                              gid, gids, uid, umask,
                              ^^^^^^^^^^^^^^^^^^^^^^
                              start_new_session, process_group)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/opt/hostedtoolcache/Python/3.14.0/x64/lib/python3.14/subprocess.py", line 1970, in _execute_child
          raise child_exception_type(errno_num, err_msg, err_filename)
      FileNotFoundError: [Errno 2] No such file or directory: 'gdal-config'
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed

soxofaan avatar Oct 14 '25 06:10 soxofaan

easiest solution is to wait for python 3.14 wheels of pyogrio:

  • https://github.com/geopandas/pyogrio/issues/560

soxofaan avatar Oct 14 '25 06:10 soxofaan