Skip to content

Commit a6a6888

Browse files
committed
Implement workaround for palantir/gradle-revapi#631
1 parent 80b45ac commit a6a6888

File tree

4 files changed

+45
-0
lines changed

4 files changed

+45
-0
lines changed

build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ dependencies {
1313
api(libs.indra.crossdoc)
1414
api(libs.errorprone.gradle)
1515
api(libs.spotless)
16+
api(libs.palantir.revapi)
1617
implementation(libs.palantir.baseline)
1718
}
1819

@@ -97,6 +98,7 @@ plugin("spotless.root-project", "org.incendo.cloudbuildlogic.SpotlessRootProject
9798
plugin("publishing", "org.incendo.cloudbuildlogic.PublishingPlugin")
9899
plugin("publishing.root-project", "org.incendo.cloudbuildlogic.RootProjectPublishingPlugin")
99100
plugin("javadoc-links", "org.incendo.cloudbuildlogic.JavadocLinksPlugin")
101+
plugin("revapi", "org.incendo.cloudbuildlogic.RevApiConventions")
100102

101103
fun plugin(name: String, implClass: String) {
102104
val prefixedId = "org.incendo.cloud-build-logic.$name"

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,4 @@ indra-publishing-sonatype = { module = "net.kyori:indra-publishing-sonatype", ve
1313
errorprone-gradle = { module = "net.ltgt.gradle:gradle-errorprone-plugin", version.ref = "gradleErrorprone" }
1414
spotless = { module = "com.diffplug.spotless:spotless-plugin-gradle", version.ref = "spotless" }
1515
palantir-baseline = { module = "com.palantir.baseline:gradle-baseline-java", version = "5.36.0" }
16+
palantir-revapi = "com.palantir.gradle.revapi:gradle-revapi:1.7.0"
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.palantir.gradle.revapi
2+
3+
import org.gradle.api.Project
4+
import java.util.function.Predicate
5+
import java.util.stream.Collectors
6+
7+
object RevApiShim {
8+
fun oldVersionsProvider(
9+
project: Project,
10+
filter: Predicate<String> = BetaFilter()
11+
) = project.providers.provider<List<String>> {
12+
GitVersionUtils.previousGitTags(project)
13+
.filter(filter)
14+
.limit(3)
15+
.collect(Collectors.toList())
16+
}
17+
18+
class BetaFilter : Predicate<String> {
19+
override fun test(t: String): Boolean {
20+
return !t.contains("-beta.") && !t.contains("-rc.")
21+
}
22+
}
23+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package org.incendo.cloudbuildlogic
2+
3+
import com.palantir.gradle.revapi.RevApiShim
4+
import com.palantir.gradle.revapi.RevapiExtension
5+
import com.palantir.gradle.revapi.RevapiPlugin
6+
import org.gradle.api.Plugin
7+
import org.gradle.api.Project
8+
import org.gradle.kotlin.dsl.apply
9+
import org.gradle.kotlin.dsl.configure
10+
11+
abstract class RevApiConventions : Plugin<Project> {
12+
override fun apply(target: Project) {
13+
target.plugins.apply(RevapiPlugin::class)
14+
15+
target.extensions.configure(RevapiExtension::class) {
16+
oldVersions.set(RevApiShim.oldVersionsProvider(target))
17+
}
18+
}
19+
}

0 commit comments

Comments
 (0)