• Xavier Thompson's avatar
    [feat] Add buildout:extra-paths option · 1f3977f8
    Xavier Thompson authored
    This option determines what paths zc.buildout will scan for already
    installed distributions. It can be set to an empty value to enable
    isolation. The special values 'sys.path', 'legacy' and 'zc.buildout'
    expand to particular paths. The default is 'zc.buildout'.
    
    The 'sys.path' mode simply expands to the currrent sys.path.
    
    The 'legacy' mode reproduces the previous behavior of specifically
    scanning the paths of the current zc.buildout distribution and its
    dependencies using a weird ordering logic that bears no relation to the
    order they appear in sys.path - which can produce unexpected results as
    other distributions for zc.buildout, pip, wheel and setuptools may take
    precedence over the ones currently running.
    
    The 'zc.buildout' mode is similar to 'legacy' as it uses only the paths
    of the currently running zc.buildout and dependencies, but unlike
    'legacy' mode it respects the order in which these appear in sys.path,
    avoiding unexpected results.
    
    This mode is set to the default because it is closest to 'legacy' mode
    and because it has a nice property: running in succession
    
      `buildout buildout:extra-paths= bootstrap` (1)
      `bin/buildout` (2)
    
    will result in (1) installing zc.buildout and its dependencies in
    ./eggs in isolation from the environment, and (2) using only the
    paths of these in ./eggs, i.e. continuing to operate in isolation,
    even without setting extra-paths explictly.
    1f3977f8
buildout.py 85.1 KB