Hi all, After some recent thought I think I grasped the beginning of a good base idea for combinatoric tox envs
Various users including myself have a need for better expression of more combinatoric dimensions in tox testenv listings example ranges from simple products like `python version X database backends` up to more diverse requirement setups like having different versions of different backends (for example different versions of the python scm bindings in anyvc) In order to express those i think 2 concepts are necessary. 1. Variations 2. Templates/blocks Variations express dimensions of variantion, for example python versions or database backends Blocks express a "base" for a testenv that will be enriched by the actual testenv to express the final testenv Blocks may extend/enrich upon other blocks (using the same mro algorithm python uses for inheritance) examples ========== Expressing the current python testenvs:: [part:pythons] variantions = python_version 24 25 26 27 30 31 32 22 python = python[${python_version}] #XXX: needs a sane way to evaluate python[24] = python2.4 python[25] = python2.5 python[26] = python2.6 python[27] = python2.7 python[30] = python3.0 python[31] = python3.1 python[32] = python3.1 python[33] = python3.3 [testenv:py${python_version}] use = pythons expressing multiple database backends:: [part:sqlite] depends = sqlite [part:mysql] depends = mysqldb [testenv:py$python_version-$backend] use = pythons ${backend} variantion = backend sqlite mysql postgres depends = ${previous} pytest commands = py.test --database ${backend} expressing more complex nested variation:: [part:mercurial] variation = version 2.0 2.1 2.2 depends = mercurial==${version} vcs = hg [part:subvertpy] version = latest depends = suvertpy==dev vcs = svn [testenv:py${python_version}-${backend}-{$version}] variations = backend subvertpy mercurial # override the variations of the pythons part python_version 26 27 33 use = pythons $backend depends = ${previous} pytest commands = py.test --vcs ${vcs} _______________________________________________ py-dev mailing list py-dev@codespeak.net http://codespeak.net/mailman/listinfo/py-dev