This is an automated email from the ASF dual-hosted git repository. vladimirsitnikov pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jmeter.git
commit 3209697c13c2306b4c6a653cf3911bb7aa76058a Author: Vladimir Sitnikov <[email protected]> AuthorDate: Sun Oct 6 22:28:26 2019 +0300 Make release scripts compatible with Gradle 5.6 Previously the scripts used dependencies between tasks of different modules. That is anti-pattern, however it somehow worked in Gradle 5.5. For now the configurations are used to make dependencies between modules and to pass files across Gradle modules. stage-vote-release plugin creates 3 configurations: releaseFiles, releaseSignatures, previewSite :src:dist adds artifacts to the configurations, and the root project depends on project(":src:dist", configurationName) The configuration create/use is hidden in stage-vote-release-plugin itself (see releaseArtifacts) --- build.gradle.kts | 24 +++++++++++++++++------- checksum.xml | 12 ++++++++++++ src/dist/build.gradle.kts | 34 ++++++++++++++++++++-------------- src/licenses/build.gradle.kts | 16 +++++++++++----- 4 files changed, 60 insertions(+), 26 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 43eeb36..1c5b5fe 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -37,9 +37,9 @@ plugins { id("com.diffplug.gradle.spotless") version "3.24.3" id("com.github.spotbugs") version "2.0.0" id("org.sonarqube") version "2.7.1" - id("com.github.vlsi.crlf") version "1.17.0" - id("com.github.vlsi.ide") version "1.17.0" - id("com.github.vlsi.stage-vote-release") version "1.17.0" + id("com.github.vlsi.crlf") version "1.32.0" + id("com.github.vlsi.ide") version "1.32.0" + id("com.github.vlsi.stage-vote-release") version "1.32.0" signing publishing } @@ -103,14 +103,24 @@ val rat by tasks.getting(org.nosphere.apache.rat.RatTask::class) { exclude(rootDir.resolve("rat-excludes.txt").readLines()) } +releaseArtifacts { + fromProject(":src:dist") + previewSite { + into("rat") + from(rat) { + filteringCharset = "UTF-8" + // XML is not really interesting for now + exclude("rat-report.xml") + // RAT reports have absolute paths, and we don't want to expose them + filter { str: String -> str.replace(rootDir.absolutePath, "") } + } + } +} + releaseParams { tlp.set("JMeter") releaseTag.set("v${project.version.toString().replace('.', '_')}") rcTag.set(releaseTag.map { "${it}_RC" + rc.get() }) - previewSiteContents { - into("rat") - from(rat) - } svnDist { // All the release versions are put under release/jmeter/{source,binary} releaseFolder.set("release/jmeter") diff --git a/checksum.xml b/checksum.xml index 671127f..060e655 100644 --- a/checksum.xml +++ b/checksum.xml @@ -147,15 +147,27 @@ <dependency group='com.github.vlsi.gradle' module='crlf-plugin' version='1.17.0'> <sha512>473E13699DDDE54F2B7245BB33A47346E907179F7C528751B0BB730005BCAF3FFCDBE3F1333655D635B0EE2683FC8B24F2BD598922F9DA3DA03F8EC25A373AA1</sha512> </dependency> + <dependency group='com.github.vlsi.gradle' module='crlf-plugin' version='1.32.0'> + <sha512>8895959EBFEF1D14960AB48E393D64F86647C79D8FBAA938DF8020C0CC7F4CF8E895265F090D333C0F8D57C7E151F7F5CC23CCA9FB4E40EB7BD9433D0A6D4EA8</sha512> + </dependency> <dependency group='com.github.vlsi.gradle' module='ide-plugin' version='1.17.0'> <sha512>4321949B8201BA4F0E1F0D977397349C34DF84E4632DAFEE6F221F9AFA176FDD9497C9AFBE7F734E3423BE25351DCA7551F93181CC99A99A24EAAEB43BCBD544</sha512> </dependency> + <dependency group='com.github.vlsi.gradle' module='ide-plugin' version='1.32.0'> + <sha512>E8E0DF90F38DFADF3CB9D84D97FEA7189B1585FBCFACFC8B24E25A25C5B926D98C33064B3B38E4D4AD8CF837E0359EFD03F5CBB6B3EB29AE38B57AF705BF0268</sha512> + </dependency> <dependency group='com.github.vlsi.gradle' module='license-gather-plugin' version='1.17.0'> <sha512>E1EE1396B2838E03FB7C84667BD473BAB558569EB5F1C4CB9B7C6806FDC5C7DABC41AAB1705A0FE73FBDB11624F11A15D7394232F59AC1039EFA197FCB495E67</sha512> </dependency> + <dependency group='com.github.vlsi.gradle' module='license-gather-plugin' version='1.32.0'> + <sha512>819CC5E1C210254E7EC24B5FBF5D4F63901C50512A2252A333C6D815F8AB2C42A6A3FD942AE21CEAC769F9DA22660F4E7C6BD9F30AFF11E8377DFB932F1DAAB4</sha512> + </dependency> <dependency group='com.github.vlsi.gradle' module='stage-vote-release-plugin' version='1.17.0'> <sha512>575A87846F61717B2F220A485B67D253644980A0DD57C8EBD3F07C9D66E9B463115897BFE3364216445CAB4AA09EA4B27070ABA5BE7620A632A95BE3F414D464</sha512> </dependency> + <dependency group='com.github.vlsi.gradle' module='stage-vote-release-plugin' version='1.32.0'> + <sha512>DFAB7A2D627AD025629B5AB500ECC36CFC6B3D683D50FBB1AE9CB3DAB5EE3547BCFF2E61C79AA33E952ACFEB1CC367691BF8D2BA180D96F40D5CF64EEDD1CC49</sha512> + </dependency> <dependency group='commons-logging' module='commons-logging' version='1.0.4'> <sha512>C8D2D39A60ADCC49091D393DAF30473D1776E4B6B09BB86639171F660833A17AFBDC9F3E85843093535DA16FA664CD7CD4CA38F54E141018DD1B78DE681AD668</sha512> </dependency> diff --git a/src/dist/build.gradle.kts b/src/dist/build.gradle.kts index 2956106..f15f54f 100644 --- a/src/dist/build.gradle.kts +++ b/src/dist/build.gradle.kts @@ -50,9 +50,16 @@ var jars = arrayOf( ":src:protocol:native", ":src:protocol:tcp") -val buildDocs by configurations.creating -val binLicense by configurations.creating -val srcLicense by configurations.creating +// isCanBeConsumed = false ==> other modules must not use the configuration as a dependency +val buildDocs by configurations.creating { + isCanBeConsumed = false +} +val binLicense by configurations.creating { + isCanBeConsumed = false +} +val srcLicense by configurations.creating { + isCanBeConsumed = false +} // Note: you can inspect final classpath (list of jars in the binary distribution) via // gw dependencies --configuration runtimeClasspath @@ -354,10 +361,12 @@ fun CopySpec.siteLayout() { manuals() } -val previewSite by tasks.registering(Copy::class) { +// See https://github.com/gradle/gradle/issues/10960 +val previewSiteDir = buildDir.resolve("site") +val previewSite by tasks.registering(Sync::class) { group = JavaBasePlugin.DOCUMENTATION_GROUP description = "Creates preview of a site to build/docs/site" - into("$buildDir/site") + into(previewSiteDir) CrLfSpec().run { gitattributes(gitProps) siteLayout() @@ -469,19 +478,16 @@ for (type in listOf("binary", "source")) { with(if (type == "source") sourceLayout() else binaryLayout()) } } - rootProject.configure<ReleaseExtension> { - archive(archiveTask) + releaseArtifacts { + artifact(archiveTask) } } } -rootProject.configure<ReleaseExtension> { - previewSiteContents { - CrLfSpec().run { - into("site") { - gitattributes(gitProps) - siteLayout() - } +releaseArtifacts { + previewSite(previewSite) { + into("site") { + from(previewSiteDir) } } } diff --git a/src/licenses/build.gradle.kts b/src/licenses/build.gradle.kts index 3367032..e805b8a 100644 --- a/src/licenses/build.gradle.kts +++ b/src/licenses/build.gradle.kts @@ -30,9 +30,15 @@ import com.github.vlsi.gradle.release.ExtraLicense import com.github.vlsi.gradle.release.dsl.dependencyLicenses import com.github.vlsi.gradle.release.dsl.licensesCopySpec -val binaryDependencies by configurations.creating -val binLicense by configurations.creating -val srcLicense by configurations.creating +val binaryDependencies by configurations.creating { + isCanBeConsumed = false +} +val binLicense by configurations.creating { + isCanBeResolved = false +} +val srcLicense by configurations.creating { + isCanBeResolved = false +} dependencies { binaryDependencies(project(":src:dist", "runtimeElements")) @@ -223,10 +229,10 @@ val srcLicenseDir by tasks.registering(Sync::class) { } artifacts { - add(binLicense.name, binLicenseDir.get().destinationDir) { + add(binLicense.name, buildDir.resolve(binLicenseDir.name)) { builtBy(binLicenseDir) } - add(srcLicense.name, srcLicenseDir.get().destinationDir) { + add(srcLicense.name, buildDir.resolve(srcLicenseDir.name)) { builtBy(srcLicenseDir) } }
