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

Augie Fackler raf at durin42.com
Thu Apr 27 12:58:08 EDT 2017


On Thu, Apr 27, 2017 at 12:53 PM, Boris Feld <boris.feld at octobus.net> wrote:
>
>
> 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:
> https://zerobin.net/?c0f906fb42d32d41#E6Z0KcJnJp26GkJKfYKiDR2SKi2KLJ6xNdwsKgKn/uE=
>
> I'm not sure how much tests we can do to validate the wheels.

The only other things I can think of that we should test are:

1) Does `hg help` seem to work?
2) Does an extension work (maybe try children since it's a trivial extension?)
3) Do localizations seem to work?


More information about the Mercurial-devel mailing list