• Xavier Thompson's avatar
    [feat] zc.recipe.egg: Reinstall when setup-eggs versions change · 0e6ebfc6
    Xavier Thompson authored
    Trigger uninstall + install of eggs installed with zc.recipe.egg:custom
    or :develop when pinned versions of setup-eggs have changed. To achieve
    this the versions of setup-eggs are included in the section: this makes
    them part of its signature so that when they change, buildout will call
    `uninstall` and `install` for this section instead of just `update`.
    
    Unlike other zc.recipe.egg entry points, :custom stores the path of the
    installed egg; thus `uninstall` will remove it fully, leaving `install`
    to reinstall it cleanly from scrach.
    
    In the case of :develop, `uninstall` matters little as only the path of
    the installed `.egg-link` is stored. Instead `install` must be fixed to
    actually rebuild the egg in-place in the source directory and `develop`
    should do nothing.
    
    The main issue lies in `zc.buildout.easy_install.develop`: depending on
    the build process, it may leave build artifacts in the source directory
    that cause future runs to do nothing.
    0e6ebfc6
custom.py 7.4 KB