1. 31 Oct, 2023 7 commits
    • Kazuhiko Shiozaki's avatar
      1615b472
    • Kazuhiko Shiozaki's avatar
      4f4ff9d5
    • Kirill Smelkov's avatar
      zc.recipe.egg: Support environment in :develop · 99c2eeb7
      Kirill Smelkov authored
      Currently only zc.recipe.egg:custom supports setting environment
      variables, and zc.recipe.egg:develop does not.
      
      My motivation for allowing setting environment in :develop is
      wendelin.core
      
          https://lab.nexedi.cn/nexedi/slapos/blob/b5faab3b/component/wendelin.core/buildout.cfg
      
      There we have [wendelin.core] part which installs released egg from
      pypi, and [wendelin.core-dev] part which installs wendelin.core from
      its latest git version via zc.recipe.egg:develop .
      
      The problem is, wendelin.core for setup.py to work, needs git available,
      and with slapos we usually don't have git available on base system, so
      we build it by our own and do something like
      
          [wendelin.core-dev]
          recipe = zc.recipe.egg:develop
          environment = wendelin.core-dev-env
      
          [wendelin.core-dev-env]
          # wendelin.core-dev needs git to build
          PATH = ${git:location}/bin:%(PATH)s
      
      and the problem is environment does not currently work for
      zc.recipe.egg:develop, and thus git is not found -> build fails.
      
      ~~~~
      
      In order to support environment in :develop, we just move environment
      setting/restoring bits from Custom to Base, and provide Base.install() which
      uses this bits. Custom & Develop .install() becomes ._install() which gets
      hooked into Base.install() .
      
      I've tested the patch only manually, because currently automated tests are
      broken in a lot of places for slapos.buildout and zc.recipe.egg .
      
      /cc @kazuhiko, @Tyagov
      99c2eeb7
    • Kazuhiko Shiozaki's avatar
      zc.recipe.egg: Support on the fly pathces. · 0702dbd4
      Kazuhiko Shiozaki authored
      - Support on the fly patches in zc.recipe.egg by ``EGGNAME-patches``,
        ``EGGNAME-patch-options``, ``EGGNAME-patch-binary`` (or
        ``patch-binary``) and ``EGGNAME-patch-revision`` options.
      
      - Support on the fly patches in zc.recipe.egg:custom by ``patches``,
        ``patch-options``, ``patch-binary`` and ``patch-revision`` options.
        (options ``EGGNAME-*`` are also supported as well).
      0702dbd4
    • Kazuhiko Shiozaki's avatar
      956cbb91
    • Kazuhiko Shiozaki's avatar
      Support ${:_profile_base_location_}. · 92fe6d88
      Kazuhiko Shiozaki authored
      92fe6d88
    • Łukasz Nowak's avatar
      Do not reprocess already extended files · e37aa992
      Łukasz Nowak 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
      
      Sqaushed with
      
      Chomp ../ from beginging of filenames.
      
      In order to have as canonical as possible paths, chomp ../ from filenames and
      recalculate base.
      e37aa992
  2. 04 Dec, 2019 3 commits
  3. 26 Nov, 2019 3 commits
  4. 31 Jan, 2017 6 commits
  5. 30 Jan, 2017 5 commits
  6. 29 Jan, 2017 12 commits
  7. 28 Jan, 2017 4 commits