[buildout]

extends =
  ../../component/git/buildout.cfg
  ../../component/lxml-python/buildout.cfg
  ../../component/libxml2/buildout.cfg
  ../../component/libxslt/buildout.cfg
  ../../component/bcrypt/buildout.cfg
  ../../component/zlib/buildout.cfg
  ../../component/phantomjs/buildout.cfg
  ../../component/pycurl/buildout.cfg
  ../../component/coreutils/buildout.cfg
  ../../component/socat/buildout.cfg
  ../../component/lmsensors/buildout.cfg
  ../../stack/slapos.cfg
  ./buildout.hash.cfg

parts =
  bootstrap-slapos.recipe.cmmi
  eggs
  phantomjs
  template

[bootstrap-slapos.recipe.cmmi]
# install our develop version of slapos.recipe.cmmi before anything else,
# otherwise it will be installed from pypi by dependencies.
recipe = zc.recipe.egg
eggs = ${slapos.recipe.cmmi-setup:egg}

[setup-develop-egg]
recipe = zc.recipe.egg:develop

[caucase-setup]
<= setup-develop-egg
egg = caucase
setup = ${caucase-repository:location}

[kedifa-setup]
<= setup-develop-egg
egg = kedifa
setup = ${kedifa-repository:location}
depends = ${caucase-setup:egg}

[slapos.libnetworkcache-setup]
<= setup-develop-egg
egg = slapos.libnetworkcache
setup = ${slapos.libnetworkcache-repository:location}

[erp5.util-setup]
<= setup-develop-egg
# XXX erp5.util does not have `test` extra require, but has a `testnode` extra require with same dependencies
egg = erp5.util[testnode]
setup = ${erp5.util-repository:location}
depends = ${slapos.core-setup:egg}

[slapos.cookbook-setup]
<= setup-develop-egg
# XXX slapos.cookbook does not have `test` extra require, `mock` is only listed in `tests_require` and is listed explicitly
egg = slapos.cookbook
setup = ${slapos.cookbook-repository:location}
depends = ${slapos.core-setup:egg}

[slapos.core-setup]
<= setup-develop-egg
# XXX slapos.cookbook does not have `test` extra require, `mock`, `pyflakes` and `httmock` are only listed in `tests_require` and are listed explicitly
egg = slapos.core
setup = ${slapos.core-repository:location}

[slapos.recipe.build-setup]
<= setup-develop-egg
egg = slapos.recipe.build[test]
setup = ${slapos.recipe.build-repository:location}

[slapos.recipe.cmmi-setup]
<= setup-develop-egg
egg = slapos.recipe.cmmi[test]
setup = ${slapos.recipe.cmmi-repository:location}
depends = ${slapos.recipe.build-setup:egg}

[slapos.recipe.template-setup]
<= setup-develop-egg
# XXX slapos.recipe.template does not have `test` extra require, `zope.testing` is only listed in `tests_require` and is listed explicitly
egg = slapos.recipe.template
setup = ${slapos.recipe.template-repository:location}

[slapos.toolbox-setup]
<= setup-develop-egg
# XXX slapos.toolbox does not have `test` extra require, `mock` and `pycurl` are only listed in `tests_require` and are listed explicitly
egg = slapos.toolbox
setup = ${slapos.toolbox-repository:location}
depends = ${slapos.core-setup:egg}


[eggs]
recipe = zc.recipe.egg
eggs =
  ${lxml-python:egg}
  ${python-cryptography:egg}
  ${pycurl:egg}
  ${bcrypt:egg}
  dnspython
  Jinja2
  ${kedifa-setup:egg}
  ${caucase-setup:egg}
  ${erp5.util-setup:egg}
  ${slapos.cookbook-setup:egg}
  ${slapos.core-setup:egg}
  ${slapos.recipe.build-setup:egg}
  ${slapos.recipe.cmmi-setup:egg}
  ${slapos.recipe.template-setup:egg}
  ${slapos.toolbox-setup:egg}
  ${slapos.libnetworkcache-setup:egg}
  mock
  zope.testing
  httmock
  pyflakes
  supervisor
entry-points =
  runTestSuite=erp5.util.testsuite:runTestSuite
scripts =
  runTestSuite
  slapos
  supervisord
interpreter=
  python_for_test

[git-clone-repository]
recipe = slapos.recipe.build:gitclone
git-executable = ${git:location}/bin/git
forbid-download-cache = true
branch = master

[kedifa-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/kedifa.git

[caucase-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/caucase.git

[erp5.util-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/erp5.git

[slapos.cookbook-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.git

[slapos.core-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.core.git

[slapos.recipe.template-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.recipe.template.git

[slapos.libnetworkcache-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.libnetworkcache.git

[slapos.recipe.build-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.recipe.build.git
# We use the system git and not slapos provided one, because
# slapos.recipe.build is a dependency of slapos.recipe.cmmi
#git-executable = git

[slapos.recipe.cmmi-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.recipe.cmmi.git
# We use the system git and not slapos provided one, because slapos git needs
# slapos.recipe.cmmi to be installed. This circular dependency cause parts to
# be reinstalled everytime buildout is run because signatures are not stable.
#git-executable = git

[slapos.toolbox-repository]
<= git-clone-repository
repository = https://lab.nexedi.com/nexedi/slapos.toolbox.git


[template]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/${:filename}
output = ${buildout:directory}/template.cfg
mode = 640

[versions]
# clear version pins of tested eggs for which we want to generate scripts
# otherwise, the scripts will be generated for the pinned version.
slapos.core =
erp5.util =

# All depencies should be pinned.
Pygments = 2.1.3
slapos.recipe.template = 4.3
zc.lockfile = 1.4
bcrypt = 3.1.4
dnspython = 1.15.0
funcsigs = 1.0.2
gitdb2 = 2.0.4
httmock = 1.2.6
manuel = 1.9.0
mock = 2.0.0
pem = 18.1.0
pycurl = 7.43.0.2
pyflakes = 2.0.0
smmap2 = 2.0.4
zope.testing = 4.6.2
urllib3 = 1.24.1 
# Required by:
# caucase
PyJWT = 1.6.4