• Kirill Smelkov's avatar
    ZEO: Fix ZEO4-wc2 installation, take2 · f276d26f
    Kirill Smelkov authored
    I already fixed ZEO4-wc2 installation once in 97832d95 (ZEO: Fix
    ZEO4-wc2 installation). That worked but, as it turned out, not fully:
    Even though correct ZEO4-wc2-repository is cloned, and correct ZEO4-wc2
    develop-egg is installed, we don't tell buildout which egg-version of
    ZEO to use. This leads to the situation when buildout picks up _latest_
    ZEO egg, when another egg, which depends on ZEO, is installed.
    
    For example wendelin.core/test-zodb4-wc2 was failing as
    
        Updating ZEO4-wc2-repository.
        Installing ZEO4-wc2.
        warning: no previously-included files matching '*.pyc' found anywhere in distribution
        Installing ZEO.
        Installing zodbtools.
        While:
          Installing zodbtools.
          Base installation request: 'zodbtools'
            Requirement of zodbtools==0.0.0.dev8: dateparser
            Requirement of zodbtools==0.0.0.dev8: six
            Requirement of zodbtools==0.0.0.dev8: pygolang>=0.0.0.dev6
            Requirement of zodbtools==0.0.0.dev8: zope.interface
            Requirement of zodbtools==0.0.0.dev8: zodburi
            Requirement of zodbtools==0.0.0.dev8: ZODB
            Requirement of dateparser: tzlocal
            Requirement of dateparser: regex!=2019.02.19
            Requirement of dateparser: pytz
            Requirement of dateparser: python-dateutil
            Requirement of pygolang>=0.0.0.dev6: Importing
            Requirement of pygolang>=0.0.0.dev6: decorator
            Requirement of pygolang>=0.0.0.dev6: six
            Requirement of pygolang>=0.0.0.dev6: gevent
            Requirement of zope.interface: setuptools
            Requirement of zodburi: ZEO
            Requirement of zodburi: ZConfig
            Requirement of zodburi: ZODB
            Requirement of ZODB: zodbpickle>=0.6.0
            Requirement of ZODB: zope.interface
            Requirement of ZODB: zc.lockfile
            Requirement of ZODB: six
            Requirement of ZODB: transaction>=1.5.0
            Requirement of ZODB: ZConfig
            Requirement of ZODB: BTrees>=4.2.0
            Requirement of ZODB: persistent>=4.2.0
            Requirement of tzlocal: pytz
            Requirement of python-dateutil: six>=1.5
            Requirement of gevent: greenlet>=0.4.17
            Requirement of gevent: setuptools
            Requirement of gevent: zope.interface
            Requirement of gevent: zope.event
            Requirement of ZEO: trollius
            Requirement of ZEO: futures
            Requirement of ZEO: zope.interface
            Requirement of ZEO: zdaemon
            Requirement of ZEO: ZConfig
            Requirement of ZEO: zc.lockfile
            Requirement of ZEO: persistent>=4.1.0
            Requirement of ZEO: transaction>=2.0.3
            Requirement of ZEO: six
            Requirement of ZEO: ZODB>=5.1.1
            Requirement of zodbpickle>=0.6.0: setuptools
            Requirement of zc.lockfile: setuptools
            Requirement of transaction>=1.5.0: zope.interface
            Requirement of BTrees>=4.2.0: zope.interface>=5.0.0
            Requirement of BTrees>=4.2.0: persistent>=4.1.0
            Requirement of persistent>=4.2.0: cffi
            Requirement of persistent>=4.2.0: zope.interface
            Requirement of zope.event: setuptools
          Getting distribution for 'trollius'.
        Error: Picked: trollius = 2.2.1
    
    -> Fix that by specifying which egg-version ZEO4/ZEO4-wc2 should be using.
    
    For the reference for ZODB we already do the same - specify egg-version for all
    ZODB5, ZODB4-wc2 and ZODB4:
    
    https://lab.nexedi.com/nexedi/slapos/blob/6765c349/component/ZODB/buildout.cfg#L52-72
    f276d26f