From 74e1bb33dcd6e1983f55ddacf6f2dd6b9a847c67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sergej=20Ko=C5=A1=C4=8Dejev?= Date: Mon, 7 Aug 2023 22:11:38 +0200 Subject: [PATCH] Introduce API checker plugin --- api/mps-gradle-plugin.api | 306 ++++++++++++++++++++++++++++++++++++ build.gradle.kts | 1 + buildscript-gradle.lockfile | 6 + 3 files changed, 313 insertions(+) create mode 100644 api/mps-gradle-plugin.api diff --git a/api/mps-gradle-plugin.api b/api/mps-gradle-plugin.api new file mode 100644 index 00000000..6d8bec9a --- /dev/null +++ b/api/mps-gradle-plugin.api @@ -0,0 +1,306 @@ +public class de/itemis/mps/gradle/BasePluginExtensions { + public fun (Lorg/gradle/api/model/ObjectFactory;)V + public final fun getBackendConfig ()Lorg/gradle/api/artifacts/Configuration; + public final fun getDebug ()Z + public final fun getEnvironmentKind ()Lorg/gradle/api/provider/Property; + public final fun getJavaExec ()Ljava/io/File; + public final fun getMacros ()Ljava/util/List; + public final fun getMaxHeap ()Ljava/lang/String; + public final fun getMpsConfig ()Lorg/gradle/api/artifacts/Configuration; + public final fun getMpsLocation ()Ljava/io/File; + public final fun getMpsVersion ()Ljava/lang/String; + public final fun getPluginLocation ()Ljava/io/File; + public final fun getPlugins ()Ljava/util/List; + public final fun getPluginsProperty ()Lorg/gradle/api/provider/ListProperty; + public final fun getProjectLocation ()Ljava/io/File; + public final fun setBackendConfig (Lorg/gradle/api/artifacts/Configuration;)V + public final fun setDebug (Z)V + public final fun setJavaExec (Ljava/io/File;)V + public final fun setMacros (Ljava/util/List;)V + public final fun setMaxHeap (Ljava/lang/String;)V + public final fun setMpsConfig (Lorg/gradle/api/artifacts/Configuration;)V + public final fun setMpsLocation (Ljava/io/File;)V + public final fun setMpsVersion (Ljava/lang/String;)V + public final fun setPluginLocation (Ljava/io/File;)V + public final fun setPlugins (Ljava/util/List;)V + public final fun setProjectLocation (Ljava/io/File;)V +} + +public class de/itemis/mps/gradle/BuildLanguages : de/itemis/mps/gradle/RunAntScript { + public fun ()V +} + +public class de/itemis/mps/gradle/BundleMacosJdk : org/gradle/api/DefaultTask, groovy/lang/GroovyObject { + public static synthetic field __$stMC Z + protected synthetic fun $getStaticMetaClass ()Lgroovy/lang/MetaClass; + public fun ()V + public fun build ()Ljava/lang/Object; + public fun getJdk ()Ljava/io/File; + public fun getJdkDirname ()Ljava/lang/String; + public fun getMetaClass ()Lgroovy/lang/MetaClass; + public fun getOutputFile ()Ljava/io/File; + public fun getRcpArtifact ()Ljava/io/File; + public fun setJdk (Ljava/lang/Object;)Ljava/lang/Object; + public fun setJdkDependency (Ljava/lang/Object;)Ljava/lang/Object; + public fun setJdkDirname (Ljava/lang/String;)Ljava/lang/Object; + public fun setMetaClass (Lgroovy/lang/MetaClass;)V + public fun setOutputFile (Ljava/lang/Object;)Ljava/lang/Object; + public fun setRcpArtifact (Ljava/lang/Object;)Ljava/lang/Object; +} + +public class de/itemis/mps/gradle/BundledScripts : groovy/lang/GroovyObject { + public static synthetic field __$stMC Z + protected synthetic fun $getStaticMetaClass ()Lgroovy/lang/MetaClass; + public fun ()V + public static fun extractScriptsToDir (Ljava/io/File;[Ljava/lang/String;)V + public fun getMetaClass ()Lgroovy/lang/MetaClass; + public fun setMetaClass (Lgroovy/lang/MetaClass;)V +} + +public final class de/itemis/mps/gradle/CommonKt { + public static final field MPS_BUILD_BACKENDS_VERSION Ljava/lang/String; + public static final field MPS_SUPPORT_MSG Ljava/lang/String; + public static final fun argsFromBaseExtension (Lde/itemis/mps/gradle/BasePluginExtensions;)Lorg/gradle/process/CommandLineArgumentProvider; + public static final fun getMPSVersion (Lde/itemis/mps/gradle/BasePluginExtensions;)Ljava/lang/String; + public static final fun validateDefaultJvm ()V +} + +public final class de/itemis/mps/gradle/CommonPlugin : org/gradle/api/Plugin { + public fun ()V + public synthetic fun apply (Ljava/lang/Object;)V + public fun apply (Lorg/gradle/api/Project;)V +} + +public class de/itemis/mps/gradle/Common_gradle : org/gradle/kotlin/dsl/precompile/v1/PrecompiledProjectScript { + public final field $$implicitReceiver0 Lorg/gradle/api/Project; + public fun (Lorg/gradle/api/Project;Lorg/gradle/api/Project;)V + public static final fun main ([Ljava/lang/String;)V +} + +public class de/itemis/mps/gradle/CreateDmg : org/gradle/api/DefaultTask, groovy/lang/GroovyObject { + public static synthetic field __$stMC Z + protected synthetic fun $getStaticMetaClass ()Lgroovy/lang/MetaClass; + public fun ()V + public fun build ()Ljava/lang/Object; + public fun getBackgroundImage ()Ljava/io/File; + public fun getDmgFile ()Ljava/io/File; + public fun getJdk ()Ljava/io/File; + public fun getMetaClass ()Lgroovy/lang/MetaClass; + public fun getRcpArtifact ()Ljava/io/File; + public fun getSignIdentity ()Ljava/lang/String; + public fun getSignKeyChain ()Ljava/io/File; + public fun getSignKeyChainPassword ()Ljava/lang/String; + public fun setBackgroundImage (Ljava/lang/Object;)Ljava/lang/Object; + public fun setDmgFile (Ljava/lang/Object;)Ljava/lang/Object; + public fun setJdk (Ljava/lang/Object;)Ljava/lang/Object; + public fun setJdkDependency (Ljava/lang/Object;)Ljava/lang/Object; + public fun setMetaClass (Lgroovy/lang/MetaClass;)V + public fun setRcpArtifact (Ljava/lang/Object;)Ljava/lang/Object; + public fun setSignIdentity (Ljava/lang/String;)V + public fun setSignKeyChain (Ljava/lang/Object;)Ljava/lang/Object; + public fun setSignKeyChainPassword (Ljava/lang/String;)V +} + +public final class de/itemis/mps/gradle/EnvironmentKind : java/lang/Enum { + public static final field IDEA Lde/itemis/mps/gradle/EnvironmentKind; + public static final field MPS Lde/itemis/mps/gradle/EnvironmentKind; + public static fun valueOf (Ljava/lang/String;)Lde/itemis/mps/gradle/EnvironmentKind; + public static fun values ()[Lde/itemis/mps/gradle/EnvironmentKind; +} + +public class de/itemis/mps/gradle/GenerateLibrariesXml : org/gradle/api/DefaultTask, groovy/lang/GroovyObject { + public static synthetic field __$stMC Z + protected synthetic fun $getStaticMetaClass ()Lgroovy/lang/MetaClass; + public fun ()V + public fun generate ()Ljava/lang/Object; + public fun getDefaults ()Ljava/io/File; + public fun getDestination ()Ljava/io/File; + public fun getMetaClass ()Lgroovy/lang/MetaClass; + public fun getOverrides ()Ljava/io/File; + public fun setDefaults (Ljava/io/File;)V + public fun setDestination (Ljava/io/File;)V + public fun setMetaClass (Lgroovy/lang/MetaClass;)V + public fun setOverrides (Ljava/lang/Object;)V +} + +public class de/itemis/mps/gradle/GetMpsInBrowser : org/gradle/api/DefaultTask, groovy/lang/GroovyObject { + public static synthetic field __$stMC Z + protected synthetic fun $getStaticMetaClass ()Lgroovy/lang/MetaClass; + public fun ()V + public fun build ()Ljava/lang/Object; + public fun getMetaClass ()Lgroovy/lang/MetaClass; + public fun getVersion ()Ljava/lang/String; + public fun setMetaClass (Lgroovy/lang/MetaClass;)V + public fun setVersion (Ljava/lang/String;)Ljava/lang/Object; +} + +public final class de/itemis/mps/gradle/Macro { + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lde/itemis/mps/gradle/Macro; + public static synthetic fun copy$default (Lde/itemis/mps/gradle/Macro;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lde/itemis/mps/gradle/Macro; + public fun equals (Ljava/lang/Object;)Z + public final fun getName ()Ljava/lang/String; + public final fun getValue ()Ljava/lang/String; + public fun hashCode ()I + public final fun setName (Ljava/lang/String;)V + public final fun setValue (Ljava/lang/String;)V + public fun toString ()Ljava/lang/String; +} + +public final class de/itemis/mps/gradle/Plugin { + public fun (Ljava/lang/String;Ljava/lang/String;)V + public final fun component1 ()Ljava/lang/String; + public final fun component2 ()Ljava/lang/String; + public final fun copy (Ljava/lang/String;Ljava/lang/String;)Lde/itemis/mps/gradle/Plugin; + public static synthetic fun copy$default (Lde/itemis/mps/gradle/Plugin;Ljava/lang/String;Ljava/lang/String;ILjava/lang/Object;)Lde/itemis/mps/gradle/Plugin; + public fun equals (Ljava/lang/Object;)Z + public final fun getId ()Ljava/lang/String; + public final fun getPath ()Ljava/lang/String; + public fun hashCode ()I + public final fun setId (Ljava/lang/String;)V + public final fun setPath (Ljava/lang/String;)V + public fun toString ()Ljava/lang/String; +} + +public class de/itemis/mps/gradle/Pom : groovy/lang/GroovyObject { + public static synthetic field __$stMC Z + protected synthetic fun $getStaticMetaClass ()Lgroovy/lang/MetaClass; + public fun ()V + public fun getMetaClass ()Lgroovy/lang/MetaClass; + public fun setMetaClass (Lgroovy/lang/MetaClass;)V + public fun withDep (Lorg/gradle/api/publish/maven/MavenPom;Lorg/gradle/api/artifacts/Configuration;)Ljava/lang/Object; + public fun withProvidedDep (Lorg/gradle/api/publish/maven/MavenPom;Lorg/gradle/api/artifacts/Configuration;)Ljava/lang/Object; +} + +public class de/itemis/mps/gradle/RunAntScript : org/gradle/api/DefaultTask { + public field script Ljava/lang/Object; + public fun ()V + public final fun build ()V + public final fun executable (Ljava/lang/Object;)V + public final fun getExecutable ()Ljava/lang/Object; + public final fun getIncludeDefaultArgs ()Z + public final fun getIncludeDefaultClasspath ()Z + public final fun getIncremental ()Z + public final fun getScript ()Ljava/lang/Object; + public final fun getScriptArgs ()Ljava/util/List; + public final fun getScriptClasspath ()Lorg/gradle/api/file/FileCollection; + public final fun getTargets ()Ljava/util/List; + public final fun setExecutable (Ljava/lang/Object;)V + public final fun setIncludeDefaultArgs (Z)V + public final fun setIncludeDefaultClasspath (Z)V + public final fun setIncremental (Z)V + public final fun setScript (Ljava/lang/Object;)V + public final fun setScriptArgs (Ljava/util/List;)V + public final fun setScriptClasspath (Lorg/gradle/api/file/FileCollection;)V + public final fun setTargets (Ljava/util/List;)V + public final fun targets ([Ljava/lang/String;)V +} + +public class de/itemis/mps/gradle/TestLanguages : de/itemis/mps/gradle/RunAntScript { + public fun ()V +} + +public class de/itemis/mps/gradle/downloadJBR/DownloadJbrConfiguration { + public field jbrVersion Ljava/lang/String; + public fun ()V + public final fun getDistributionType ()Ljava/lang/String; + public final fun getDownloadDir ()Ljava/io/File; + public final fun getJbrVersion ()Ljava/lang/String; + public final fun setDistributionType (Ljava/lang/String;)V + public final fun setDownloadDir (Ljava/io/File;)V + public final fun setJbrVersion (Ljava/lang/String;)V +} + +public class de/itemis/mps/gradle/downloadJBR/DownloadJbrForPlatform : org/gradle/api/DefaultTask { + public field javaExecutable Ljava/io/File; + public field jbrDir Ljava/io/File; + public fun ()V + public final fun getJavaExecutable ()Ljava/io/File; + public final fun getJbrDir ()Ljava/io/File; + public final fun setJavaExecutable (Ljava/io/File;)V + public final fun setJbrDir (Ljava/io/File;)V +} + +public class de/itemis/mps/gradle/downloadJBR/DownloadJbrProjectPlugin : org/gradle/api/Plugin { + public fun ()V + public synthetic fun apply (Ljava/lang/Object;)V + public fun apply (Lorg/gradle/api/Project;)V +} + +public class de/itemis/mps/gradle/generate/FakeBuildNumberTask : org/gradle/api/DefaultTask { + public field mpsDir Ljava/io/File; + public fun ()V + public final fun fakeBuildNumber ()V + public final fun getBuildTxt ()Ljava/io/File; + public final fun getMpsDir ()Ljava/io/File; + public final fun setMpsDir (Ljava/io/File;)V +} + +public class de/itemis/mps/gradle/generate/GenerateMpsProjectPlugin : org/gradle/api/Plugin { + public fun ()V + public synthetic fun apply (Ljava/lang/Object;)V + public fun apply (Lorg/gradle/api/Project;)V +} + +public class de/itemis/mps/gradle/generate/GeneratePluginExtensions : de/itemis/mps/gradle/BasePluginExtensions { + public fun (Lorg/gradle/api/model/ObjectFactory;)V + public final fun getExcludeModels ()Ljava/util/List; + public final fun getExcludeModules ()Ljava/util/List; + public final fun getModels ()Ljava/util/List; + public final fun getModules ()Ljava/util/List; + public final fun getParallelGenerationThreads ()I + public final fun setExcludeModels (Ljava/util/List;)V + public final fun setExcludeModules (Ljava/util/List;)V + public final fun setModels (Ljava/util/List;)V + public final fun setModules (Ljava/util/List;)V + public final fun setParallelGenerationThreads (I)V +} + +public class de/itemis/mps/gradle/modelcheck/ModelCheckPluginExtensions : de/itemis/mps/gradle/BasePluginExtensions { + public fun (Lorg/gradle/api/model/ObjectFactory;)V + public final fun getErrorNoFail ()Z + public final fun getExcludeModels ()Ljava/util/List; + public final fun getExcludeModules ()Ljava/util/List; + public final fun getJunitFile ()Ljava/io/File; + public final fun getJunitFormat ()Ljava/lang/String; + public final fun getModels ()Ljava/util/List; + public final fun getModules ()Ljava/util/List; + public final fun getWarningAsError ()Z + public final fun setErrorNoFail (Z)V + public final fun setExcludeModels (Ljava/util/List;)V + public final fun setExcludeModules (Ljava/util/List;)V + public final fun setJunitFile (Ljava/io/File;)V + public final fun setJunitFormat (Ljava/lang/String;)V + public final fun setModels (Ljava/util/List;)V + public final fun setModules (Ljava/util/List;)V + public final fun setWarningAsError (Z)V +} + +public class de/itemis/mps/gradle/modelcheck/ModelcheckMpsProjectPlugin : org/gradle/api/Plugin { + public fun ()V + public synthetic fun apply (Ljava/lang/Object;)V + public fun apply (Lorg/gradle/api/Project;)V +} + +public class de/itemis/mps/gradle/runmigrations/MigrationExecutorPluginExtensions : de/itemis/mps/gradle/BasePluginExtensions { + public fun (Lorg/gradle/api/model/ObjectFactory;)V + public final fun getForce ()Ljava/lang/Boolean; + public final fun getHaltOnPrecheckFailure ()Ljava/lang/Boolean; + public final fun setForce (Ljava/lang/Boolean;)V + public final fun setHaltOnPrecheckFailure (Ljava/lang/Boolean;)V +} + +public class de/itemis/mps/gradle/runmigrations/RunMigrationsMpsProjectPlugin : org/gradle/api/Plugin { + public static final field Companion Lde/itemis/mps/gradle/runmigrations/RunMigrationsMpsProjectPlugin$Companion; + public fun ()V + public synthetic fun apply (Ljava/lang/Object;)V + public fun apply (Lorg/gradle/api/Project;)V +} + +public final class de/itemis/mps/gradle/runmigrations/RunMigrationsMpsProjectPlugin$Companion { + public final fun getMIN_VERSION_FOR_FORCE ()Lnet/swiftzer/semver/SemVer; + public final fun getMIN_VERSION_FOR_HALT_ON_PRECHECK_FAILURE ()Lnet/swiftzer/semver/SemVer; +} + diff --git a/build.gradle.kts b/build.gradle.kts index 64ae51a9..ebce0351 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -21,6 +21,7 @@ plugins { `kotlin-dsl` `maven-publish` kotlin("jvm") version "1.5.31" + id("org.jetbrains.kotlinx.binary-compatibility-validator") version "0.13.2" } val versionMajor = 1 diff --git a/buildscript-gradle.lockfile b/buildscript-gradle.lockfile index 6ee1e5fa..66374664 100644 --- a/buildscript-gradle.lockfile +++ b/buildscript-gradle.lockfile @@ -9,6 +9,7 @@ com.google.guava:failureaccess:1.0.1=classpath com.google.guava:guava:29.0-jre=classpath com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava=classpath com.google.j2objc:j2objc-annotations:1.3=classpath +com.googlecode.java-diff-utils:diffutils:1.3.0=classpath de.undercouch:gradle-download-task:4.1.1=classpath org.checkerframework:checker-qual:2.11.1=classpath org.gradle.kotlin.kotlin-dsl:org.gradle.kotlin.kotlin-dsl.gradle.plugin:2.1.7=classpath @@ -40,7 +41,12 @@ org.jetbrains.kotlin:kotlin-stdlib:1.5.31=classpath org.jetbrains.kotlin:kotlin-tooling-metadata:1.5.31=classpath org.jetbrains.kotlin:kotlin-util-io:1.5.31=classpath org.jetbrains.kotlin:kotlin-util-klib:1.5.31=classpath +org.jetbrains.kotlinx.binary-compatibility-validator:org.jetbrains.kotlinx.binary-compatibility-validator.gradle.plugin:0.13.2=classpath +org.jetbrains.kotlinx:binary-compatibility-validator:0.13.2=classpath org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.0=classpath org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0=classpath +org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.6.2=classpath org.jetbrains:annotations:13.0=classpath +org.ow2.asm:asm-tree:9.2=classpath +org.ow2.asm:asm:9.2=classpath empty=