[PATCH STABLE] packaging: add make target for linux wheels

Boris Feld boris.feld at octobus.net
Thu Apr 27 12:53:54 EDT 2017

On 27/04/2017 16:17, Augie Fackler wrote:
> On Wed, Apr 26, 2017 at 07:01:37PM +0200, Boris Feld wrote:
>> # HG changeset patch
>> # User Boris Feld <boris.feld at octobus.net>
>> # Date 1493131801 -7200
>> #      Tue Apr 25 16:50:01 2017 +0200
>> # Branch stable
>> # Node ID 9605a99df098d4e6e3b0943982a21fea6a9421f9
>> # Parent  6e0368b6e0bb2aa5210daec091c0200583553a78
>> packaging: add make target for linux wheels
>> Having linux wheels is going to helps system without compiler or python-dev
>> plus speed up the installation for everyone.
>> I followed the manylinux example repository
>> https://github.com/pypa/python-manylinux-demo
>> to add a make target (build-linux-wheels) using
>> official docker image to build python 2 linux wheels
>> for mercurial. It generates Python 2.6 and Python 2.7 for both
>> 32 and 64 bits architectures.
>> I had to blacklist several test cases for various reasons:
>> * test-http-bad-server.t, readline(65537) was transformed in readline(-1)
> This is already fixed, so just rebasing your patch should resolve this one. :)
It works after rebas, thx.
>> * test-convert-git.t and test-subrepo-git.t because of the git version
>> * test-patchbomb-tls.t because of warning using tls 1.0
>>    It's likely because the docker image is based on centos 5.0 and
>>    openssl is outdated.
> These two make total sense.
>> * test-clonebundles.t and test-http-proxy.t because of the following
>>    output line that changed:
>>    -  error fetching bundle: (.* refused.*|Protocol not supported) (re)
>>    +  error fetching bundle: Cannot assign requested address
> Sigh. Can you send us a patch that adds the extra case the regex match
> for docker? There's no reason these tests shouldn't pass there.
> I'd gladly take this for 4.2 and try to add building of linux wheels
> to our release discipline, assuming they work correctly. How much did
> you test the wheels by hand once installed?
I fixed both tests in the v2 version of my patch.

For testing the generated wheels, they are first installed in the docker 
container after building and tests are runner with the version installed 
from the wheel. I've also tried to install the wheel locally in a fresh 
python 2.7 virtualenv and cloned this repository without bugs. Finally, 
I've installed the wheel in a "Python:2.7" docker container and clone 
the same repository, the output is here: 

I'm not sure how much tests we can do to validate the wheels.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mercurial-scm.org/pipermail/mercurial-devel/attachments/20170427/72355d9c/attachment.html>

More information about the Mercurial-devel mailing list