[ 
https://issues.apache.org/jira/browse/IGNITE-26365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Vadim Kolodin updated IGNITE-26365:
-----------------------------------
    Description: 
*Description*

https://issues.apache.org/jira/browse/IGNITE-24458 introduced new test 
org.apache.ignite.internal.ItApiCompatibilityTest#testApiModule, which found 
incompatible changes of version `ignite-api-3.1.0-SNAPSHOT` with the previous 
version `ignite-api-3.0.0` (full report in attachment).

All incompatibilities in test exclusions for now.
{code:java}
@ApiCompatibilityTest(
        newVersion = "3.1.0-SNAPSHOT",
        oldVersions = "3.0.0",
        exclude = ""
                + "org.apache.ignite.Ignite#clusterNodes();" // deprecated
                + "org.apache.ignite.Ignite#clusterNodesAsync();" // deprecated
                + 
"org.apache.ignite.catalog.IgniteCatalog#dropTable(java.lang.String);" // 
method abstract now default
                + 
"org.apache.ignite.catalog.IgniteCatalog#dropTableAsync(java.lang.String);" // 
method abstract now default
                + 
"org.apache.ignite.catalog.IgniteCatalog#tableDefinition(java.lang.String);" // 
method abstract now default
                + 
"org.apache.ignite.catalog.IgniteCatalog#tableDefinitionAsync(java.lang.String);"
 // method abstract now default
                + "org.apache.ignite.compute.ColocatedJobTarget;" // method 
return type changed
                + "org.apache.ignite.compute.TableJobTarget;" // method return 
type changed
                + "org.apache.ignite.lang.ColumnNotFoundException;" // 
deprecated
                + "org.apache.ignite.lang.IndexAlreadyExistsException;" // 
deprecated
                + "org.apache.ignite.lang.IndexNotFoundException;" // deprecated
                + "org.apache.ignite.lang.TableAlreadyExistsException;" // 
deprecated
                + "org.apache.ignite.lang.TableNotFoundException;" // 
constructor removed
                + "org.apache.ignite.lang.util.IgniteNameUtils;" // methods 
removed, less accessible
                + "org.apache.ignite.sql.IgniteSql;" // method abstract now 
default
                + "org.apache.ignite.table.DataStreamerTarget;" // method 
abstract now default
                + "org.apache.ignite.table.IgniteTables;" // method abstract 
now default
                + "org.apache.ignite.table.QualifiedName;" // now final, 
serializable
                + "org.apache.ignite.table.Table;" // method abstract now 
default
)
void testApiModule(CompatibilityOutput output) {} {code}
 

*Motivation*

Maintain compilation compatibility.

 

*Definition of done*

Resolve incompatibilities or add explanation per exclusion.

  was:
https://issues.apache.org/jira/browse/IGNITE-24458 introduced new test 
org.apache.ignite.internal.ItApiCompatibilityTest#testApiModule, which found 
incompatible changes of version `ignite-api-3.1.0-SNAPSHOT` with the previous 
version `ignite-api-3.0.0` (full report in attachment).

All incompatibilities in test exclusions for now.
{code:java}
@ApiCompatibilityTest(
        newVersion = "3.1.0-SNAPSHOT",
        oldVersions = "3.0.0",
        exclude = ""
                + "org.apache.ignite.Ignite#clusterNodes();" // deprecated
                + "org.apache.ignite.Ignite#clusterNodesAsync();" // deprecated
                + 
"org.apache.ignite.catalog.IgniteCatalog#dropTable(java.lang.String);" // 
method abstract now default
                + 
"org.apache.ignite.catalog.IgniteCatalog#dropTableAsync(java.lang.String);" // 
method abstract now default
                + 
"org.apache.ignite.catalog.IgniteCatalog#tableDefinition(java.lang.String);" // 
method abstract now default
                + 
"org.apache.ignite.catalog.IgniteCatalog#tableDefinitionAsync(java.lang.String);"
 // method abstract now default
                + 
"org.apache.ignite.catalog.annotations.Zone#dataNodesAutoAdjust();" // removed
                + 
"org.apache.ignite.catalog.definitions.ZoneDefinition#dataNodesAutoAdjust();"  
// removed
                + 
"org.apache.ignite.catalog.definitions.ZoneDefinition$Builder#dataNodesAutoAdjust(java.lang.Integer);"
  // removed
                + "org.apache.ignite.compute.ColocatedJobTarget;" // method 
return type changed
                + "org.apache.ignite.compute.TableJobTarget;" // method return 
type changed
                + "org.apache.ignite.lang.ColumnNotFoundException;" // 
deprecated
                + "org.apache.ignite.lang.IndexAlreadyExistsException;" // 
deprecated
                + "org.apache.ignite.lang.IndexNotFoundException;" // deprecated
                + "org.apache.ignite.lang.TableAlreadyExistsException;" // 
deprecated
                + "org.apache.ignite.lang.TableNotFoundException;" // 
constructor removed
                + "org.apache.ignite.lang.util.IgniteNameUtils;" // methods 
removed, less accessible
                + "org.apache.ignite.sql.IgniteSql;" // method abstract now 
default
                + "org.apache.ignite.table.DataStreamerTarget;" // method 
abstract now default
                + "org.apache.ignite.table.IgniteTables;" // method abstract 
now default
                + "org.apache.ignite.table.QualifiedName;" // now final, 
serializable
                + "org.apache.ignite.table.Table;" // method abstract now 
default
)
void testApiModule(CompatibilityOutput output) {} {code}
 

Need to resolve incompatibilities or add explanation per exclusion.


> Java API compatibility resolve exclusions
> -----------------------------------------
>
>                 Key: IGNITE-26365
>                 URL: https://issues.apache.org/jira/browse/IGNITE-26365
>             Project: Ignite
>          Issue Type: Improvement
>          Components: platforms
>            Reporter: Vadim Kolodin
>            Priority: Major
>              Labels: compatibility, ignite-3
>         Attachments: Compatibility Report.md
>
>
> *Description*
> https://issues.apache.org/jira/browse/IGNITE-24458 introduced new test 
> org.apache.ignite.internal.ItApiCompatibilityTest#testApiModule, which found 
> incompatible changes of version `ignite-api-3.1.0-SNAPSHOT` with the previous 
> version `ignite-api-3.0.0` (full report in attachment).
> All incompatibilities in test exclusions for now.
> {code:java}
> @ApiCompatibilityTest(
>         newVersion = "3.1.0-SNAPSHOT",
>         oldVersions = "3.0.0",
>         exclude = ""
>                 + "org.apache.ignite.Ignite#clusterNodes();" // deprecated
>                 + "org.apache.ignite.Ignite#clusterNodesAsync();" // 
> deprecated
>                 + 
> "org.apache.ignite.catalog.IgniteCatalog#dropTable(java.lang.String);" // 
> method abstract now default
>                 + 
> "org.apache.ignite.catalog.IgniteCatalog#dropTableAsync(java.lang.String);" 
> // method abstract now default
>                 + 
> "org.apache.ignite.catalog.IgniteCatalog#tableDefinition(java.lang.String);" 
> // method abstract now default
>                 + 
> "org.apache.ignite.catalog.IgniteCatalog#tableDefinitionAsync(java.lang.String);"
>  // method abstract now default
>                 + "org.apache.ignite.compute.ColocatedJobTarget;" // method 
> return type changed
>                 + "org.apache.ignite.compute.TableJobTarget;" // method 
> return type changed
>                 + "org.apache.ignite.lang.ColumnNotFoundException;" // 
> deprecated
>                 + "org.apache.ignite.lang.IndexAlreadyExistsException;" // 
> deprecated
>                 + "org.apache.ignite.lang.IndexNotFoundException;" // 
> deprecated
>                 + "org.apache.ignite.lang.TableAlreadyExistsException;" // 
> deprecated
>                 + "org.apache.ignite.lang.TableNotFoundException;" // 
> constructor removed
>                 + "org.apache.ignite.lang.util.IgniteNameUtils;" // methods 
> removed, less accessible
>                 + "org.apache.ignite.sql.IgniteSql;" // method abstract now 
> default
>                 + "org.apache.ignite.table.DataStreamerTarget;" // method 
> abstract now default
>                 + "org.apache.ignite.table.IgniteTables;" // method abstract 
> now default
>                 + "org.apache.ignite.table.QualifiedName;" // now final, 
> serializable
>                 + "org.apache.ignite.table.Table;" // method abstract now 
> default
> )
> void testApiModule(CompatibilityOutput output) {} {code}
>  
> *Motivation*
> Maintain compilation compatibility.
>  
> *Definition of done*
> Resolve incompatibilities or add explanation per exclusion.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to