ahawker / ulid

Universally Unique Lexicographically Sortable Identifier (ULID) in Python 3
Apache License 2.0
695 stars 42 forks source link

Include the LICENSE in sdists #335

Closed stefanor closed 5 years ago

stefanor commented 5 years ago

It is required for a bdist_wheel, and it is useful to be able to do this from an sdist. pip does this to cache wheels.

Without this, from an sdist, I get:

$ python3 setup.py bdist_wheel
Warning: 'classifiers' should be a list, got type 'tuple'
running bdist_wheel
The [wheel] section is deprecated. Use [bdist_wheel] instead.
running build
running build_py
creating build/lib
creating build/lib/ulid
copying ulid/__init__.py -> build/lib/ulid
copying ulid/api.py -> build/lib/ulid
copying ulid/base32.py -> build/lib/ulid
copying ulid/hints.py -> build/lib/ulid
copying ulid/ulid.py -> build/lib/ulid
installing to build/bdist.linux-x86_64/wheel
running install
running install_lib
running install_egg_info
running egg_info
writing ulid_py.egg-info/PKG-INFO
writing dependency_links to ulid_py.egg-info/dependency_links.txt
writing top-level names to ulid_py.egg-info/top_level.txt
reading manifest file 'ulid_py.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'LICENSE'
writing manifest file 'ulid_py.egg-info/SOURCES.txt'
removing 'build/bdist.linux-x86_64/wheel/ulid_py-0.0.9.egg-info' (and everything under it)
Copying ulid_py.egg-info to build/bdist.linux-x86_64/wheel/ulid_py-0.0.9.egg-info
running install_scripts
error: [Errno 2] No such file or directory: 'LICENSE'
codecov[bot] commented 5 years ago

Codecov Report

Merging #335 into master will not change coverage. The diff coverage is n/a.

Impacted file tree graph

@@          Coverage Diff          @@
##           master   #335   +/-   ##
=====================================
  Coverage     100%   100%           
=====================================
  Files           5      5           
  Lines         293    293           
  Branches       69     69           
=====================================
  Hits          293    293

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update a30aaeb...f22af56. Read the comment docs.

ahawker commented 5 years ago

@stefanor

Which version of python are you using? I cannot reproduce this using 3.5.0 or 3.6.0.

stefanor commented 5 years ago

I can't reproduce the issue, building the sdist with Python 3, either. But I'm guessing you built your sdist on 2.7?

To reproduce this:

cd /tmp
wget https://files.pythonhosted.org/packages/0f/cc/2923ab4d5fa0203d7e5be54e9f434133b457984c49ced32aa80768c2e3d0/ulid-py-0.0.9.tar.gz
# Create a virtualenv
python3 -m venv ve
# Install wheel, so pip will attempt to build and cache a wheel
ve/bin/python -m pip install wheel
ve/bin/python -m pip install ulid-py-0.0.9.tar.gz

:boom:

$ ve/bin/python -m pip install ulid-py-0.0.9.tar.gz 
Processing ./ulid-py-0.0.9.tar.gz
Building wheels for collected packages: ulid-py
  Running setup.py bdist_wheel for ulid-py ... error
  Complete output from command /tmp/ve/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-req-build-1hz0hcs2/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/pip-wheel-7lfw4k30 --python-tag cp37:
  Warning: 'classifiers' should be a list, got type 'tuple'
  running bdist_wheel
  The [wheel] section is deprecated. Use [bdist_wheel] instead.
  running build
  running build_py
  creating build
  creating build/lib
  creating build/lib/ulid
  copying ulid/api.py -> build/lib/ulid
  copying ulid/__init__.py -> build/lib/ulid
  copying ulid/hints.py -> build/lib/ulid
  copying ulid/ulid.py -> build/lib/ulid
  copying ulid/base32.py -> build/lib/ulid
  installing to build/bdist.linux-x86_64/wheel
  running install
  running install_lib
  creating build/bdist.linux-x86_64
  creating build/bdist.linux-x86_64/wheel
  creating build/bdist.linux-x86_64/wheel/ulid
  copying build/lib/ulid/api.py -> build/bdist.linux-x86_64/wheel/ulid
  copying build/lib/ulid/__init__.py -> build/bdist.linux-x86_64/wheel/ulid
  copying build/lib/ulid/hints.py -> build/bdist.linux-x86_64/wheel/ulid
  copying build/lib/ulid/ulid.py -> build/bdist.linux-x86_64/wheel/ulid
  copying build/lib/ulid/base32.py -> build/bdist.linux-x86_64/wheel/ulid
  running install_egg_info
  running egg_info
  writing ulid_py.egg-info/PKG-INFO
  writing dependency_links to ulid_py.egg-info/dependency_links.txt
  writing top-level names to ulid_py.egg-info/top_level.txt
  reading manifest file 'ulid_py.egg-info/SOURCES.txt'
  writing manifest file 'ulid_py.egg-info/SOURCES.txt'
  Copying ulid_py.egg-info to build/bdist.linux-x86_64/wheel/ulid_py-0.0.9.egg-info
  running install_scripts
  error: [Errno 2] No such file or directory: 'LICENSE'

  ----------------------------------------
  Failed building wheel for ulid-py
  Running setup.py clean for ulid-py
Failed to build ulid-py
Installing collected packages: ulid-py
  Running setup.py install for ulid-py ... done
Successfully installed ulid-py-0.0.9
ahawker commented 5 years ago

My apologies that took so long. No excuse but I remember reading this PR, testing it locally, finding the issue after your response and then for some reason not merging then.

Anyways...almost a year later :(

I very much appreciate the PR! Thank you @stefanor