1. 12 Jun, 2024 6 commits
    • Xavier Thompson's avatar
      [wkrd] Workaround package index after PEP 625 · 4c06f1d2
      Xavier Thompson authored
      Since PEP 625, sdist filenames replace . and - in the project name by
      _, such as e.g. zc.buildout==3.0.1 yielding zc_buildout-3.0.1.tar.gz.
      
      However, when looking up available dists in a package index, when an
      sdist with such a normalized filename is found, setuptools interprets
      the filename by replacing _ with - and uses that as the dist's name;
      e.g. zc_buildout-3.0.1.tar.gz yields zc-buildout. This causes lookups
      for the name with . (e.g.: zc.buildout) to fail.
      
      Workaround by also looking up the name with . replaced by _, and then
      fixing the names of found dists back to expected name.
      4c06f1d2
    • Xavier Thompson's avatar
      aa861eda
    • Xavier Thompson's avatar
      4d36bf00
    • Xavier Thompson's avatar
      [wkrd] Use pip install --editable --user · f5e1c5da
      Xavier Thompson authored
      Prior to pip 21.1, pip install --editable --target fails because it
      results in wrong parameters being passed to setup.py develop by pip.
      
      Prior to setuptools 45.2.0, both pip install --editable --target and
      pip install --editable --prefix fail because the temporary install
      directory used internally by pip is not added to PYTHONPATH prior
      to pip calling setup.py develop. In later version setuptools emits a
      warning instead of an error.
      
      Temporarily override PYTHONUSERBASE to point to the target directory,
      so as to emulate --prefix=<dir> with PYTHONUSERBASE=<dir> and --user.
      
      This is needed for Python2 because pip 21.1 and setuptools 45.2.0 are
      both Python3 only.
      f5e1c5da
    • Xavier Thompson's avatar
      [tool] Gitignore *.dist-info · aef6b5ff
      Xavier Thompson authored
      aef6b5ff
    • Xavier Thompson's avatar
      [feat] Use pip install --editable in easy_install.develop · bedccb23
      Xavier Thompson authored
      Instead of running python setup.py develop directly. This will allow
      using zc.buildout.easy_install.develop on recent projects that have
      only a pyproject.toml. It also fixes develop leaving build artifacts
      in the source directory that caused later runs to do nothing, e.g.
      preventing develop-eggs to be rebuilt when a build dependency passed
      in setup-eggs option of zc.recipe.egg:develop changed.
      
      A verbosity parameter to tune verbosity of pip is added, with adjusted
      values for the case of buildout:develop and of zc.recipe.egg:develop,
      so as to remain close to the previous behavior with regards to logs.
      bedccb23
  2. 03 Jun, 2024 25 commits
  3. 24 May, 2024 4 commits
  4. 20 May, 2024 5 commits
    • Kazuhiko Shiozaki's avatar
      [feat] zc.recipe.egg: Support on the fly patches. · de36e733
      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).
      de36e733
    • Kirill Smelkov's avatar
      [feat] zc.recipe.egg: Support environment in :develop · 8a0eed18
      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
      8a0eed18
    • Kazuhiko Shiozaki's avatar
    • Xavier Thompson's avatar
      [feat] Raise an exception when pip fails · 07595d60
      Xavier Thompson authored
      Before this, sys.exit(1) was called to terminate the program directly.
      07595d60
    • Julien Muchembled's avatar
      [feat] Conditional sections: expose new 'multiarch' value in sys · 6109e381
      Julien Muchembled authored
      To be dropped once all buildout in the wild are able to upgrade to a
      version that supports new names in expression of conditional sections
      (see previous commit).
      6109e381