Description
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