1. 29 Apr, 2024 1 commit
    • Xavier Thompson's avatar
      [fix] Use only ws.find in install · 8a649631
      Xavier Thompson authored
      Replace `pkg_resources.Environment(ws.entries).best_match(req, ws)`
      with `ws.find(req)`.
      
      The first already starts by calling `ws.find(req)` to attempt to find
      an already activated dist in the working set, but if none is found it
      then proceeds to scan through the entries of the environment - i.e.
      the locations of the directly-requested distributions, `ws.entries` -
      to activate a dist at these locations if one matches.
      
      This is problematic when directly-requested distributions are found in
      a location shared by multiple dists, such as site-packages: this gives
      that location precedence over the normal order of locations scanned by
      easy_install, and can result in undesired versions being chosen over
      versions available in ./eggs or in ./develop-eggs. The random aspect
      of this is also problematic, as the order of paths considered will
      depend on the order of the directly-requested distributions and where
      they are found.
      8a649631
  2. 13 Mar, 2024 2 commits
    • Xavier Thompson's avatar
      [feat] Respect pinned versions in bootstrap · 0dcfd8c2
      Xavier Thompson authored
      If zc.buildout or its dependencies have pinned versions that do not
      match the currently running versions, they are now installed in the
      local eggs directory from scratch according to the pinned versions.
      
      In offline mode this merely ensures that versions that satisfy the
      requirements are already available. This is the case when the eggs
      are already installed, or when the running versions are a match to
      the pinned versions or the absence of a pinned version.
      
      If after this matching versions of zc.buildout and its dependencies
      are not located in the local eggs or develop-eggs directories, they
      are copied there as was already the case before.
      0dcfd8c2
    • Xavier Thompson's avatar
      [bug] Fix accidental changes to PYTHONPATH in os.environ · e521348b
      Xavier Thompson authored
      When generating an environment dict for subprocess calls to pip,
      os.environ was accidentally modified despite efforts to copy it
      and modify only the copy, as copy.copy(os.environ) is not enough.
      e521348b
  3. 08 Nov, 2022 2 commits
  4. 06 Nov, 2022 31 commits
  5. 05 Nov, 2022 1 commit
    • Maurits van Rees's avatar
      Make compatible with pip 22.2+, restoring Requires-Python patch (#616) · 6fed3ff0
      Maurits van Rees authored
      * Make compatible with pip 22.2+, restoring Requires-Python functionality there.
      
      Fixes https://github.com/buildout/buildout/issues/613.
      
      Note: we are patching `process_url` from `setuptools`.
      The existing comment says that this method was copied over from setuptools 46.1.3.
      I was wondering, so I checked: the method is still the same in latest setuptools.  And it is largely unchanged since setuptools 42.0.2.
      So for that part we should still be compatible with quite a long range of setuptools versions.
      
      * process_url patch: must pass cache_link_parsing=False.
      
      This fixes test failures: extdemo-1.5 was not found, because the previous index page containing only extdemo-1.4 was cached.
      We were passing this before to HTMLPage, and still do as a fallback, but I missed that this was also needed in pip 22.2+ for the new IndexContent class.
      6fed3ff0
  6. 30 Sep, 2022 2 commits
  7. 16 Sep, 2022 1 commit