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

Augie Fackler raf at durin42.com
Fri Apr 28 11:43:08 EDT 2017


On Fri, Apr 28, 2017 at 11:36 AM, lothiraldan <boris.feld at octobus.net> wrote:
> On 28/04/2017 16:51, Augie Fackler wrote:
>>
>> On Thu, Apr 27, 2017 at 06:49:50PM +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 d49b79b313989b62482da8e560fafa3373ae90b5
>>> # Parent  52cca17ac523b490acdab259e794e7c2898efeda
>>> packaging: add make target for linux wheels
>>
>> In general very good - I've got a few questions throughout the patch,
>> but we're very close to something I can land.
>>
>>> diff -r 52cca17ac523 -r d49b79b31398 Makefile
>>> --- a/Makefile  Mon Apr 24 14:38:30 2017 -0400
>>> +++ b/Makefile  Tue Apr 25 16:50:01 2017 +0200
>>> @@ -270,6 +270,14 @@
>>>        mkdir -p packages/centos7
>>>        contrib/dockerrpm centos7
>>>
>>> +linux-wheels: linux-wheels-x86_64 linux-wheels-i686
>>> +
>>> +linux-wheels-x86_64:
>>> +       docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`:/src
>>> quay.io/pypa/manylinux1_x86_64 /src/contrib/build-linux-wheels.sh
>>> +
>>> +linux-wheels-i686:
>>> +       docker run -e "HGTEST_JOBS=$(shell nproc)" --rm -ti -v `pwd`:/src
>>> quay.io/pypa/manylinux1_i686 linux32 /src/contrib/build-linux-wheels.sh
>>
>> In my attempts to test this, I had to explicitly use bash
>> /src/contrib/build-linux-wheels.sh - does that make any sense?
>
> I'm not sure to understand why you mean? Did you had to add bash before the
> script name in the Makefile ? Or when you wanted to test by hand?

I had to add it in the Makefile.

>
> What is your version of docker? You can find out with 'docker --version'.

Docker version 1.7.1, build 786b29d

but if adding bash to the command line also works for you that'd be my
preference, since it works on more systems (this is the docker you get
from Ubuntu 14.04)

>>
>>
>>> +
>>>   .PHONY: help all local build doc cleanbutpackages clean install
>>> install-bin \
>>>        install-doc install-home install-home-bin install-home-doc \
>>>        dist dist-notests check tests check-code update-pot \
>>> @@ -278,4 +286,5 @@
>>>        docker-ubuntu-xenial docker-ubuntu-xenial-ppa \
>>>        docker-ubuntu-yakkety docker-ubuntu-yakkety-ppa \
>>>        fedora20 docker-fedora20 fedora21 docker-fedora21 \
>>> -       centos5 docker-centos5 centos6 docker-centos6 centos7
>>> docker-centos7
>>> +       centos5 docker-centos5 centos6 docker-centos6 centos7
>>> docker-centos7 \
>>> +       linux-wheels
>>
>> Should the linux-wheels-{x86_64,i686} targets be in phony as well?
>
> I don't have a strong opinion, I'm not sure if people will want to launch
> only one of them.
>
>>
>>> diff -r 52cca17ac523 -r d49b79b31398 contrib/build-linux-wheels.sh
>>> --- /dev/null   Thu Jan 01 00:00:00 1970 +0000
>>> +++ b/contrib/build-linux-wheels.sh     Tue Apr 25 16:50:01 2017 +0200
>>
>> (script looks fine)
>>
>>> diff -r 52cca17ac523 -r d49b79b31398
>>> contrib/linux-wheel-centos5-blacklist
>>> --- /dev/null   Thu Jan 01 00:00:00 1970 +0000
>>> +++ b/contrib/linux-wheel-centos5-blacklist     Tue Apr 25 16:50:01 2017
>>> +0200
>>> @@ -0,0 +1,3 @@
>>> +test-convert-git.t
>>> +test-subrepo-git.t
>>> +test-patchbomb-tls.t
>>> diff -r 52cca17ac523 -r d49b79b31398 tests/test-clonebundles.t
>>> --- a/tests/test-clonebundles.t Mon Apr 24 14:38:30 2017 -0400
>>> +++ b/tests/test-clonebundles.t Tue Apr 25 16:50:01 2017 +0200
>>> @@ -61,7 +61,7 @@
>>>     $ echo "http://localhost:$HGPORT1/bundle.hg" >
>>> server/.hg/clonebundles.manifest
>>>     $ hg clone http://localhost:$HGPORT server-not-runner
>>>     applying clone bundle from http://localhost:$HGPORT1/bundle.hg
>>> -  error fetching bundle: (.* refused.*|Protocol not supported) (re)
>>> +  error fetching bundle: (.* refused.*|Protocol not supported|Cannot
>>> assign requested address) (re)
>>>     abort: error applying bundle
>>>     (if this error persists, consider contacting the server operator or
>>> disable clone bundles via "--config ui.clonebundles=false")
>>>     [255]
>>> diff -r 52cca17ac523 -r d49b79b31398 tests/test-http-proxy.t
>>> --- a/tests/test-http-proxy.t   Mon Apr 24 14:38:30 2017 -0400
>>> +++ b/tests/test-http-proxy.t   Tue Apr 25 16:50:01 2017 +0200
>>> @@ -87,7 +87,7 @@
>>>   misconfigured hosts)
>>>
>>>     $ http_proxy=localhost:$HGPORT2 hg clone --config
>>> http_proxy.always=True http://localhost:$HGPORT/ f
>>> -  abort: error: (Connection refused|Protocol not supported|.* actively
>>> refused it) (re)
>>> +  abort: error: (Connection refused|Protocol not supported|.* actively
>>> refused it|Cannot assign requested address) (re)
>>>     [255]
>>>
>>>   do not use the proxy if it is in the no list
>>
>> I've split these two test changes into their own commit, with this
>> message (but still your name):
>> """
>> tests: fix two http tests to also pass inside manylinux1 docker
>>
>> This will let us build Linux wheels.
>> """
>>
>> Do you mind if I push that?
>
> Not at all! Thank you for doing it, I should have done it myself.
>>
>>
>>> diff -r 52cca17ac523 -r d49b79b31398 tests/test-http-bad-server.t
>>> --- a/tests/test-http-bad-server.t      Mon Apr 24 14:38:30 2017 -0400
>>> +++ b/tests/test-http-bad-server.t      Tue Apr 25 16:50:01 2017 +0200
>>> @@ -36,6 +36,7 @@
>>>     $ hg clone http://localhost:$HGPORT/ clone
>>>     abort: error: Connection reset by peer (no-windows !)
>>>     abort: error: An existing connection was forcibly closed by the
>>> remote host (windows !)
>>> +  (?)
>>
>> Can you elaborate here on what this change is about? It looks very weird.
>
> I randomly get a "abort: error: Cannot assign requested address" and I tried
> to get rid of it with "(?)" without luck for now.

Hm, that's odd.

>>
>>
>>>     [255]
>>>
>>>   (The server exits on its own, but there is a race between that and
>>> starting a new server.
>>> @@ -223,7 +224,7 @@
>>>     readline(92 from -1) -> (41) content-type:
>>> application/mercurial-0.1\r\n
>>>     readline(51 from -1) -> (19) vary: X-HgProto-1\r\n
>>>     readline(32 from -1) -> (19) x-hgargs-post: 28\r\n
>>> -  readline(13 from -1) -> (13) x-hgproto-1:
>>> +  readline(13 from -1) -> (13) x-hgproto-1:
>>
>> did you mean to remove this trailing whitespace?
>
> No, it's a mistake.
>>
>>
>>>     read limit reached; closing socket
>>>     readline\(315 from (-1|65537)\) -> \(27\) POST /\?cmd=batch
>>> HTTP/1.1\\r\\n (re)
>>>     readline(288 from -1) -> (27) Accept-Encoding: identity\r\n
>>> diff -r 52cca17ac523 -r d49b79b31398 tests/test-worker.t
>>> --- a/tests/test-worker.t       Mon Apr 24 14:38:30 2017 -0400
>>> +++ b/tests/test-worker.t       Tue Apr 25 16:50:01 2017 +0200
>>> @@ -78,6 +78,7 @@
>>>     > test 100000.0 abort
>>>     start
>>>     abort: known exception
>>> +  (?)
>>
>> Same question as the other place this happens.
>
> Same problem, I randomly get the "abort: error: Cannot assign requested
> address" message.
>
>>
>>>     [255]
>>>
>>>     $ hg --config "extensions.t=$abspath" --config 'worker.numcpus=2' \
>>> _______________________________________________
>>> Mercurial-devel mailing list
>>> Mercurial-devel at mercurial-scm.org
>>> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
>


More information about the Mercurial-devel mailing list