Commit f9f36629 authored by Kirill Smelkov's avatar Kirill Smelkov

ZODB: Factor it to separate component

Factor-out things that provide components for ZODB stack from software/neoppod/
into component/ZODB/.
parent fc0a63c6
......@@ -3,22 +3,40 @@
[buildout]
extends =
../ZODB/buildout.cfg
../git/buildout.cfg
parts = ZEO/scripts
# ZEO allows to use either ZEO4 or ZEO5
# To select which version to use users should do:
# ZEO provides ZEO<X> depending on ZODB major version.
#
# [ZEO]
# egg = ${ZEO<version>:egg}
#
# By default ZEO4 is used.
# - ZEO4 works only with ZODB4
# https://github.com/zopefoundation/ZEO/blob/4.3.1-1-g47d3fbe8/setup.py#L122
# - ZEO5 works only with ZODB5
# https://github.com/zopefoundation/ZEO/blob/5.2.2-1-g3d90ed42/setup.py#L20
[ZEO]
recipe = zc.recipe.egg:eggs
egg = ${ZEO4:egg}
eggs = ${:egg}
recipe = slapos.recipe.build
depends = ${ZODB:egg}
init =
# link/depend to ZEO<ZODB.major>
zodb = self.buildout['ZODB']
zmajor = zodb['major']
zeo_x = self.buildout['ZEO'+zmajor]
options['depends'] += '$${%s:egg}' % zeo_x.name
options['egg'] = zeo_x['egg']
# update [versions] from what is needed by ZEO<X>
for _ in zeo_x['egg_versions'].splitlines():
if _ == '' or _.startswith('#'):
continue
egg, eq, version = _.split() # 'transaction = 1.7.0'
assert eq == '='
self.buildout['versions'][egg] = version
# propagate updated [versions] -> easy_install
# (buildout does this in Buildout constructor)
import zc.buildout.easy_install
zc.buildout.easy_install.default_versions(self.buildout['versions'])
# ZEO/scripts installs scripts from ZEO
......@@ -32,6 +50,7 @@ eggs = ${ZEO:egg}
recipe = zc.recipe.egg:develop
setup = ${ZEO4-repository:location}
egg = ZEO
egg_versions =
[ZEO4-repository]
recipe = slapos.recipe.build:gitclone
......@@ -47,3 +66,8 @@ git-executable = ${git:location}/bin/git
recipe = zc.recipe.egg:eggs
egg = ZEO
eggs = ${:egg}
egg_versions =
ZEO = 5.2.2
trollius = 2.2.post1
futures = 3.2.0
# SlapOS component for ZODB.
# https://zodb.org/
[buildout]
extends =
../git/buildout.cfg
../python-cffi/buildout.cfg
parts = ZODB/scripts
# ZODB allows to use either ZODB4 or ZODB5.
# To select which version to use users should do:
#
# [ZODB]
# major = <ZODB-version-major>
#
# By default ZODB4 is used.
[ZODB]
recipe = slapos.recipe.build
major = 4
init =
# link/depend ZODB -> ZODB<X>
zodb_x = 'ZODB'+options['major']
zodb_x = self.buildout[zodb_x]
options['depends'] = '$${%s:egg}' % zodb_x.name
options['egg'] = zodb_x['egg']
# update [versions] from what is needed by ZODB<X>
for _ in zodb_x['egg_versions'].splitlines():
if _ == '' or _.startswith('#'):
continue
egg, eq, version = _.split() # 'transaction = 1.7.0'
assert eq == '='
self.buildout['versions'][egg] = version
# propagate updated [versions] -> easy_install
# (buildout does this in Buildout constructor)
import zc.buildout.easy_install
zc.buildout.easy_install.default_versions(self.buildout['versions'])
# ZODB/scripts installs scripts from ZODB
[ZODB/scripts]
recipe = zc.recipe.egg:scripts
eggs = ${ZODB:egg}
# ZODB4 and ZODB5 are plain upstream eggs
[_ZODB45]
recipe = zc.recipe.egg:eggs
egg = ZODB
eggs = ${:egg}
depends = ${persistent:egg} ${BTrees:egg}
[ZODB4]
<= _ZODB45
egg_versions =
ZODB = 4.4.5
transaction = 1.7.0
[ZODB5]
<= _ZODB45
egg_versions =
ZODB = 5.6.0
transaction = 2.4.0
# XXX: buildout fails to install properly eggs with setup_requires
[BTrees]
recipe = zc.recipe.egg:custom
egg = ${:_buildout_section_name_}
setup-eggs = ${persistent:egg}
[persistent]
recipe = zc.recipe.egg:custom
egg = ${:_buildout_section_name_}
setup-eggs = ${python-cffi:egg}
# eggs that are common to ZODB4 and ZODB5.
[versions]
BTrees = 4.5.1
persistent = 4.6.4
zodbpickle = 1.0.4
# Provide ZODB3 for those eggs that still care about ZODB3 compatibility -
# for example wendelin.core. ZODB3 3.11 is just a dependency egg on _latest_
# ZODB, persistent, BTrees and ZEO.
ZODB3 = 3.11.0
......@@ -3,6 +3,7 @@
[buildout]
extends =
../pygolang/buildout.cfg
../ZODB/buildout.cfg
../zodbtools/buildout.cfg
../numpy/buildout.cfg
../golang/buildout.cfg
......@@ -24,6 +25,7 @@ environment = wendelin.core-env
# dependent eggs that must come through in-tree recipes
depends =
${ZODB:egg}
${zodbtools:egg}
${numpy:egg}
......
......@@ -4,6 +4,7 @@
[buildout]
extends =
../pygolang/buildout.cfg
../ZODB/buildout.cfg
../ZEO/buildout.cfg
parts =
......@@ -19,6 +20,7 @@ eggs =
# dependent eggs that must come through in-tree recipes
depends =
${pygolang:egg}
${ZODB:egg}
# ZEO comes through zodbtools -> zodburi -> ZEO
${ZEO:egg}
......
......@@ -3,8 +3,7 @@
[buildout]
extends =
# test*.cfg first extend from neoppod/software<ZODB-flabour>.cfg to use
# appropriate ZODB and versions of other components.
# test<X>.cfg configures ZODB.major=<X>.
../../stack/nxdtest.cfg
../pytest/buildout.cfg
......@@ -45,4 +44,5 @@ template = inline:
[versions]
mock = 3.0.5
freezegun = 1.0.0
# SlapOS software release to test zodbtools/ZODB5 on Nexedi testing infrastructure.
[buildout]
extends =
../../software/neoppod/software-zodb5.cfg
test-common.cfg
extends = test-common.cfg
[ZODB]
major = 5
# SlapOS software release to test zodbtools on Nexedi testing infrastructure.
[buildout]
extends =
../../software/neoppod/software.cfg
test-common.cfg
extends = test-common.cfg
......@@ -18,6 +18,7 @@ extends =
../../component/python-mysqlclient/buildout.cfg
../../component/python-cryptography/buildout.cfg
../../component/pycurl/buildout.cfg
../../component/ZODB/buildout.cfg
../../component/ZEO/buildout.cfg
../../component/zodbtools/buildout.cfg
......@@ -41,32 +42,23 @@ recipe = zc.recipe.egg:develop
setup = ${neoppod-repository:location}
environment = neoppod-setup-env
[neoppod]
recipe = zc.recipe.egg
eggs = neoppod[admin, ctl, master]
# dependent eggs that must come through in-tree recipes
intree-eggs =
${cython-zstd:egg}
${msgpack-python:egg}
${:adapter-egg}
${BTrees:egg}
${ZODB:egg}
${zodbtools:egg}
adapter-egg = ${python-mysqlclient:egg}
[neoppod]
recipe = zc.recipe.egg
eggs = neoppod[admin, ctl, master]
${neoppod-develop:intree-eggs}
psutil
ZODB
zope.testing
${zodbtools:egg}
coverage
setproctitle
adapter-egg = ${python-mysqlclient:egg}
# XXX: buildout fails to install properly eggs with setup_requires
[BTrees]
recipe = zc.recipe.egg:custom
egg = ${:_buildout_section_name_}
setup-eggs = ${persistent:egg}
[persistent]
recipe = zc.recipe.egg:custom
egg = ${:_buildout_section_name_}
setup-eggs = ${python-cffi:egg}
###
[download-base-neo]
recipe = slapos.recipe.build:download
......@@ -136,18 +128,13 @@ template =
{% endraw %}
[versions]
BTrees = 4.5.1
ZODB = 4.4.5
coverage = 4.5.1
mock = 3.0.5
ecdsa = 0.13
mysqlclient = 1.3.12
persistent = 4.6.4
pycrypto = 2.6.1
pycurl = 7.43.0
setproctitle = 1.1.10
transaction = 1.7.0
zodbpickle = 1.0.4
cython-zstd = 0.2
python-dateutil = 2.7.3
......
[buildout]
extends = software.cfg
[ZODB]
major = 5
[neoppod]
eggs += mock
[ZEO]
egg = ${ZEO5:egg}
[versions]
ZODB = 5.6.0
ZEO = 5.2.2
transaction = 2.4.0
# Required by:
# ZEO==5.2.0
# trollius==2.2.post1
futures = 3.2.0
# Required by:
# ZEO==5.2.0
trollius = 2.2.post1
......@@ -34,8 +34,6 @@ interpreter = ${:_buildout_section_name_}
[versions]
# To match ERP5
ZConfig = 2.9.3
zc.lockfile = 1.0.2
zope.event = 3.5.2
zope.exceptions = 3.6.2
zope.testing = 3.9.7
......
# To be extended after software-common.cfg if only SQLite backend is wanted.
[neoppod]
[neoppod-develop]
adapter-egg =
[instance-common]
......
......@@ -131,20 +131,4 @@ eggs =
# ping eggs versions
[versions]
ZODB3 = 3.11.0
zope.testing = 4.6.2
# Required by:
# ZEO==4.3.1
# ZODB==4.4.5
# zodburi==2.3.0
ZConfig = 3.2.0
# Required by:
# ZEO==4.3.1
# ZODB==4.4.5
zc.lockfile = 1.2.1
# Required by:
# neoppod==1.8.1
python-dateutil = 2.7.1
......@@ -664,7 +664,6 @@ PyXML = 0.8.5
Pympler = 0.4.3
StructuredText = 2.11.1
WSGIUtils = 0.7
ZODB3 = 3.11.0
# astroid 1.4.1 breaks testDynamicClassGeneration
astroid = 1.3.8
erp5diff = 0.8.1.7
......
......@@ -155,6 +155,7 @@ Importing = 1.10
MarkupSafe = 1.0
PyYAML = 5.4.1
Werkzeug = 1.0.1
ZConfig = 2.9.3
asn1crypto = 1.3.0
atomicwrites = 1.4.0
backports.functools-lru-cache = 1.6.1
......@@ -215,6 +216,7 @@ unicodecsv = 0.14.1
wcwidth = 0.2.5
wheel = 0.35.1
xml-marshaller = 1.0.2
zc.lockfile = 1.0.2
zdaemon = 4.2.0
zipp = 1.2.0
zodburi = 2.4.0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment