1. 14 Aug, 2021 4 commits
    • Kirill Smelkov's avatar
      Merge branch 'master' into master+ZODB4-wc2 · 18f746d9
      Kirill Smelkov authored
      * master:
        v↑ zodburi  (2.4.0 -> 2.5.0)
      18f746d9
    • Kirill Smelkov's avatar
      v↑ zodburi (2.4.0 -> 2.5.0) · 45476f54
      Kirill Smelkov authored
      Zodburi 2.5.0 added support for demo: URI scheme:
      https://github.com/Pylons/zodburi/blob/master/CHANGES.rst#250-2021-05-12
      45476f54
    • Kirill Smelkov's avatar
      Merge branch 'master' into master+ZODB4-wc2 · 739b1125
      Kirill Smelkov authored
      * master:
        ZEO: Fix ZEO4-wc2 installation
        zodbtools: Refer to in-tree eggs via ${<name>:egg} not just name
        wendelin.core: Fix test build 2
        component/nxdtest: v↑
        software/headless-chromium: fix software schema json
        *: remove "required by" auto-generated comments
        caddy-frontend: Explain custom_domain a bit better
        software/monitor: Use slapos.cookbook:switch-softwaretype
        software/headless-chromium: create headless Chromium SR
        wendelin.core: Fix test build
        slapos-sr-testing: Fix default parameters handling
      739b1125
    • Kirill Smelkov's avatar
      ZEO: Fix ZEO4-wc2 installation · 97832d95
      Kirill Smelkov authored
      - due to a thinko in c170fe3e (ZODB: Provide ZODB4-wc2 which backports MVCC approach from ZODB5)
        4-wc2 revision was set on a ZEO(egg) section instead of ZEO(repository)
        section. As the result it was ZEO4 - not ZEO4-wc2 - that was installed.
      
        This was leading to hangs in tests with wcfs waiting for ZODB server to
        update it after a commit, but no notification was coming from ZEO at all.
      
        For the refrence: the reason ZEO4-wc2 exists at all is the backport patches
        that teach ZEO to send invalidations even on empty transactions
        (nexedi/ZEO@bf80d23d), and to include
        just-created objects into invalidations as well (nexedi/ZEO@f2fae122).
        Those changes are needed for WCFS to be always notificated on every
        transaction and with full set of changed objects.
      
      - there was a typo: it was `revisions` instead of `revision`.
      
      -> Fix both issues. Now it is ZEO4-wc2 that is installed for real when `ZODB.major = 4-wc2`.
      97832d95
  2. 12 Aug, 2021 5 commits
  3. 11 Aug, 2021 1 commit
  4. 10 Aug, 2021 5 commits
    • Łukasz Nowak's avatar
    • Eric Zheng's avatar
      add headless chromium software release · 224b207e
      Eric Zheng authored
      This also adds a headless-chromium component and enables the http_sub
      module in the Nginx component. Some basic tests are included. See merge
      request nexedi/slapos!1014 for more details and discussion.
      224b207e
    • Eric Zheng's avatar
      software/headless-chromium: create headless Chromium SR · 907c97f0
      Eric Zheng authored
      This change includes a rewrite of the previous
      component/headless-chromium, which used an outdated version of Chromium.
      It differs from component/chromium in that:
      
      - It only provides a headless shell, rather than the full Chromium
        browser (though this can be changed).
      - It compiles from source rather than downloading a binary build.
      
      There is also a new software release software/headless-chromium which
      makes use of the updated component/headless-chromium to expose a remote
      debugging port.
      
      See also nexedi/slapos!1014.
      907c97f0
    • Kirill Smelkov's avatar
      wendelin.core: Fix test build · c8c3071f
      Kirill Smelkov authored
      Wendelin.core2[test] depends on scipy[1]. Before slapos.buildout
      2.7.1+slapos013 the build was succeeding because scipy was, likely, installed
      via binary wheel. But after that buildout upgrade the build fails:
      
          WARNING: The easy_install command is deprecated and will be removed in a future version.
          /tmp/easy_install-vYdhd1/scipy-0.19.0/setup.py:323: UserWarning: Unrecognized setuptools command, proceeding with generating Cython sources and expanding templates
            warnings.warn("Unrecognized setuptools command, proceeding with "
          Traceback (most recent call last):
            File "<string>", line 10, in <module>
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 2321, in main
              **kw
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/__init__.py", line 162, in setup
              return distutils.core.setup(**attrs)
            File "/srv/slapgrid/slappart91/srv/runner/shared/python2.7/93d57ff089fd75f374514794469a0538/lib/python2.7/distutils/core.py", line 151, in setup
              dist.run_commands()
            File "/srv/slapgrid/slappart91/srv/runner/shared/python2.7/93d57ff089fd75f374514794469a0538/lib/python2.7/distutils/dist.py", line 953, in run_commands
              self.run_command(cmd)
            File "/srv/slapgrid/slappart91/srv/runner/shared/python2.7/93d57ff089fd75f374514794469a0538/lib/python2.7/distutils/dist.py", line 972, in run_command
              cmd_obj.run()
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 424, in run
              self.easy_install(spec, not self.no_deps)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 666, in easy_install
              return self.install_item(None, spec, tmpdir, deps, True)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 711, in install_item
              dists = self.install_eggs(spec, download, tmpdir)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 896, in install_eggs
              return self.build_and_install(setup_script, setup_base)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 1164, in build_and_install
              self.run_setup(setup_script, setup_base, args)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 1150, in run_setup
              run_setup(setup_script, args)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 253, in run_setup
              raise
            File "/srv/slapgrid/slappart91/srv/runner/shared/python2.7/93d57ff089fd75f374514794469a0538/lib/python2.7/contextlib.py", line 35, in __exit__
              self.gen.throw(type, value, traceback)
            File "<string>", line 7, in setup_context
            File "/srv/slapgrid/slappart91/srv/runner/shared/python2.7/93d57ff089fd75f374514794469a0538/lib/python2.7/contextlib.py", line 35, in __exit__
              self.gen.throw(type, value, traceback)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 195, in setup_context
              yield
            File "/srv/slapgrid/slappart91/srv/runner/shared/python2.7/93d57ff089fd75f374514794469a0538/lib/python2.7/contextlib.py", line 35, in __exit__
              self.gen.throw(type, value, traceback)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 166, in save_modules
              saved_exc.resume()
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 141, in resume
              six.reraise(type, exc, self._tb)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 154, in save_modules
              yield saved
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 195, in setup_context
              yield
            File "<string>", line 7, in setup_context
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 250, in run_setup
              _execfile(setup_script, ns)
            File "/srv/slapgrid/slappart91/srv/runner/software/3335682bae677c2d474f9244e578f64b/eggs/setuptools-44.1.1-py2.7.egg/setuptools/sandbox.py", line 45, in _execfile
              exec(code, globals, locals)
            File "/tmp/easy_install-vYdhd1/scipy-0.19.0/setup.py", line 416, in <module>
            File "/tmp/easy_install-vYdhd1/scipy-0.19.0/setup.py", line 396, in setup_package
          ImportError: No module named numpy.distutils.core
          An error occurred when trying to install scipy 0.19.0. Look above this message for any errors that were output by easy_install.
          While:
            Installing wendelin.core-python.
            Base installation request: 'wendelin.core[test]', 'pygolang[pyx.build]', 'neoppod[tests]', 'ZEO[test]'
              Requirement of ZEO[test]: random2
              Requirement of ZEO[test]: manuel
              Requirement of ZEO[test]: zope.testing
              Requirement of ZEO[test]: zope.interface
              Requirement of ZEO[test]: zdaemon
              Requirement of ZEO[test]: ZConfig
              Requirement of ZEO[test]: zc.lockfile
              Requirement of ZEO[test]: persistent>=4.1.0
              Requirement of ZEO[test]: transaction<2.0.0
              Requirement of ZEO[test]: six
              Requirement of ZEO[test]: ZODB<4.999,>=4.2.0b1
              Requirement of neoppod[tests]==1.12.0: neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]
              Requirement of neoppod[tests]==1.12.0: psutil>=2
              Requirement of neoppod[tests]==1.12.0: zope.testing
              Requirement of neoppod[tests]==1.12.0: coverage
              Requirement of neoppod[tests]==1.12.0: python-dateutil
              Requirement of pygolang[pyx.build]==0.0.8: wheel
              Requirement of pygolang[pyx.build]==0.0.8: setuptools_dso>=1.7
              Requirement of pygolang[pyx.build]==0.0.8: setuptools
              Requirement of pygolang[pyx.build]==0.0.8: cython
              Requirement of pygolang[pyx.build]==0.0.8: Importing
              Requirement of pygolang[pyx.build]==0.0.8: decorator
              Requirement of pygolang[pyx.build]==0.0.8: six
              Requirement of pygolang[pyx.build]==0.0.8: gevent
              Requirement of wendelin.core[test]: scipy
              Requirement of wendelin.core[test]: pytest
              Requirement of wendelin.core[test]: psutil
              Requirement of wendelin.core[test]: six
              Requirement of wendelin.core[test]: pygolang>=0.0.8
              Requirement of wendelin.core[test]: zodbtools>=0.0.0.dev8
              Requirement of wendelin.core[test]: ZODB>=4
              Requirement of wendelin.core[test]: numpy
              Requirement of manuel: six
              Requirement of manuel: setuptools
              Requirement of zope.testing: zope.interface
              Requirement of zope.testing: zope.exceptions
              Requirement of zope.testing: setuptools
              Requirement of zope.interface: setuptools
              Requirement of zdaemon: setuptools
              Requirement of zdaemon: ZConfig
              Requirement of zc.lockfile: setuptools
              Requirement of persistent>=4.1.0: cffi
              Requirement of persistent>=4.1.0: zope.interface
              Requirement of transaction<2.0.0: zope.interface
              Requirement of ZODB<4.999,>=4.2.0b1: zodbpickle>=0.6.0
              Requirement of ZODB<4.999,>=4.2.0b1: zope.interface
              Requirement of ZODB<4.999,>=4.2.0b1: zc.lockfile
              Requirement of ZODB<4.999,>=4.2.0b1: six
              Requirement of ZODB<4.999,>=4.2.0b1: transaction>=1.5.0
              Requirement of ZODB<4.999,>=4.2.0b1: ZConfig
              Requirement of ZODB<4.999,>=4.2.0b1: BTrees>=4.2.0
              Requirement of ZODB<4.999,>=4.2.0b1: persistent>=4.2.0
              Requirement of neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]: ZODB3>=3.10dev
              Requirement of neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]: mysqlclient
              Requirement of neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]: setproctitle
              Requirement of neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]: msgpack>=0.5.6
              Requirement of neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]: ZODB3>=3.10dev
              Requirement of neoppod[admin,client,ctl,master,storage-importer,storage-mysqldb,storage-sqlite]: python-dateutil
              Requirement of python-dateutil: six>=1.5
              Requirement of gevent: greenlet>=0.4.17
              Requirement of gevent: setuptools
              Requirement of gevent: zope.interface
              Requirement of gevent: zope.event
            Getting distribution for 'scipy==0.19.0'.
          Error: Couldn't install: scipy 0.19.0
      
      -> Fix it by explicitly installing SciPy via our component/scipy/ which lists numpy in its setup_eggs.
      
      [1] https://lab.nexedi.com/kirr/wendelin.core/blob/5e647b59/setup.py#L384-386
      c8c3071f
    • Xavier Thompson's avatar
      slapos-sr-testing: Fix default parameters handling · a4f7af38
      Xavier Thompson authored
      If `only-sr` is not provided, all the SR tests should run.
      
      Fixes merge request nexedi/slapos!1011
      a4f7af38
  5. 09 Aug, 2021 2 commits
  6. 06 Aug, 2021 2 commits
    • Jérome Perrin's avatar
      software/repman: retry requests to prevent flaky test · 4ef735c6
      Jérome Perrin authored
      Test was sometimes failing with:
      
      ======================================================================
      FAIL: test_http_get (test.TestRepman)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "slapos-repository/software/repman/test/test.py", line 81, in test_http_get
          self.assertTrue(cluster['isProvision'])
      AssertionError: False is not true
      
      It can take a little time before everything is ready and we don't have a
      promise for this, because it's really application level.
      4ef735c6
    • Jérome Perrin's avatar
      Minor fixes to schemas · 926d2097
      Jérome Perrin authored
      See merge request nexedi/slapos!1031
      926d2097
  7. 05 Aug, 2021 4 commits
  8. 03 Aug, 2021 1 commit
    • Kirill Smelkov's avatar
      Merge branch 'master' into master+ZODB4-wc2 · a3b1a098
      Kirill Smelkov authored
      * master:
        Revert "stack/monitor: cleanup deprecated (and confusing) config"
        software/caddy/test: prevent tracebacks during tests
        software/theia/test: adjust test for slapos.core 1.6.15
        software/restic: keep using check-secure = 1
        stack/monitor: don't enable check-monitor-password-promise yet
        component/tesseract: declare a minimal gcc version
        *: review promises for slapos.toolbox 0.123 compatibility
        stack/monitor: repair check-monitor-password-promise
        stack/slapos: version up slapos.core (1.6.17)
        stack/erp5: Make replicating mariadb write to their own binlogs.
        stack/slapos: version up slapos.core (1.6.15)
      a3b1a098
  9. 02 Aug, 2021 9 commits
  10. 30 Jul, 2021 1 commit
    • Vincent Pelletier's avatar
      stack/erp5: Make replicating mariadb write to their own binlogs. · 2b1d5b16
      Vincent Pelletier authored
      This change has no effect on stand-alone setups (which is what is
      automatically deployed).
      On setups configured to replicate from another database, it allows them to
      takeover the role of the primary server, which allows rebuilding a
      redundant setup. On such setup, the cost of this option is the extra I/O
      load of binlogs being written to (in addition to the relay log and
      database), and the corresponding disk space use.
      2b1d5b16
  11. 29 Jul, 2021 4 commits
    • Łukasz Nowak's avatar
      41af80a5
    • Kirill Smelkov's avatar
      Merge branch 'master' into master+ZODB4-wc2 · baf3d470
      Kirill Smelkov authored
      * master:
        stack/monitor: cleanup deprecated (and confusing) config
        Fix build for zodbtools/pygolang/nxdtest/... tests
        stack/lamp: remove old comment
        stack/monitor: change frontend url promise to use username/password
        upgrade to slapos.toolbox version 0.123
      baf3d470
    • Thomas Gambier's avatar
    • Kirill Smelkov's avatar
      Fix build for zodbtools/pygolang/nxdtest/... tests · 3d6db516
      Kirill Smelkov authored
      Commit 7d1ea024 (version up: zc.buildout 2.7.1+slapos013) switched buildout to
      not use egg wheels, even for wheels that are source-only without any binaries.
      As the result some eggs stopped to install because they setup_require other
      eggs and neither buildout handles setup_requires automatically, nor there is
      explicit setup_require declaration in corresponding components.
      
      An example of such egg is python-dateutil: it setup_requires setuptools-scm,
      and without switching python-dateutil to zc.recipe.egg:custom with
      setup_requires the build fails.
      
      The way 7d1ea024 used to workaround this is to mark all such eggs with :whl
      suffix marking them that "it is ok to use wheel for this particular egg". The
      complete list of eggs for which such markings was done in 7d1ea024 is:
      
          ipykernel
          plantuml
          mock
          PasteScript
          backports.functools-lru-cache
          cliff
          stevedore
          CacheControl
          pytest-runner
          jsonschema
          lockfile
          python-dateutil
      
      However this list is not really complete because after 7d1ea024 the build
      started to fail for e.g. zodbtools test:
      
              Traceback (most recent call last):
                File "<string>", line 10, in <module>
                File "/srv/slapgrid/slappart16/srv/testnode/dfp/soft/c670f74c8de08964f63c4b9f7d48c3d1/eggs/setuptools-44.1.1-py2.7.egg/setuptools/command/easy_install.py", line 2321, in main
                ...
                File "/srv/slapgrid/slappart16/srv/testnode/dfp/soft/c670f74c8de08964f63c4b9f7d48c3d1/eggs/setuptools-44.1.1-py2.7.egg/pkg_resources/__init__.py", line 786, in resolve
                  raise DistributionNotFound(req, requirers)
              pkg_resources.DistributionNotFound: The 'setuptools-scm' distribution was not found and is required by the application
              An error occurred when trying to install pytest 4.6.11. Look above this message for any errors that were output by easy_install.
              While:
                Installing zodbtools-python.
                Base installation request: 'zodbtools[test]'
                  Requirement of zodbtools[test]: mock
                  Requirement of zodbtools[test]: pytz
                  Requirement of zodbtools[test]: freezegun
                  Requirement of zodbtools[test]: pytest
                  Requirement of zodbtools[test]: dateparser
                  Requirement of zodbtools[test]: six
                  Requirement of zodbtools[test]: pygolang>=0.0.0.dev6
                  Requirement of zodbtools[test]: zope.interface
                  Requirement of zodbtools[test]: zodburi
                  Requirement of zodbtools[test]: ZODB
                  Requirement of mock: funcsigs>=1
                  Requirement of mock: six
                  Requirement of freezegun: python-dateutil>=2.7
                Getting distribution for 'pytest==4.6.11'.
              Error: Couldn't install: pytest 4.6.11
      
      and similarly for pygolang and nxdtest tests.
      
      I would be more comfortable if the fix would be to teach buildout to either
      handle setup_requires automatically, or to automatically install wheels if the
      wheel is source-only. However, given the way - that 7d1ea024 started to use
      to handle such situations - let's fix this via explicitly marking pytest, and
      other related eggs that setup_require something and are source-only, as :whl.
      
      NOTE we did not notice the problem earlier because on testnodes, after the
      switch to new buildout, pytest egg was already installed and incremental
      rebuild did not need to reinstall pytest egg. So most of pygolang and zodbtools
      test results remained in "ok" state, and only zodbtools-kirr, that was recently
      reconfigured or changed testnode, indicated this issue. That's why the problem
      remained unnoticed for a long time.
      
      /reviewed-by @jerome
      /reviewed-on nexedi/slapos!1026
      3d6db516
  12. 28 Jul, 2021 2 commits