[PATCH] setup: use setuptools on Windows (issue5400)

Matt Harbison mharbison72 at gmail.com
Wed May 3 21:09:28 EDT 2017


On Wed, 03 May 2017 20:12:39 -0400, Pierre-Yves David  
<pierre-yves.david at ens-lyon.org> wrote:

> On 04/09/2017 02:30 AM, Matt Harbison wrote:
>> On Thu, 09 Mar 2017 23:06:34 -0500, Gregory Szorc
>> <gregory.szorc at gmail.com> wrote:
>>
>>> # HG changeset patch
>>> # User Gregory Szorc <gregory.szorc at gmail.com>
>>> # Date 1489118392 28800
>>> #      Thu Mar 09 19:59:52 2017 -0800
>>> # Node ID b51f9adb41e68d9f3d88582f044d2742ae29ce09
>>> # Parent  cd29673cebdbe2d998009322e4c3657389d6aed0
>>> setup: use setuptools on Windows (issue5400)
>>>
>>> We've had a long, complicated history with setuptools. We want to
>>> make it the universal default. But when we do, it breaks things.
>>>
>>> `python setup.py build` is broken on Windows today. Forcing
>>> the use of setuptools via FORCE_SETUPTOOLS=1 unbreaks things.
>>>
>>> Since the previous bustage with making setuptools the default
>>> was on !Windows, it seems safe to move ahead with the setuptools
>>> transition on Windows. So this patch does that.
>>
>> I'm not sure why, or what we should do about it, but test-hghave.t fails
>> with this on Windows.  I can get a similar failure on Linux with
>> FORCE_SETUPTOOLS=1.  Is this an expected diff with setuptools (and
>> deserving a '(glob) (?)'?
>
> It seems like your setuptools version/config installs '.egg'. That is  
> awful since '.egg' is one of the worse things that happened to python  
> packaging (their implementation is awful, has performance issue and  
> break multiple basic assumption about python install/import).
>
> I though the time were setuptools were intalling '.egg' were over. I  
> wonder why your version installed '.eggs', is it some global  
> configuration? Is it an older version? Am I wrong when I think '.egg'  
> are no longer the default?
>
> In all cases, I don't know if Mercurial setup tools can make sure it is  
> never installed as an 'egg'. Maybe redefining the egg related commands  
> in setup.py to abort ?
>
> Cheers,
>

I've got python 2.7.13 installed.  `pip install --upgrade setuptools`  
bumped it from 28.8.0 -> 35.0.2, but no joy.  I deleted the contents of  
'mercurial.egg-info'.  `make clean && make local` doesn't repopulate the  
egg directory, but running the test does, and it fails again.

I can't believe that there's a global config in play on my system because  
I know nothing about setuptools, and Mercurial is the only python thing I  
work with.


More information about the Mercurial-devel mailing list