Skip to content

uv fails to install package with filenames containing commas #14345

Open
@danielhollas

Description

@danielhollas

Summary

uv fails to install our package (not published on PyPI) due to the following RECORD parsing error

$ git clone https://github.com/aiidalab/aiidalab-qe-vibroscopy && cd aiidalab-qe-vibroscopy
$ uv venv -p 3.9
$ uv pip install .
error: RECORD file is invalid
  Caused by: CSV error: record 8 (line: 9, byte: 743): found record with 5 fields, but the previous record has 3 fields

pip succeeds, but it does print a warning message which shows the actual problem

  WARNING: RECORD line has more than three elements: ['aiidalab_qe_vibroscopy/app/guides/0_Phonons', ' thermal properties', ' inelastic neutron scattering.html', 'sha256=kkasTWUWn9znl263j3QCCRJksEfnBw6oh52sNU2gTk8', '10668']
  WARNING: RECORD line has more than three elements: ['aiidalab_qe_vibroscopy/app/guides/1_IR and Raman spectroscopy', ' dielectric properties.html', 'sha256=DHzHi6PGAQpTeSsuT1EkdWxhAfLj9MeIy16PLV_qSMA', '9061']

The problem is that the package contains files with commas in their filenames, and these commas are not properly escaped in the RECORD file.

It's not clear to me if uv's behaviour is wrong here, or if it should be more lenient (as pip?). But in any case, it would be great to improve the error message to show the actual line that fails to parse, otherwise it's quite painful to figure out what the problem is.

I would assume that the RECORD file is produced by build backed (flit_core in this case) so perhaps it should file a bug there as well?

(minor note: editable install works, but I guess that is not surprising)

Platform

Linux 6.11.9-100.fc39.x86_64 x86_64 GNU/Linux

Version

0.7.15

Python version

3.9

Metadata

Metadata

Assignees

No one assigned

    Labels

    compatibilityCompatibility with a specification or another toolerror messagesMessaging when something goes wrong

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions