darshan-hpc / darshan

Darshan I/O characterization tool
Other
56 stars 27 forks source link

CI: failure in runtime job with h5py #895

Closed tylerjereddy closed 1 year ago

tylerjereddy commented 1 year ago

Example CI failure in gh-894 for the runtime job to build h5py from source with MPI support: https://github.com/darshan-hpc/darshan/actions/runs/4078783404/jobs/7029407901

Snippet of the error is below. Since h5py release went up on PyPI on January 23/2023, it may be worth a temporary pin to circumvent for now...

Collecting h5py
  Downloading h5py-3.8.0.tar.gz (400 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 400.8/400.8 kB 6.5 MB/s eta 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 'done'
  Installing backend dependencies: started
  Installing backend dependencies: finished with status 'error'
  error: subprocess-exited-with-error

  × pip subprocess to install backend dependencies did not run successfully.
  │ exit code: 1
  ╰─> [26 lines of output]
      DEPRECATION: --no-binary currently disables reading from the cache of locally built wheels. In the future --no-binary will not influence the wheel cache. pip 23.1 will enforce this behaviour change. A possible replacement is to use the --no-cache-dir option. You can use the flag --use-feature=no-binary-enable-wheel-cache to test the upcoming behaviour. Discussion can be found at https://github.com/pypa/pip/issues/11453
      Collecting wheel
        Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
      Collecting mpi4py==3.1.0
        Downloading mpi4py-3.1.0.tar.gz (2.4 MB)
           ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.4/2.4 MB 25.0 MB/s eta 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

        × Getting requirements to build wheel did not run successfully.
        │ exit code: 1
        ╰─> [1 lines of output]
            error in mpi4py setup command: 'python_requires' must be a string containing valid version specifiers; Invalid specifier: '!=3.4.*''
            [end of output]
tylerjereddy commented 1 year ago

If that doesn't work, it is probably pip that needs to be pinned, since the complaint is about mpi4py in the end, and a new pip version was uploaded to PyPI even more recently.

tylerjereddy commented 1 year ago

Here is the upstream issue in h5py: https://github.com/h5py/h5py/issues/2222

tacaswell commented 1 year ago

The problem is setuptools not pip.

Unless you specifically need to make a redistributable wheel, it is probably safe to use --no-build-isolation and make sure you have pre-installed mpi4py.

tylerjereddy commented 1 year ago

sounds good, I'll try that

tylerjereddy commented 1 year ago

This was circumvented by gh-896 -- let's close this since whatever issues we see will likely be different the next time we bump up versions in this CI job.