Uploaded image for project: 'UIMA'
  1. UIMA
  2. UIMA-4483

Ruta: semantic versioning for ruta-core

    Details

    • Type: Task
    • Status: Resolved
    • Priority: Minor
    • Resolution: Fixed
    • Affects Version/s: 2.3.1ruta
    • Fix Version/s: 2.3.1ruta
    • Component/s: Ruta
    • Labels:
      None

      Description

      I think semantic versioning should only be applied for ruta-core. The other artifacts, especially the eclipse plugins, do probably not possess the necessary "code quality".

        Activity

        Hide
        pkluegl Peter Klügl added a comment - - edited

        Hmm... fixing the inlined rules bug made the next version "not backward compatible".
        Maybe semantic versioning does not apply well for ruta since it is not really a java library. I will remove fixVersion for this issue.

        Richard/Marshall, do you have an advice here?

        It says:

        Class org.apache.uima.ruta.rule.AbstractRuleElement
         Added Method processInlinedRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Ljava/util/List;Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected
         Removed Field inlineMode, desc Z, access protected
         Added Method setInlinedActionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access public
         Removed Method setInlinedRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access public
         Added Field inlinedConditionRules, sig Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc Ljava/util/List;, access protected
         Added Method getInlinedActionRules, sig ()Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc ()Ljava/util/List;, access public
         Removed Method processInlinedBlockRules, sig (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected
         Removed Field inlinedRules, sig Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc Ljava/util/List;, access protected
         Added Method processInlinedActionRules, sig (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected
         Added Field inlinedActionRules, sig Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc Ljava/util/List;, access protected
         Removed Method processInlinedRules, sig (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected
         Removed Method getInlinedRules, sig ()Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc ()Ljava/util/List;, access public
         Removed Method getInlineMode, desc ()Z, access public
         Removed Method setInlineMode, desc (Z)V, access public
         Added Method setInlinedConditionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access public
         Added Method getInlinedConditionRules, sig ()Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc ()Ljava/util/List;, access public
        Class org.apache.uima.ruta.rule.RuleElement
         Removed Method setInlineMode, desc (Z)V, access abstract public
         Added Method setInlinedConditionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access abstract public
         Added Method setInlinedActionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access abstract public
         Removed Method setInlinedRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access abstract public
        [WARNING] Rule 0: org.semver.enforcer.RequireBackwardCompatibility failed with message:
        Current codebase is not backward compatible (BACKWARD_COMPATIBLE_USER) with version <2.3.0>. Compatibility type has been detected as <NON_BACKWARD_COMPATIBLE>
        
        Show
        pkluegl Peter Klügl added a comment - - edited Hmm... fixing the inlined rules bug made the next version "not backward compatible". Maybe semantic versioning does not apply well for ruta since it is not really a java library. I will remove fixVersion for this issue. Richard/Marshall, do you have an advice here? It says: Class org.apache.uima.ruta.rule.AbstractRuleElement Added Method processInlinedRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Ljava/util/List;Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected Removed Field inlineMode, desc Z, access protected Added Method setInlinedActionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access public Removed Method setInlinedRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access public Added Field inlinedConditionRules, sig Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc Ljava/util/List;, access protected Added Method getInlinedActionRules, sig ()Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc ()Ljava/util/List;, access public Removed Method processInlinedBlockRules, sig (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected Removed Field inlinedRules, sig Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc Ljava/util/List;, access protected Added Method processInlinedActionRules, sig (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected Added Field inlinedActionRules, sig Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc Ljava/util/List;, access protected Removed Method processInlinedRules, sig (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List<Lorg/apache/uima/ruta/ScriptApply;>;, desc (Lorg/apache/uima/ruta/rule/RuleMatch;Lorg/apache/uima/ruta/RutaStream;Lorg/apache/uima/ruta/visitor/InferenceCrowd;)Ljava/util/List;, access protected Removed Method getInlinedRules, sig ()Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc ()Ljava/util/List;, access public Removed Method getInlineMode, desc ()Z, access public Removed Method setInlineMode, desc (Z)V, access public Added Method setInlinedConditionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access public Added Method getInlinedConditionRules, sig ()Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;, desc ()Ljava/util/List;, access public Class org.apache.uima.ruta.rule.RuleElement Removed Method setInlineMode, desc (Z)V, access abstract public Added Method setInlinedConditionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access abstract public Added Method setInlinedActionRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access abstract public Removed Method setInlinedRules, sig (Ljava/util/List<Lorg/apache/uima/ruta/RutaStatement;>;)V, desc (Ljava/util/List;)V, access abstract public [WARNING] Rule 0: org.semver.enforcer.RequireBackwardCompatibility failed with message: Current codebase is not backward compatible (BACKWARD_COMPATIBLE_USER) with version <2.3.0>. Compatibility type has been detected as <NON_BACKWARD_COMPATIBLE>
        Hide
        rec Richard Eckart de Castilho added a comment -

        You can configure the plugin to exclude certain packages. I think I configured it by default to exclude all packages that contain "internal". You should exclude all packages that you do not consider to the public API. I guess the most "public" API that Ruta has is this "apply" function and probably also the Analysis Engine itself. You decide what you consider to be public. The deal is that non-public API may change/break between versions.

        Show
        rec Richard Eckart de Castilho added a comment - You can configure the plugin to exclude certain packages. I think I configured it by default to exclude all packages that contain "internal". You should exclude all packages that you do not consider to the public API. I guess the most "public" API that Ruta has is this "apply" function and probably also the Analysis Engine itself. You decide what you consider to be public. The deal is that non-public API may change/break between versions.
        Hide
        pkluegl Peter Klügl added a comment -

        Thanks, Richard.

        Yes, I've seen that and I already excluded the generated parser (pages over pages of problems).

        Ruta is essentially an analysis engine, so I restricted it to the org.apache.uima.ruta.engine where the analysis engine implementations and Ruta.java are located. Now it's BACKWARD_COMPATIBLE_IMPLEMENTER

        I don't know how meaningful it is to check it only for one package. I will do some more testing and will include the package that contains the new code for generating descriptors from ruta scripts.

        Show
        pkluegl Peter Klügl added a comment - Thanks, Richard. Yes, I've seen that and I already excluded the generated parser (pages over pages of problems). Ruta is essentially an analysis engine, so I restricted it to the org.apache.uima.ruta.engine where the analysis engine implementations and Ruta.java are located. Now it's BACKWARD_COMPATIBLE_IMPLEMENTER I don't know how meaningful it is to check it only for one package. I will do some more testing and will include the package that contains the new code for generating descriptors from ruta scripts.
        Hide
        pkluegl Peter Klügl added a comment -

        fixed

        Show
        pkluegl Peter Klügl added a comment - fixed
        Hide
        pkluegl Peter Klügl added a comment -

        marker file name and rat

        Show
        pkluegl Peter Klügl added a comment - marker file name and rat
        Hide
        pkluegl Peter Klügl added a comment -

        fixed

        Show
        pkluegl Peter Klügl added a comment - fixed

          People

          • Assignee:
            pkluegl Peter Klügl
            Reporter:
            pkluegl Peter Klügl
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development