zestsoftware / zest.releaser

Python software releasing made easy and repeatable
https://zestreleaser.readthedocs.io
GNU General Public License v2.0
198 stars 62 forks source link

TypeError: expected string or buffer, when releasing package #283

Closed mauritsvanrees closed 6 years ago

mauritsvanrees commented 6 years ago

I just tried to release zest.releaser 6.15.0 and it failed:

Upload to pypi (Y/n)? 
Traceback (most recent call last):
  File "/Users/maurits/tools/bin/fullrelease", line 34, in <module>
    sys.exit(zest.releaser.fullrelease.main())
  File "/Users/maurits/tools/src/zest.releaser/zest/releaser/fullrelease.py", line 27, in main
    releaser.run()
  File "/Users/maurits/tools/src/zest.releaser/zest/releaser/baserelease.py", line 391, in run
    self.execute()
  File "/Users/maurits/tools/src/zest.releaser/zest/releaser/release.py", line 76, in execute
    self._release()
  File "/Users/maurits/tools/src/zest.releaser/zest/releaser/release.py", line 325, in _release
    self._upload_distributions(package)
  File "/Users/maurits/tools/src/zest.releaser/zest/releaser/release.py", line 175, in _upload_distributions
    self._retry_twine('upload', server, filename)
  File "/Users/maurits/tools/src/zest.releaser/zest/releaser/release.py", line 193, in _retry_twine
    package_file = PackageFile.from_filename(filename, comment=None)
  File "/Users/maurits/shared-eggs/cp27m/twine-1.10.0-py2.7.egg/twine/package.py", line 106, in from_filename
    return cls(filename, comment, meta, py_version, dtype)
  File "/Users/maurits/shared-eggs/cp27m/twine-1.10.0-py2.7.egg/twine/package.py", line 59, in __init__
    self.safe_name = pkg_resources.safe_name(metadata.name)
  File "/usr/local/lib/python2.7/site-packages/pkg_resources/__init__.py", line 1314, in safe_name
    return re.sub('[^A-Za-z0-9.]+', '-', name)
  File "/usr/local/Cellar/python@2/2.7.15/Frameworks/Python.framework/Versions/2.7/lib/python2.7/re.py", line 155, in sub
    return _compile(pattern, flags).sub(repl, string, count)
TypeError: expected string or buffer

I am investigating.

mauritsvanrees commented 6 years ago

twine creates some wheel metadata from a filename, and this metadata has a name None. Solution: use twine 1.11.0 or later, which supports Metadata 2.1 (PEP 566), and pkginfo 1.4.2 or later.