dgs-framework icon indicating copy to clipboard operation
dgs-framework copied to clipboard

Add binary compatibility gradle plugin

Open kilink opened this issue 2 years ago • 1 comments

Add kotlinx.binary-compatibility-validator gradle plugin, which runs during the gradle check task to ensure that the binary compatibility of any packages is not inadvertently broken.

See: https://github.com/Kotlin/binary-compatibility-validator

kilink avatar May 18 '22 08:05 kilink

Thanks for the pr @kilink , I'm thinking that if we use the plugin we should probably be explicit on the packages, and or classes, we want to be strict with. E.g. It doesn't make sense for me to have the Auto Configurations be part of the scan.

Example of build failure on an autoconf.

  -	public fun dgsSchemaProvider (Lorg/springframework/context/ApplicationContext;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Lorg/springframework/beans/factory/ObjectProvider;Ljava/util/List;Ljava/util/Optional;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/EntityFetcherRegistry;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/method/MethodDataFetcherFactory;)Lcom/netflix/graphql/dgs/internal/DgsSchemaProvider;
  -	public static synthetic fun dgsSchemaProvider$default (Lcom/netflix/graphql/dgs/autoconfig/DgsAutoConfiguration;Lorg/springframework/context/ApplicationContext;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Lorg/springframework/beans/factory/ObjectProvider;Ljava/util/List;Ljava/util/Optional;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/EntityFetcherRegistry;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/method/MethodDataFetcherFactory;ILjava/lang/Object;)Lcom/netflix/graphql/dgs/internal/DgsSchemaProvider;
  +	public fun dgsSchemaProvider (Lorg/springframework/context/ApplicationContext;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Lorg/springframework/beans/factory/ObjectProvider;Ljava/util/List;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/EntityFetcherRegistry;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/method/MethodDataFetcherFactory;)Lcom/netflix/graphql/dgs/internal/DgsSchemaProvider;
  +	public static synthetic fun dgsSchemaProvider$default (Lcom/netflix/graphql/dgs/autoconfig/DgsAutoConfiguration;Lorg/springframework/context/ApplicationContext;Ljava/util/Optional;Ljava/util/Optional;Ljava/util/Optional;Lorg/springframework/beans/factory/ObjectProvider;Ljava/util/List;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/EntityFetcherRegistry;Ljava/util/Optional;Lcom/netflix/graphql/dgs/internal/method/MethodDataFetcherFactory;ILjava/lang/Object;)Lcom/netflix/graphql/dgs/internal/DgsSchemaProvider;

berngp avatar May 18 '22 17:05 berngp