[ 
https://issues.apache.org/jira/browse/CALCITE-572?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14311896#comment-14311896
 ] 

Vladimir Sitnikov commented on CALCITE-572:
-------------------------------------------

I've just tried a plugin to check backward compatibility (the first link on 
Google), and the results are not that good.

Should we include some kind of automatic testing of backward compatibility in 
our build system?
{noformat}
[INFO] Checking backward compatibility of 
org.apache.calcite:calcite-core:jar:1.1.0-incubating-SNAPSHOT against 
org.apache.calcite:calcite-core:jar:1.0.0-incubating:compile
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableCalc.java: Could not 
find method copy in newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableCalc.java: Could not 
find method copy in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalCalc.java: Could not find method 
copy in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalCalc.java: Could not find method 
copy in newer version.
[ERROR] org/apache/calcite/schema/Statistics.java: Could not find method <init> 
in newer version.
[ERROR] org/apache/calcite/rel/RelCollation.java: 
org/apache/calcite/rel/RelCollation is not implementing 
org/apache/calcite/plan/RelTrait anymore.
[ERROR] org/apache/calcite/rel/logical/LogicalIntersect.java: Could not find 
field $assertionsDisabled in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalIntersect.java: Could not find 
method <clinit> in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find method 
access$100 in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find field 
$SwitchMap$org$apache$calcite$rel$RelFieldCollation$NullDirection in newer 
version.
[ERROR] org/apache/calcite/plan/RelTraitSet.java: Could not find method 
subsumes in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find field flags in 
newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find field 
collationList in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method <init> 
in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method 
getCollationList in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method isBoxed 
in newer version.
[ERROR] org/apache/calcite/rel/core/Project.java: Could not find method 
getFlags in newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableProject.java: Could not 
find method <init> in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find field 
val$fieldCollation in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find method 
<init> in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find field 
val$fieldCollation in newer version.
[ERROR] org/apache/calcite/interpreter/SortNode.java: Could not find method 
<init> in newer version.
[ERROR] org/apache/calcite/prepare/Prepare.java: Could not find method optimize 
in newer version.
[ERROR] org/apache/calcite/interpreter/BindableConvention.java: Could not find 
method subsumes in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: 
org/apache/calcite/plan/RelOptUtil$11 extends java/util/AbstractList and not 
java/lang/Object anymore.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find field 
$SwitchMap$org$apache$calcite$plan$RelOptUtil$Logic in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find field 
$SwitchMap$org$apache$calcite$plan$RelOptUtil$SubqueryType in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find field 
$SwitchMap$org$apache$calcite$sql$SqlKind in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method <clinit> 
in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: The class 
org/apache/calcite/plan/RelOptUtil$11 has been made final, this breaks 
inheritance.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find field 
flags in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method 
<init> in newer version.
[ERROR] org/apache/calcite/rex/RexProgram.java: Could not find method apply in 
newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalProject.java: Could not find 
method <init> in newer version.
[ERROR] org/apache/calcite/rel/logical/LogicalProject.java: Could not find 
method <init> in newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableConvention.java: Could 
not find method subsumes in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method 
copy in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method 
copy in newer version.
[ERROR] org/apache/calcite/plan/RelTrait.java: Could not find method subsumes 
in newer version.
[ERROR] org/apache/calcite/rel/core/Calc.java: Could not find method 
getCollationList in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method get in 
newer version.
[ERROR] org/apache/calcite/adapter/enumerable/EnumerableValues.java(51): The 
visibility of the <init> method has been changed from NO_SCOPE to PRIVATE
[ERROR] org/apache/calcite/rel/core/Project.java: Public class 
org/apache/calcite/rel/core/Project$Flags has been removed.
[ERROR] org/apache/calcite/interpreter/Bindables.java: Could not find method 
<init> in newer version.
[ERROR] org/apache/calcite/rel/core/Sort.java: The class 
org/apache/calcite/rel/core/Sort has been made abstract.
[ERROR] org/apache/calcite/rel/core/Sort.java(122): The method copy has been 
made final, this now prevents overriding.
[ERROR] org/apache/calcite/rel/core/Sort.java(127): The method copy has been 
made final, this now prevents overriding.
[ERROR] org/apache/calcite/adapter/clone/ArrayTable.java: Could not find method 
access$200 in newer version.
[ERROR] org/apache/calcite/adapter/clone/ArrayTable.java: Could not find method 
access$300 in newer version.
[ERROR] org/apache/calcite/interpreter/InterpretableConvention.java: Could not 
find method subsumes in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method 
classifyFilters in newer version.
[ERROR] org/apache/calcite/plan/RelOptUtil.java: Could not find method project 
in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find field 
EMPTY in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find field 
PRESERVE in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find field 
$assertionsDisabled in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method of 
in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method of 
in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method 
subsumes in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method 
createSingleton in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method 
isValid in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method 
equal in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method 
ordinals in newer version.
[ERROR] org/apache/calcite/rel/RelCollationImpl.java: Could not find method 
<clinit> in newer version.
[ERROR] org/apache/calcite/plan/Convention.java: Could not find method subsumes 
in newer version.
[ERROR] org/apache/calcite/plan/RelOptCluster.java: Could not find method 
traitSetOf in newer version.
[ERROR] org/apache/calcite/adapter/jdbc/JdbcRules.java: Could not find method 
<init> in newer version.
[ERROR] You have 66 backward compatibility issues.
{noformat}


{code:xml}
<plugin>
  <groupId>com.googlecode.japi-checker</groupId>
  <artifactId>japi-checker-maven-plugin</artifactId>
  <version>0.1.4</version> <!-- The check is still in development at the moment 
so snapshot is the only way to get it. -->
  <configuration>
    <reference>
      <!-- Replace here with the reference artifact of your project. -->
      <groupId>${project.groupId}</groupId>
      <artifactId>${project.artifactId}</artifactId>
      <version>1.0.0-incubating</version>
    </reference>
    <rules>
      <rule>com.googlecode.japi.checker.rules.AllRules</rule>
    </rules>
  </configuration>
  <executions>
    <execution>
      <id>check-bc</id> <!-- this is used for inheritance merges -->
      <phase>verify</phase> <!-- bind to the packaging phase -->
      <goals>
        <goal>check</goal>
      </goals>
    </execution>
  </executions>
</plugin>
{code}

> Remove Project.flags
> --------------------
>
>                 Key: CALCITE-572
>                 URL: https://issues.apache.org/jira/browse/CALCITE-572
>             Project: Calcite
>          Issue Type: Improvement
>    Affects Versions: 1.0.0-incubating
>            Reporter: Vladimir Sitnikov
>            Assignee: Julian Hyde
>             Fix For: 1.1.0-incubating
>
>
> Project.flags has no meaning under current code base.
> It need to be removed with Project.Flags class



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to