1. 28 Oct, 2019 1 commit
    • Jérome Perrin's avatar
      test_result: Support evaluating test result status per line · 1f6e69bb
      Jérome Perrin authored
      This is to support SLAPOS-EGG-TEST which runs tests for multiple
      repositories from the same test suite. Evaluating each commit from
      each repository with the result of the test result is problematic because
      every time one test fail, all repositories are marked as failed.
      
      Introduce a new property on test result repository to optionally define
      the pattern of test result line to consider for this repository. This way,
      with our SLAPOS-EGG-TEST running tests for slapos, slapos.core,
      ... etc and producing test result line with the same title as the repository
      name, we can use something like `slapos$` (the pattern is a regular expression)
      to match only slapos,  `slapos\.core` to match only slapos.core etc.
      
      This also allow to define more complex relation if necessary, for example kedifa
      and caucase seems related, maybe we want to configure so that a failure on kedifa
      test suite marks the commits from both kedifa and caucase as failed (or maybe
      not, but at least this way should make it possible)
      1f6e69bb
  2. 16 Oct, 2019 1 commit
    • Arnaud Fontaine's avatar
      ZODB Components: List of migratable 'Module Components' in Products.XXX.*... · f675c0fb
      Arnaud Fontaine authored
      ZODB Components: List of migratable 'Module Components' in Products.XXX.* should include any kind of objects and not only modules.
      
      This fixes Products.ERP5VCS.Git module not being displayed because
      Products.ERP5VCS.__init__ only imports one of its class and not the whole
      module (and the module was not imported anywhere else too) so it was not in
      Products.ERP5VCS.__dict__.
      f675c0fb
  3. 15 Oct, 2019 2 commits
  4. 14 Oct, 2019 1 commit
  5. 11 Oct, 2019 2 commits
  6. 10 Oct, 2019 7 commits
  7. 09 Oct, 2019 7 commits
  8. 08 Oct, 2019 4 commits
  9. 07 Oct, 2019 7 commits
  10. 05 Oct, 2019 3 commits
  11. 04 Oct, 2019 5 commits
    • Julien Muchembled's avatar
      Optimize WorkflowHistoryList · 1ca655a3
      Julien Muchembled authored
      This is done by inheriting most of the code of ConflictFreeLog,
      i.e. using a doubly-linked list:
      - for fast iteration of the first elements, and in particular
        immediate access to the first element (used for creation date);
      - that keeps track of the history length;
      - that implement fast reverse iteration (although it could
        have been done without changing the data structure).
      
      The size of buckets is not fixed anymore to 16 items:
      like ConflictFreeLog, WorkflowHistoryList is also a good candidate
      to look at the estimated serialized size of the bucket in order to
      decide if elements should be added to a new one or not.
      Then developers won't have to care about using Pdata or not.
      
      The size is bigger than the ConflictFreeLog default,
      because workflow items look a lot alike and adding
      a few more is cheap when the ZODB compresses.
      
      No more optimized __getstate__ (except for workflow histories that
      have not been migrated) so BT export will be a bit more verbose.
      
      The BBB code is because of
        nexedi/erp5!934
      
      /reviewed-on nexedi/erp5!941
      1ca655a3
    • Arnaud Fontaine's avatar
      ZODB Components: Before migrating Interfaces from FS, there must be one... · 694c9fee
      Arnaud Fontaine authored
      ZODB Components: Before migrating Interfaces from FS, there must be one Interface class per source file matching its name.
      
      Same as Document class: this avoids registering Interfaces at startup and just do it
      when using the Interface. In assuming that portal_components/XXX has a class
      name equals to XXX.getRference(), it is easier to:
       * List all existing Interfaces (for example in Portal Type Class view): getReference()
         on all validated 'Interface Component' in portal_components.
       * Lookup for an 'Interface Component': 'from erp5.component.interfaces.XXX import XXX'.
      694c9fee
    • Arnaud Fontaine's avatar
      ZODB Components: Properly handle addition of template_* properties in... · d9627917
      Arnaud Fontaine authored
      ZODB Components: Properly handle addition of template_* properties in BusinessTemplate PropertySheet.
      
      On the plus side, this avoids an ugly 'except AttributeError: pass' which does
      not work anyway with the scenario below.
      
      Assuming the following:
        * template_XXX Property (accessor: getTemplateXXX) recently added to BusinessTemplate PropertySheet.
        * erp5_YYY sets template_A Property (erp5_YYY/bt/template_XXX.xml).
        This commit handles the following:
          1. Stop instance with old ERP5 without template_XXX.
          2. Update erp5.git.
          3. Start instance.
          4. Upgrade erp5_property_sheets and erp5_YYY bt5s in *one* transaction from portal_templates UI.
          => When upgrading erp5_YYY, BusinessTemplate.importFile() imports erp5_YYY/bt/*.xml where the
             list of files is based on BusinessTemplate class propertyMap(), but at this point accessors
             have not been re-generated yet, thus template_XXX is not returned by propertyMap() and
             erp5_YYY/bt/template_XXX.xml is not imported.
             => portal_templates/erp5_YYY new BT does not have template_XXX property set at all.
      d9627917
    • Ivan Tyagov's avatar
      Default ERP5 instanciation uses following schema for naming all zope nodes: · 0a66e514
      Ivan Tyagov authored
        <family_name>-0..9 when number of nodes <= 10
        <family_name>-01..09 (or n) when number of nodes > 10
      
      In scalability tests instance keeps track of old used nodes and when nodes > 10
      will pick by default sort "activity-0" which is NO longer an existing zope process.
      This is an ugly fix and real woraround is to have something like activities-000x schema by default
      0a66e514
    • Arnaud Fontaine's avatar
      runUnitTest: 6f1c45c6 wrongly assumed that '--erp5_sql_connection_string' is always passed. · a3c40d0b
      Arnaud Fontaine authored
      This is the case with runUnitTest wrapper created by SlapOS but is not actually required
      as manage_addERP5Site has 'test test' as default value.
      
      This fixes:
        File "custom_zodb.py", line 70, in <module>
          sql_db = Products.ZMySQLDA.db.DB(os.environ['erp5_sql_connection_string'])
        File "UserDict.py", line 40, in __getitem__
          raise KeyError(key)
      KeyError: 'erp5_sql_connection_string'
      a3c40d0b