• Jim Fulton's avatar
    Major refactoring. The original motivation was to get the newest · 2530eeb2
    Jim Fulton authored
    distributions available. This required working around issues with
    easy_install's --upgrade option:
    
    - Upgrade is not recursive. Upgrading a distro doesn't update it's
      dependencies.
    
    - Upgrade doesn't try very hard to avoid searching.  If we require a
      specific version of a distribution, and we already have that
      distribution, there's no point in looking for a newer one.
    
    - easy_install has kind of odd rules for deciding when to look at an
      index.   Now that we use upgrade all the time, easy_install always
      wants to look at an index.
    
    - We get warnings when connecting to index servers, like PyPI that 
      return text/plain not found messages.
    
    We now have much greater control over how dependencies are
    managed. We've essentially taken this over from easy_install.
    
    Because we now always talk to an index server and because we want to
    control anything we do in a test, many of the tests actually run their
    own web servers.
    
    Anyway:
    
    - Now handle upgrades correctly, I think.
    
    - The egg recipe can now install multiple distributions.
    
    - We have the beginnings of offline mode.
    
    - The internal architeture is much cleaner.
    
    - We've merged the easy_install and egglinker modules, tossing
      some superfluois apis in the egglinker module.
    2530eeb2
bootstrap.py 1.4 KB