juju / charm-tools

Tools for charm authors and maintainers
Other
42 stars 64 forks source link

version 3.0.4 (PyPi) fails building octavia due to setuptools 67+ being very strict on PEP 440 #652

Closed ajkavanagh closed 1 year ago

ajkavanagh commented 1 year ago

Checklist

What version am I running?

I'm using 3.0.4 from PyPi inside charmcraft.

I am using: Ubuntu 22.04

Versions of relevant modules within charm-build run:

:: charmtools.build.tactics: Packages in buildvenv:                                                                                                                                                                    
:: Package    Version                                                                                                                                                                                                  
:: ---------- -------                                                                                                                                                                                                  
:: pip        23.0.1                                                                                                                                                                                                   
:: setuptools 67.4.0                                                                                                                                                                                                   
:: wheel      0.38.4 

Issue/Feature

Charm build fails with:

:: Collecting kombu==5.2.4                                                                                                                                                                                             
::   Downloading kombu-5.2.4.tar.gz (423 kB)                                                                                                                                                                           
::      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 423.4/423.4 kB 4.2 MB/s eta 0:00:00                                                                                                                                    
::   Preparing metadata (setup.py): started                                                                                                                                                                            
::   Preparing metadata (setup.py): finished with status 'error'                                                                                                                                                       
::   error: subprocess-exited-with-error                                                                                                                                                                               
::                                                                                                                                                                                                                     
::   × python setup.py egg_info did not run successfully.                                                                                                                                                              
::   │ exit code: 1                                                                                                                                                                                                    
::   ╰─> [5 lines of output]                                                                                                                                                                                           
::       /root/snap/charmcraft/common/tmp7pqi369d/lib/python3.10/site-packages/setuptools/config/setupcfg.py:520: SetuptoolsDeprecationWarning: The license_file parameter is deprecated, use license_files instead.   
::         warnings.warn(msg, warning_class)                                                                                                                                                                           
::       error in kombu setup command: 'tests_require' must be a string or list of strings containing valid project/version requirement specifiers; Expected end or semicolon (after name and no valid version specifier)                                                                                                                                                                                                                      
::           pytz>dev                                                                                                                                                                                                  
::               ^                                                                                                                                                                                                     
::       [end of output]

Apparenty, pytz>dev is not a valid PEP440 requirements string. It would need to be pytz>0.dev.0. Anyway, I can't change that package as it is buried many dependencies down.

setuptools >= 67 seems to have become very strict. I think, but will test, that setuptools < 67 will still work with non PEP440 valid requirement lines.

Possible fix

The possible fixes are to just pin setuptools < 67 for the moment, or to provide an option to allow the pip requirement to be passed as an option. I'll investigate both those issues.

ajkavanagh commented 1 year ago

Closed by #653