[PATCH] hgwatchman: new experimental extension

Gregory Szorc gregory.szorc at gmail.com
Tue Mar 1 15:27:10 EST 2016



> On Mar 1, 2016, at 10:35, Augie Fackler <raf at durin42.com> wrote:
> 
>> On Tue, Mar 01, 2016 at 04:14:36PM +0000, Martijn Pieters wrote:
>>> On 1 March 2016 at 15:58, Yuya Nishihara <yuya at tcha.org> wrote:
>>> Isn't it a library?
>>> 
>>> https://pypi.python.org/pypi/pywatchman
>>> 
>>> IIRC, last time we discussed about bundling "re2", we decided not to.
>> 
>> Golly, I didn't even know it was distributed separately on PyPI. I
>> still would prefer bundling this inside the extension though;
>> batteries included and all that. Otherwise you need to ask end users
>> to install 2 pieces of software rather than one, where watchman is a
>> binary and doesn't require knowledge of how Python package installs
>> work.
> 
> If we're going to bundle it, we should probably bundle it in exactly
> one place and also bundle it for core hg so that ignore gets faster.
> 
> Probably worth having a "mercurial.thirdparty" namespace so it's easy
> for distros to split out the vendored libraries.

Agreed. 

Regarding re2, I believe a major difference with it is a run-time or build-time dependency on a shared/static library (libre2). AFAIK pywatchman is a self-contained Python package with no such dependencies. Although looking at its source, I may be very wrong here. What we want to avoid is DLL hell and introducing new build dependencies.


More information about the Mercurial-devel mailing list