1. 25 Sep, 2021 2 commits
  2. 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.
    • 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
  3. 15 May, 2021 3 commits
  4. 14 May, 2021 1 commit
  5. 12 May, 2021 2 commits
  6. 11 May, 2021 2 commits
  7. 23 Dec, 2020 2 commits
  8. 22 Dec, 2020 1 commit
  9. 11 Sep, 2020 2 commits
  10. 10 Sep, 2020 9 commits
  11. 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.
  12. 22 May, 2020 1 commit
  13. 20 May, 2020 3 commits
  14. 16 May, 2020 1 commit
  15. 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.
  16. 12 May, 2020 1 commit
  17. 08 May, 2020 1 commit
  18. 05 May, 2020 3 commits
  19. 04 May, 2020 2 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
    • 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."