diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml index 9299194ab..094e50f86 100644 --- a/.github/workflows/maven-release.yml +++ b/.github/workflows/maven-release.yml @@ -4,13 +4,8 @@ on: inputs: libToRelease: required: true - type: choice + type: string description: 'Library to release, e.g :jvm-libs:blob-compressor' - options: - - ':jvm-libs:linea:blob-compressor' - - ':jvm-libs:linea:blob-shnarf-calculator' - - ':jvm-libs:linea:linea-contracts:l1-rollup' - - ':jvm-libs:linea:linea-contracts:l2-message-service' version: required: true type: string diff --git a/coordinator/clients/shomei-client/build.gradle b/coordinator/clients/shomei-client/build.gradle index 7117d606d..10a9c9fc8 100644 --- a/coordinator/clients/shomei-client/build.gradle +++ b/coordinator/clients/shomei-client/build.gradle @@ -7,7 +7,6 @@ dependencies { implementation project(':jvm-libs:generic:extensions:futures') implementation project(':jvm-libs:generic:json-rpc') implementation project(':jvm-libs:linea:metrics:micrometer') - implementation project(':jvm-libs:linea:core:traces') implementation project(":jvm-libs:linea:teku-execution-client") implementation "tech.pegasys.teku.internal:unsigned:${libs.versions.teku.get()}" diff --git a/jvm-libs/build.gradle b/jvm-libs/build.gradle new file mode 100644 index 000000000..9f9e85a93 --- /dev/null +++ b/jvm-libs/build.gradle @@ -0,0 +1,33 @@ +buildscript { + dependencies { + classpath(libs.jreleaser) + } +} + +plugins { + id 'net.consensys.zkevm.kotlin-library-minimal-conventions' +} + +// These libs are public, so we're commited on their artifactIds and `build.linea` group id, unlike the internal ones +Set publicApiLibs = [ + "blob-compressor", + "blob-decompressor", + "blob-shnarf-calculator", + "l1-rollup", + "l2-message-service" +] + +subprojects { + // Note that artifacts with generated code only will be skipped if :publish is called without preceding :build + def hasGeneratedSources = it.fileTree(dir: 'build/generated', includes: ['**/*.java', '**/*.kt']).files.size() > 0 + def hasSourceFiles = it.fileTree(dir: 'src', includes: ['**/*.java', '**/*.kt']).files.size() > 0 + + if (hasSourceFiles || hasGeneratedSources) { + // !in operator doesn't work with spotless plugin + if (!publicApiLibs.contains(it.name)) { + group="${rootProject.group}.internal" + } + + it.apply from: rootProject.file("gradle/publishing.gradle") + } +} diff --git a/jvm-libs/generic/build.gradle b/jvm-libs/generic/build.gradle deleted file mode 100644 index ee1163c23..000000000 --- a/jvm-libs/generic/build.gradle +++ /dev/null @@ -1,18 +0,0 @@ -buildscript { - dependencies { - classpath(libs.jreleaser) - } -} - -plugins { - id 'net.consensys.zkevm.kotlin-library-minimal-conventions' -} - -subprojects { - def hasSourceFiles = it.fileTree(dir: 'src', includes: ['**/*.java', '**/*.kt']).files.size() > 0 - - group="${rootProject.group}.internal" - if (hasSourceFiles) { - it.apply from: rootProject.file("gradle/publishing.gradle") - } -} diff --git a/jvm-libs/linea/blob-compressor/build.gradle b/jvm-libs/linea/blob-compressor/build.gradle index 0c9cb129f..f3f7dba33 100644 --- a/jvm-libs/linea/blob-compressor/build.gradle +++ b/jvm-libs/linea/blob-compressor/build.gradle @@ -1,12 +1,10 @@ plugins { id 'net.consensys.zkevm.kotlin-common-minimal-conventions' id 'net.consensys.zkevm.linea-native-libs-helper' - alias(libs.plugins.jreleaser) id 'java-test-fixtures' } description = 'Java JNA wrapper for Linea Blob Compressor Library implemented in GO Lang' -apply from: rootProject.file("gradle/publishing.gradle") dependencies { implementation "net.java.dev.jna:jna:${libs.versions.jna.get()}" diff --git a/jvm-libs/linea/blob-decompressor/build.gradle b/jvm-libs/linea/blob-decompressor/build.gradle index 576960d88..722ad32a6 100644 --- a/jvm-libs/linea/blob-decompressor/build.gradle +++ b/jvm-libs/linea/blob-decompressor/build.gradle @@ -1,12 +1,10 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' id 'net.consensys.zkevm.linea-native-libs-helper' - alias(libs.plugins.jreleaser) id 'java-test-fixtures' } description = 'Java JNA wrapper for Linea Blob Decompressor Library implemented in GO Lang' -apply from: rootProject.file("gradle/publishing.gradle") dependencies { implementation "net.java.dev.jna:jna:${libs.versions.jna.get()}" diff --git a/jvm-libs/linea/blob-shnarf-calculator/build.gradle b/jvm-libs/linea/blob-shnarf-calculator/build.gradle index 2d2ecfa38..c0f48e378 100644 --- a/jvm-libs/linea/blob-shnarf-calculator/build.gradle +++ b/jvm-libs/linea/blob-shnarf-calculator/build.gradle @@ -1,11 +1,9 @@ plugins { id 'net.consensys.zkevm.kotlin-common-minimal-conventions' id 'net.consensys.zkevm.linea-native-libs-helper' - alias(libs.plugins.jreleaser) } description = 'Java JNA wrapper for Linea Blob Shnarf Calculator implemented in GO Lang' -apply from: rootProject.file("gradle/publishing.gradle") dependencies { api "net.java.dev.jna:jna:${libs.versions.jna.get()}" diff --git a/jvm-libs/linea/clients/interfaces/build.gradle b/jvm-libs/linea/clients/interfaces/build.gradle index d8e9577bb..d3bdd10bf 100644 --- a/jvm-libs/linea/clients/interfaces/build.gradle +++ b/jvm-libs/linea/clients/interfaces/build.gradle @@ -3,6 +3,8 @@ plugins { id 'java-test-fixtures' } +description="Interfaces for interaction with Linea Smart Contract" + dependencies { api project(':jvm-libs:linea:core:domain-models') api project(':jvm-libs:generic:extensions:futures') diff --git a/jvm-libs/linea/clients/linea-l1-contract-client/build.gradle b/jvm-libs/linea/clients/linea-l1-contract-client/build.gradle index ed62f612d..4f381dd56 100644 --- a/jvm-libs/linea/clients/linea-l1-contract-client/build.gradle +++ b/jvm-libs/linea/clients/linea-l1-contract-client/build.gradle @@ -3,6 +3,8 @@ plugins { id 'java-test-fixtures' } +description="Linea L1 smart contract client" + dependencies { api project(':jvm-libs:linea:core:domain-models') api project(':jvm-libs:linea:clients:interfaces') diff --git a/jvm-libs/linea/clients/linea-state-manager/build.gradle b/jvm-libs/linea/clients/linea-state-manager/build.gradle index 55a647453..f74f4ff52 100644 --- a/jvm-libs/linea/clients/linea-state-manager/build.gradle +++ b/jvm-libs/linea/clients/linea-state-manager/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Linea state manager client" + dependencies { api project(':jvm-libs:linea:core:domain-models') api project(':jvm-libs:linea:core:metrics') diff --git a/jvm-libs/linea/core/client-interface/build.gradle b/jvm-libs/linea/core/client-interface/build.gradle index 1b9412c59..7ce2ab38f 100644 --- a/jvm-libs/linea/core/client-interface/build.gradle +++ b/jvm-libs/linea/core/client-interface/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Linea Client interface" + dependencies { implementation(project(':jvm-libs:generic:extensions:kotlin')) implementation(project(':jvm-libs:linea:core:domain-models')) diff --git a/jvm-libs/linea/core/domain-models/build.gradle b/jvm-libs/linea/core/domain-models/build.gradle index 9f0f46350..000cc2190 100644 --- a/jvm-libs/linea/core/domain-models/build.gradle +++ b/jvm-libs/linea/core/domain-models/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-common-conventions' } +description="Linea domain models" + dependencies { implementation project(":jvm-libs:generic:extensions:kotlin") } diff --git a/jvm-libs/linea/core/long-running-service/build.gradle b/jvm-libs/linea/core/long-running-service/build.gradle index c5b379200..dd9cb4ffd 100644 --- a/jvm-libs/linea/core/long-running-service/build.gradle +++ b/jvm-libs/linea/core/long-running-service/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Linea long running service implementation" + dependencies { implementation "io.vertx:vertx-core" } diff --git a/jvm-libs/linea/core/metrics/build.gradle b/jvm-libs/linea/core/metrics/build.gradle index 3172a0cfc..382c48bf4 100644 --- a/jvm-libs/linea/core/metrics/build.gradle +++ b/jvm-libs/linea/core/metrics/build.gradle @@ -1,3 +1,5 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } + +description="Linea metrics facade" diff --git a/jvm-libs/linea/core/traces/build.gradle b/jvm-libs/linea/core/traces/build.gradle index 0348e0c57..4607b5dcd 100644 --- a/jvm-libs/linea/core/traces/build.gradle +++ b/jvm-libs/linea/core/traces/build.gradle @@ -3,6 +3,8 @@ plugins { id 'java-test-fixtures' } +description="Linea Tracing utilities" + dependencies { implementation "io.tmio:tuweni-units:${libs.versions.tuweni.get()}" implementation project(':jvm-libs:generic:extensions:kotlin') diff --git a/jvm-libs/linea/linea-contracts/l1-rollup/build.gradle b/jvm-libs/linea/linea-contracts/l1-rollup/build.gradle index 51b0e75e8..257d66eca 100644 --- a/jvm-libs/linea/linea-contracts/l1-rollup/build.gradle +++ b/jvm-libs/linea/linea-contracts/l1-rollup/build.gradle @@ -1,7 +1,6 @@ plugins { id 'java-library' id 'linea.web3j-codegen' - alias(libs.plugins.jreleaser) } java { toolchain { @@ -10,7 +9,6 @@ java { } description = 'Web3J Java client for Linea L1 Rollup Smart Contract' ext.artifactId = 'l1-rollup-contract-client' -apply from: rootProject.file("gradle/publishing.gradle") dependencies { // this shall be very lightweight dependency, just export the generated sources diff --git a/jvm-libs/linea/linea-contracts/l2-message-service/build.gradle b/jvm-libs/linea/linea-contracts/l2-message-service/build.gradle index 9396e5ac8..d31e1c717 100644 --- a/jvm-libs/linea/linea-contracts/l2-message-service/build.gradle +++ b/jvm-libs/linea/linea-contracts/l2-message-service/build.gradle @@ -1,7 +1,6 @@ plugins { id 'java-library' id 'linea.web3j-codegen' - alias(libs.plugins.jreleaser) } java { toolchain { @@ -11,7 +10,6 @@ java { description = 'Web3J Java client for Linea L2 Message Service Contract' ext.artifactId = 'l2-message-service-contract-client' -apply from: rootProject.file("gradle/publishing.gradle") dependencies { // this shall be very lightweight dependency, just export the generated sources diff --git a/jvm-libs/linea/metrics/micrometer/build.gradle b/jvm-libs/linea/metrics/micrometer/build.gradle index 416c4febf..701dde5cd 100644 --- a/jvm-libs/linea/metrics/micrometer/build.gradle +++ b/jvm-libs/linea/metrics/micrometer/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Micrometer metrics implementation for Linea" + dependencies { api "io.vertx:vertx-micrometer-metrics" implementation project(':jvm-libs:linea:core:metrics') diff --git a/jvm-libs/linea/testing/file-system/build.gradle b/jvm-libs/linea/testing/file-system/build.gradle index ee09faaac..41b76024d 100644 --- a/jvm-libs/linea/testing/file-system/build.gradle +++ b/jvm-libs/linea/testing/file-system/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Linea test utilities for file system interactions" + dependencies { testImplementation(project(':jvm-libs:generic:extensions:kotlin')) } diff --git a/jvm-libs/linea/testing/l1-blob-and-proof-submission/build.gradle b/jvm-libs/linea/testing/l1-blob-and-proof-submission/build.gradle index 3e2ec1d22..86a3fbd41 100644 --- a/jvm-libs/linea/testing/l1-blob-and-proof-submission/build.gradle +++ b/jvm-libs/linea/testing/l1-blob-and-proof-submission/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Linea test utilities for L1 blob submission and Finalization" + dependencies { api(project(':jvm-libs:linea:core:domain-models')) implementation(project(':jvm-libs:generic:extensions:kotlin')) diff --git a/jvm-libs/linea/testing/teku-helper/build.gradle b/jvm-libs/linea/testing/teku-helper/build.gradle index 74e7ffbb0..c0a79419d 100644 --- a/jvm-libs/linea/testing/teku-helper/build.gradle +++ b/jvm-libs/linea/testing/teku-helper/build.gradle @@ -2,6 +2,8 @@ plugins { id 'net.consensys.zkevm.kotlin-library-conventions' } +description="Linea test utilities for interaction with Engine API by Teku client" + dependencies { api project(":jvm-libs:linea:teku-execution-client") api "tech.pegasys.teku.internal:unsigned:${libs.versions.teku.get()}" diff --git a/jvm-libs/linea/web3j-extensions/build.gradle b/jvm-libs/linea/web3j-extensions/build.gradle index bfaec3e97..32fe25819 100644 --- a/jvm-libs/linea/web3j-extensions/build.gradle +++ b/jvm-libs/linea/web3j-extensions/build.gradle @@ -4,6 +4,8 @@ plugins { id 'java-test-fixtures' } +description="Web3j extensions for Linea" + dependencies { api "org.web3j:core:${libs.versions.web3j.get()}" api project(':jvm-libs:linea:core:domain-models')