• by Julien Muchembled
     
    Browse Files
  • by Kazuhiko Shiozaki
     
    Browse Files
  • Instead of having running test installing eggs with setuptools during `python setup.py test`, which fails for `caucase` because one of its dependency (namely `cryptography`) cannot be installed so easily, we want to install the dependencies via buildout, using the same installation methods than in the actual software profiles using our eggs.
    
    What I initially believed would be a small change turned out to be a long journey, especially because of using a develop version of `slapos.recipe.cmmi` caused signature changes in the parts installed by this recipe ( `git`, `openssl` etc - some parts that takes a bit of time to install ) so I had to fight with the software being reinstalled each time. Even though the cases which leads to reinstallation are understood (this even involved fixing a bug in buildout nexedi/slapos.buildout!14 ), this is still the case. Some solutions are proposed in the commit message of f4b6eeda , but this reached a state where we can consider first merging with this known problem or discuss ways of improving that before merging if it's considered as blocking. Current state is that it takes one hour to re-install what has to be reinstalled and run the test suite on test runner.
    
    Despite this issue, this approach already improve things, because:
     * `caucase` tests are running (and passing)
     * some `slapos.cookbook` are improved so that they reuse eggs from the buildout and do not install again eggs when the are run.
     *  ... and some other small cleanups
    
    This depends on nexedi/erp5!619 on the `erp5.util` side.
    
    /reviewed-on !309
    by Jérome Perrin
     
    Browse Files
  • This function factorize the code to instanciate a recipe in a fake
    buildout.
    The new feature is that if running in a buildout directory, the recipe
    will reuse the eggs from this buildout instead of trying to install eggs
    again.
    by Jérome Perrin
     
    Browse Files
  • we now use slapos.cookbook:wrapper instead
    by Jérome Perrin
     
    Browse Files
  • Instead of letting `python setup.py test` install the depencies, use
    buildout way of installing the eggs.
    
    This software use `interpreter` recipe of `zc.recipe.egg` to install a
    python with all eggs pre-installed. This is a way to get all the
    dependencies at install time instead of getting them at run time from
    pypi when running `python setup.py test`.
    `erp5.util.testsuite` has been extended to support a parameter to
    specify which python interpreter to use.
    
    One issue is that this way of installing eggs by buildout cause chicken
    and egg problem: cloning repository containing `slapos.recipe.cmmi`
    needs git, and to compiling git needs `slapos.recipe.cmmi`.
    The consequence of this is that re-running software will install too
    many parts again.
    One solution for this would be to clone `slapos.recipe.cmmi` with a
    `git` command provided by testnode or system package.
    Another solution would be to not install `slapos.recipe.cmmi` develop
    egg, simply install the egg from it's current pypi version while
    installing the software (running tests will be from the git checkout
    anyway).
    For now this is open issue.
    
    Another point of attention is that `python setup.py test` install the
    requirements listed in `test_requires`, but `zc.recipe.egg` does not
    provide a way of installing these. Some of our packages have `[test]`
    entrypoints, in this case, the software installs the test entrypoints.
    For others, we install the eggs.
    
    Other improvements:
     * use a simple `slapos.recipe:wrapper` instead of `slapos.cookbook:egg_test`
     * fix the typo in repository name erp5-util-repository ->
       erp5.util-repository ( this mean we will have to fix the test suites in
       nexedi ERP5 )
     * document "what is this software" and a scenario of how this software
       can be used to develop slapos eggs.
     * switch to buildout-hash.cfg for easier template hash management.
    by Jérome Perrin
     
    Browse Files