1. 04 Apr, 2018 5 commits
    • Kazuhiko Shiozaki's avatar
    • Jérome Perrin's avatar
      slapos-testing: use buildout to install eggs · b9f53fc3
      Jérome Perrin authored
      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 f4b6eedafd52b0d64f8b2bd1b57c752e02c88a65 , 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 nexedi/slapos!309
      b9f53fc3
    • Jérome Perrin's avatar
      test: introduce makeRecipe utility function · f8df048c
      Jérome Perrin authored
      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.
      f8df048c
    • Jérome Perrin's avatar
      slapos.cookbook: drop slapos.cookbook:egg_test · 8ed0ee5a
      Jérome Perrin authored
      we now use slapos.cookbook:wrapper instead
      8ed0ee5a
    • Jérome Perrin's avatar
      slapos-testing: rework to use buildout to install eggs and dependencies · c91c4722
      Jérome Perrin authored
      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.
      c91c4722
  2. 30 Mar, 2018 3 commits
  3. 29 Mar, 2018 6 commits
  4. 28 Mar, 2018 2 commits
  5. 27 Mar, 2018 6 commits
  6. 26 Mar, 2018 2 commits
    • Kirill Smelkov's avatar
      golang: Hook-in pkg-config for Cgo support · df7db445
      Kirill Smelkov authored
      The most convenient way to discover CFLAGS/LDFLAGS when building Cgo bits is
      via pkg-config:
      
          https://golang.org/cmd/cgo/
      
      For this to work let's add pkg-config to be available there in gowork out of
      the box, and provide users with a way to specify which C packages they want to
      be there on gowork's $PKG_CONFIG_PATH, e.g. this way:
      
          [gowork]
          cpkgpath =
              ${sqlite3:location}/lib/pkgconfig
              ${zlib:location}/lib/pkgconfig
      
      In buildout sources cpkgpath is specified as multiline - not one line with ":"
      delimiters - with the idea that it should be easy to amend gowork.cpkgpath with "+="
      in different places.
      df7db445
    • Alain Takoudjou's avatar
      use slapos.core version 1.4.5 · 8d623f5f
      Alain Takoudjou authored
      8d623f5f
  7. 25 Mar, 2018 1 commit
  8. 22 Mar, 2018 1 commit
  9. 21 Mar, 2018 3 commits
  10. 20 Mar, 2018 2 commits
    • Boris Kocherov's avatar
      801110bb
    • Jérome Perrin's avatar
      tools: a simple git.mergetool for working with buildout.hash.cfg · 6dbd5cca
      Jérome Perrin authored
      Rewriting commit history with `git rebase -i` always caused some
      conflicts on md5sum of modified files. `update-hash` made all this
      easier, because we could just revert buildout.hash.cfg, re-run
      `update-hash` and commit the changes.
      
      This tool makes this scenario a bit more user friendly by automating the
      steps by running as a git mergetool.
      
      An interactive rebase session can be initiated by running this command
      from software/*/ directory:
      
      `git rebase -i --exec "$(pwd)/../../update-hash $(pwd)/buildout.hash.cfg" origin/master`
      
      and if conflict occur, run:
      
      `git mergetool --tool update-hash-mergetool && EDITOR=cat git rebase --continue`
      
      This way, rebase session can be almost non interactive (still have to
      run the above mergetool command) when conflicts are only on md5sum
      updates.
      
      /reviewed-on nexedi/slapos!273
      6dbd5cca
  11. 19 Mar, 2018 3 commits
  12. 16 Mar, 2018 6 commits