1. 24 Sep, 2021 2 commits
    • Julien Muchembled's avatar
      Extend Download API with a new parameter to use an alternate URL as fallback · a2bcbf2d
      Julien Muchembled authored
      This alternate URL is used in case of HTTPError with the main one.
      In any case, the main URL is used for both downloading & uploading
      from/to networkcache.
      
      This will be exposed by slapos.recipe.build:download* and
      slapos.recipe.cmmi recipes.
      a2bcbf2d
    • Julien Muchembled's avatar
      download: clean-up, fix, optimization · 4ccb79e9
      Julien Muchembled authored
      An optimization is to avoid temporary file when possible: a rename
      (or hard link) is not always possible (different mount points).
      
      Another one is to not check md5sum twice when using cache file.
      
      Fall-back mode is ignored if an MD5 checksum is given.
      
      In case of checksum mismatch for a cached path, remove it and
      download again, mainly to cover the following cases:
      - the url content changes and the user updates the checksum
      - buildout killed while downloading directly to cache
        (see above optimization)
      - shutil.copyfile is interrupted
      4ccb79e9
  2. 15 May, 2021 3 commits
  3. 14 May, 2021 1 commit
  4. 12 May, 2021 2 commits
  5. 11 May, 2021 2 commits
  6. 23 Dec, 2020 2 commits
  7. 22 Dec, 2020 1 commit
  8. 11 Sep, 2020 2 commits
  9. 10 Sep, 2020 9 commits
  10. 08 Sep, 2020 1 commit
    • Jérome Perrin's avatar
      fixup! zc.recipe.egg: Improve on the fly pathces. · 45eb64b4
      Jérome Perrin authored
      Only build egg at this point if we have some patches to apply otherwise
      buildout would install dependent egg without logging this operation, which
      would cause many tests to fail.
      
      Also cover the whole scenario of egg patching in a new doctest.
      45eb64b4
  11. 22 May, 2020 1 commit
  12. 20 May, 2020 3 commits
    • Marius Gedminas's avatar
      Fix tests · 2f1d705a
      Marius Gedminas authored
      Add a RENormalizer so the easy_install.txt will be happy with scripts
      generated on Python 2 (using open(..., 'U')) and on Python 3 (using just
      open(...)).
      
      This was suggested by @sallner.
      
      (cherry picked from commit 2cf42066fc8238ffe72ce6aeaef0e66b5df13f79)
      2f1d705a
    • Laurence Rowe's avatar
      Avoid DeprecationWarning: 'U' mode is deprecated · 20adbdb6
      Laurence Rowe authored
      Python 3.7 began warning about open's 'U' mode. Universal newline mode (newline=None) is default in Python 3 so avoid specifying it on Python 3.
      
      (cherry picked from commit 978a6af9e78db44b9db25cb08c7f9d98c24bbc03)
      20adbdb6
    • Julien Muchembled's avatar
      Fix redo_pyc for Python 3 · e3f11c25
      Julien Muchembled authored
      e3f11c25
  13. 16 May, 2020 1 commit
  14. 15 May, 2020 1 commit
    • Julien Muchembled's avatar
      fixup! Apply += & -= in correct order with respect to extends · 44ce8371
      Julien Muchembled authored
      If a.cfg extends b.cfg and both contain [a],
      it was already not possible for a.cfg:[a] to combine <= & +=.
      But it worked when a.cfg:[a] does not extend anything, and
      commit 161fb191 broke that.
      
      The only proper way to solve all this seems to process <= before
      += & -=. But since processing <= while extending files would cause
      other issues, we'd rather process +=&-= when initializing parts.
      44ce8371
  15. 12 May, 2020 1 commit
  16. 08 May, 2020 1 commit
  17. 05 May, 2020 3 commits
  18. 04 May, 2020 4 commits
    • Julien Muchembled's avatar
      Do not reprocess already extended files · ec8f60fa
      Julien Muchembled authored
      extends can be interpreted as inheritance in OOP, but the original
      behaviour was against what is commonly (always?) seen everywhere.
      
      It is however good practice a file extends all files it needs directly
      (and only them). Then if two files A & B (possibly unrelated) extends
      the same third C, A was unable to overrides C values. It was even
      error-prone because someone who don't use B yet could override C values
      in A and later extending B would break A.
      
      For some of our common use cases, this new algorithm is also 9x faster
      (time to annotate: ~2.3s with -> ~.29s).
      
      Other changes:
      - ~/ is now expanded for non-url extends.
      - An absolute (non-url) path is not longer treated like a local path
        if the base is a url.
      - Better path/url normalization.
      
      Rebase instructions:
      - squash with "Chomp ../ from beginging of filenames"
      - split and apply "Support ${:_profile_base_location_}." after
      ec8f60fa
    • Julien Muchembled's avatar
      Revert "Cache downloaded data in zc/buildout/buildout.py:_open() in memory to... · 2242d941
      Julien Muchembled authored
      Revert "Cache downloaded data in zc/buildout/buildout.py:_open() in memory to accelerate remote extends."
      
      This reverts commit 260bc0c4 partially.
      
      The remaining should be squashed with "Write .installed.cfg only once, in safe way and only if there's any change."
      2242d941
    • Julien Muchembled's avatar
      6b6ce0a1
    • Julien Muchembled's avatar