tahoe-lafs / pycryptopp

Python bindings to the Crypto++ library
https://tahoe-lafs.org/trac/pycryptopp
Other
49 stars 32 forks source link

A couple scripts for wheel building. #37

Closed exarkun closed 7 years ago

exarkun commented 7 years ago

Fixes https://tahoe-lafs.org/trac/pycryptopp/ticket/106

This doesn't integrate with CI at all because travis wants AWS credentials so it can upload build artifacts to S3 and at the moment I don't have any such credentials to supply. It seems like it might not be unreasonable to merely have the release engineer run this script as part of the release process.

I can look into CI more if that's particularly desired, though.

exarkun commented 7 years ago

After merging, wheels for the last release could be generated now with:

git checkout pycryptopp-0.7.1
git checkout origin/master -- misc/build_helpers/_build-wheels.sh misc/build_helpers/build-manylinux-wheels.sh
misc/build_helpers/build-manylinux-wheels.sh

And uploaded to PyPI.

david415 commented 7 years ago

cool! this looks good.

having the release manager build the wheel files with a script sounds fine. having a remote SPOF like travis do it does not sounds so good. having both local and remote SPOFs do it and then compare hashes sounds even better ;-p

exarkun commented 7 years ago

looks good but does this mean the release engineer must use docker?

The Docker images being used are based on very old Linux distributions so that the libraries that get linked against are very old. The compatibility guarantees you get from these builds is that the wheels will work on a system that has versions of the libraries linked against at least as new as the ones in the build environment. Technically it's possible to do a similar build without Docker but it involves getting very old libraries into your build environment somehow. That's a lot more work. So, sad as a Docker dependency is, it's probably the least bad way.

warner commented 7 years ago

looks good, merging