redis/hiredis-py

v0.3.0 release missing vendor/ directory

lamby opened this issue · 8 comments

lamby commented

The v0.3.0 release tarball is missing the vendor/ directory so this does not build, alas.

$ wget https://files.pythonhosted.org/packages/b3/e2/4a8ba6d00966e017b884c909aa826d42573b1d613e8813a78eb1af11512f/hiredis-0.3.0.tar.gz
$ tar xf hiredis-0.3.0.tar.gz
$ tree hiredis-0.3.0/vendor/
hiredis-0.3.0/vendor/
└── hiredis
    ├── COPYING
    ├── async.c
    ├── async.h
    ├── dict.c
    ├── dict.h
    ├── fmacros.h
    ├── hiredis.c
    ├── hiredis.h
    ├── net.c
    ├── net.h
    ├── read.c
    ├── read.h
    ├── sds.c
    ├── sds.h
    ├── test.c
    └── win32.h

1 directory, 16 files
$ sha256sum hiredis-0.3.0.tar.gz 
0c8cff472d579434c667e4c8243efe1a7f598b1f616f08d12c06770f8e4171c0  hiredis-0.3.0.tar.gz

I checked and hiredis-0.3.0.tar.gz did contain vendor directory.
Where did you download hiredis-0.3.0.tar.gz from? And what's the checksum?

lamby commented

From Github's releases page:

$ wget --quiet https://github.com/redis/hiredis-py/archive/v0.3.0.tar.gz

$ tar xf v0.3.0.tar.gz                                                  

$ tree hiredis-py-0.3.0
hiredis-py-0.3.0
├── appveyor
│   └── run_with_env.cmd
├── appveyor.yml
├── benchmark
│   ├── benchmark.py
│   ├── lrange
│   └── simple
├── CHANGELOG.md
├── COPYING
├── hiredis
│   ├── __init__.py
│   └── version.py
├── MANIFEST.in
├── README.md
├── setup.cfg
├── setup.py
├── src
│   ├── hiredis.c
│   ├── hiredis.h
│   ├── reader.c
│   └── reader.h
├── test
│   ├── __init__.py
│   └── reader.py
├── test.py
└── vendor
    └── hiredis

7 directories, 20 files

$ sha256sum v0.3.0.tar.gz 
92e7374f44875751ba972078bf1b6cd9ec90a2d2e713ddc7c458452c180e04f4  v0.3.0.tar.gz

:)

It seems the archive from github releases only includes source files from this repo itself, but not inludes those source files from git submodules. It's better to git clone --recursive and then switch to a specific tag.

lamby commented

Indeed. I'd use the PyPi downloads (this is for Debian packaging btw) but these are missing the test/ directory. Rock and a hard place, huh? ;)

I have no knowledge about Debian packaging.
Can Debian packaging cope with this situation like git clone --recursive and then git checkout a specific tag, or add hiredis-py as a git submodule?
However, if it's necessary, I can make a new release and include test files.

lamby commented

Debian packaging requires a single source tarball; we can't access the internet during build etc to get submodules. I could roll a custom tarball myself but it is always best to use "upstream's" one. :)

lamby commented

Many thanks; works great!