python / pyperformance

Python Performance Benchmark Suite
http://pyperformance.readthedocs.io/
MIT License
870 stars 175 forks source link

Editable installation isn't working properly #319

Open diegorusso opened 1 year ago

diegorusso commented 1 year ago

If pyperformance is installed as editable pip install -e . from the git repository, it doesn't work when invoked

$ /tmp/tmpdir/prefix/bin/python3 -u -m pyperformance                                        
ERROR: pyperformance should not be run without installing first                                                                         
(consider using the dev.py script)             

The check is done by is_installed() which calls both _is_dev() and _is_devel_install() which are both broken.

The function is_dev() bases the logic on the presence of setup.py which is long gone.

The function _is_devel_install() instead check the presence of pyperformance.egg-link in the site-packages.

In my installation I have:

I'm trying to invoke pyperformance using a dev instance via

python3.12 /work/oss/repos/pyperformance/dev.py compile_all benchmark.conf

and it will fail eventually:

2023-10-19 15:25:52,049: Building wheels for collected packages: pyperformance                                                                                                                                                                                                   
2023-10-19 15:25:52,050:   Building editable for pyperformance (pyproject.toml): started                                                                                                                                                                                         
2023-10-19 15:25:52,885:   Building editable for pyperformance (pyproject.toml): finished with status 'done'                                                                                                                                                                     
2023-10-19 15:25:52,888:   Created wheel for pyperformance: filename=pyperformance-1.0.9-0.editable-py3-none-any.whl size=6710 sha256=159fbc3f13ae47399e04d5f7cdf5e024c3652b2ed91096f8638844238e005c0d                                                                           
2023-10-19 15:25:52,888:   Stored in directory: /tmp/pip-ephem-wheel-cache-ubyuatck/wheels/0d/04/cb/add3bede8e376e8789c834f334f1834467606bde2625d5a4ad                                                                                                                           
2023-10-19 15:25:52,896: Successfully built pyperformance                                                                                                                                                                                                                        
2023-10-19 15:25:52,922: Installing collected packages: psutil, packaging, pyperf, pyperformance                                                                                                                                                                                 
2023-10-19 15:25:53,307: Successfully installed packaging-23.2 psutil-5.9.6 pyperf-2.6.1 pyperformance-1.0.9                                                                                                                                                                     
2023-10-19 15:25:53,437: + /tmp/tmpdir/prefix/bin/python3 -u -m pyperformance venv recreate --venv /tmp/tmpdir/venv --benchmarks '<NONE>'                                                                                                                                        
2023-10-19 15:25:53,514: ERROR: pyperformance should not be run without installing first                                                                                                                                                                                         
2023-10-19 15:25:53,515: (consider using the dev.py script)                                                                                                                                                                                                                      
2023-10-19 15:25:53,523: Command /tmp/tmpdir/prefix/bin/python3 -u -m pyperformance venv recreate --venv /tmp/tmpdir/venv --benchmarks '<NONE>' failed with exit code 1                                                                                                          
2023-10-19 15:25:53,565: Command /work/oss/ENTLLT-6897/venv3.12/bin/python -m pyperformance compile /work/oss/repos/ci-scripts/projects/python/benchmark.conf be5e8a010341c4d2d28ef53a1baed402ee06466e main --no-update --no-tune failed with exit code 11                       
2023-10-19 15:25:53,565: Benchmark exit code: 11                                                                                                                                                                                                                                 
2023-10-19 15:25:53,566: FAILED: main-be5e8a010341c4d2d28ef53a1baed402ee06466e 
diegorusso commented 2 hours ago

This PR fixes the is_dev() function: https://github.com/python/pyperformance/pull/369

diegorusso commented 36 minutes ago

This PR fixes _is_devel_install() function: https://github.com/python/pyperformance/pull/371