Skip to content

Commit 2968781

Browse files
authored
Remove deprecated SemVer tooling (#7611)
Removes all SemVer task tooling, additionally removes tasks only used by old SemVer tooling. Modern Metalava based SemVer was slightly refactored to rely on its own `Delta` class instead of the old `VersionDelta` also used for manual SemVer.
1 parent 7887e47 commit 2968781

File tree

13 files changed

+11
-1266
lines changed

13 files changed

+11
-1266
lines changed

.github/workflows/semver-check.yml

Lines changed: 0 additions & 22 deletions
This file was deleted.

plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseAndroidLibraryPlugin.kt

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,10 @@ import com.android.build.gradle.LibraryPlugin
2121
import com.google.firebase.gradle.plugins.LibraryType.ANDROID
2222
import com.google.firebase.gradle.plugins.ci.device.FirebaseTestServer
2323
import com.google.firebase.gradle.plugins.license.LicenseResolverPlugin
24-
import com.google.firebase.gradle.plugins.semver.ApiDiffer
25-
import com.google.firebase.gradle.plugins.semver.GmavenCopier
2624
import org.gradle.api.JavaVersion
2725
import org.gradle.api.Project
2826
import org.gradle.api.attributes.Attribute
2927
import org.gradle.api.publish.tasks.GenerateModuleMetadata
30-
import org.gradle.api.tasks.Copy
3128
import org.gradle.kotlin.dsl.apply
3229
import org.gradle.kotlin.dsl.create
3330
import org.gradle.kotlin.dsl.getByType
@@ -115,51 +112,6 @@ class FirebaseAndroidLibraryPlugin : BaseFirebaseLibraryPlugin() {
115112
version.set(firebaseLibrary.version)
116113
latestReleasedVersion.set(firebaseLibrary.latestReleasedVersion.orElse(""))
117114
}
118-
project.mkdir("semver")
119-
project.mkdir("semver/previous-version")
120-
project.tasks.register<GmavenCopier>("copyPreviousArtifacts") {
121-
dependsOn("bundleReleaseAar")
122-
project.file("semver/previous.aar").delete()
123-
124-
groupId.value(firebaseLibrary.groupId)
125-
artifactId.value(firebaseLibrary.artifactId)
126-
aarAndroidFile.value(true)
127-
filePath.value(project.file("semver/previous.aar").absolutePath)
128-
}
129-
val artifact = firebaseLibrary.artifactId.get()
130-
val releaseAar = if (artifact.contains("-ktx")) "ktx-release.aar" else "${artifact}-release.aar"
131-
project.tasks.register<Copy>("extractCurrentClasses") {
132-
dependsOn("bundleReleaseAar")
133-
134-
from(project.zipTree("build/outputs/aar/${releaseAar}"))
135-
into(project.file("semver/current-version"))
136-
}
137-
138-
project.tasks.register<Copy>("extractPreviousClasses") {
139-
dependsOn("copyPreviousArtifacts")
140-
if (
141-
GmavenHelper(firebaseLibrary.groupId.get(), firebaseLibrary.artifactId.get())
142-
.isPresentInGmaven()
143-
) {
144-
from(project.zipTree("semver/previous.aar"))
145-
into(project.file("semver/previous-version"))
146-
}
147-
}
148-
149-
val currentJarFile = project.file("semver/current-version/classes.jar").absolutePath
150-
151-
val previousJarFile = project.file("semver/previous-version/classes.jar").absolutePath
152-
project.tasks.register<ApiDiffer>("semverCheck") {
153-
dependsOn("extractCurrentClasses")
154-
dependsOn("extractPreviousClasses")
155-
currentJar.value(currentJarFile)
156-
previousJar.value(previousJarFile)
157-
version.value(firebaseLibrary.version)
158-
previousVersionString.value(
159-
GmavenHelper(firebaseLibrary.groupId.get(), firebaseLibrary.artifactId.get())
160-
.getLatestReleasedVersion()
161-
)
162-
}
163115

164116
setupMetalavaSemver(project, firebaseLibrary)
165117
}

plugins/src/main/java/com/google/firebase/gradle/plugins/FirebaseJavaLibraryPlugin.kt

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package com.google.firebase.gradle.plugins
1818

1919
import com.google.firebase.gradle.plugins.LibraryType.JAVA
20-
import com.google.firebase.gradle.plugins.semver.ApiDiffer
21-
import com.google.firebase.gradle.plugins.semver.GmavenCopier
2220
import org.gradle.api.Project
2321
import org.gradle.api.attributes.Attribute
2422
import org.gradle.api.plugins.JavaLibraryPlugin
@@ -78,31 +76,6 @@ class FirebaseJavaLibraryPlugin : BaseFirebaseLibraryPlugin() {
7876
version.value(firebaseLibrary.version)
7977
latestReleasedVersion.value(firebaseLibrary.latestReleasedVersion.orElse(""))
8078
}
81-
project.mkdir("semver")
82-
project.tasks.register<GmavenCopier>("copyPreviousArtifacts") {
83-
dependsOn("jar")
84-
project.file("semver/previous.jar").delete()
85-
groupId.value(firebaseLibrary.groupId.get())
86-
artifactId.value(firebaseLibrary.artifactId.get())
87-
aarAndroidFile.value(false)
88-
filePath.value(project.file("semver/previous.jar").absolutePath)
89-
}
90-
val currentJarFile =
91-
project
92-
.file("build/libs/${firebaseLibrary.artifactId.get()}-${firebaseLibrary.version}.jar")
93-
.absolutePath
94-
val previousJarFile = project.file("semver/previous.jar").absolutePath
95-
project.tasks.register<ApiDiffer>("semverCheck") {
96-
currentJar.value(currentJarFile)
97-
previousJar.value(previousJarFile)
98-
version.value(firebaseLibrary.version)
99-
previousVersionString.value(
100-
GmavenHelper(firebaseLibrary.groupId.get(), firebaseLibrary.artifactId.get())
101-
.getLatestReleasedVersion()
102-
)
103-
104-
dependsOn("copyPreviousArtifacts")
105-
}
10679

10780
setupMetalavaSemver(project, firebaseLibrary)
10881
}

plugins/src/main/java/com/google/firebase/gradle/plugins/PublishingPlugin.kt

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ import org.gradle.kotlin.dsl.register
6969
* - [RELEASE_GENEATOR_TASK][registerGenerateReleaseConfigFilesTask]
7070
* - [RELEASE_REPORT_GENERATOR_TASK][registerGenerateReleaseReportFilesTask]
7171
* - [PUBLISH_RELEASING_LIBS_TO_LOCAL_TASK][registerPublishReleasingLibrariesToMavenLocalTask]
72-
* - [SEMVER_CHECK_TASK][registerSemverCheckForReleaseTask]
7372
* - [PUBLISH_ALL_TO_BUILD_TASK][registerPublishAllToBuildDir]
7473
* - [LIBRARY_GROUPS_TASK][registerLibraryGroupsTask]
7574
*
@@ -116,7 +115,6 @@ abstract class PublishingPlugin : Plugin<Project> {
116115

117116
registerGenerateReleaseConfigFilesTask(project, libraryGroups, releaseReportTask)
118117
registerPublishReleasingLibrariesToMavenLocalTask(project, releasingProjects)
119-
registerSemverCheckForReleaseTask(project, releasingProjects)
120118
registerPublishAllToBuildDir(project, allFirebaseLibraries)
121119
registerPostReleasePlugin(releasingProjects)
122120
registerLibraryGroupsTask(project, libraryGroups)
@@ -711,25 +709,6 @@ abstract class PublishingPlugin : Plugin<Project> {
711709
}
712710
}
713711

714-
/**
715-
* Registers the [SEMVER_CHECK_TASK] task.
716-
*
717-
* A collection of [ApiDiffer] for each releasing project.
718-
*
719-
* Ensures that the version of a releasing project aligns with the API. That is, if the API shows
720-
* signs of a major or minor bump- the version is bumped as expected.
721-
*/
722-
private fun registerSemverCheckForReleaseTask(
723-
project: Project,
724-
releasingProjects: List<Project>,
725-
) =
726-
project.tasks.register(SEMVER_CHECK_TASK) {
727-
for (releasingProject in releasingProjects) {
728-
val semverCheckTask = releasingProject.tasks.named("semverCheck")
729-
dependsOn(semverCheckTask)
730-
}
731-
}
732-
733712
/**
734713
* Registers the [PUBLISH_ALL_TO_BUILD_TASK] task.
735714
*
@@ -770,7 +749,6 @@ abstract class PublishingPlugin : Plugin<Project> {
770749
const val GENERATE_TUTORIAL_BUNDLE_TASK = "generateTutorialBundle"
771750
const val VALIDATE_PROJECTS_TO_PUBLISH_TASK = "validateProjectsToPublish"
772751
const val VALIDATE_LIBRARY_GROUPS_TO_PUBLISH_TASK = "validateLibraryGroupsToPublish"
773-
const val SEMVER_CHECK_TASK = "semverCheckForRelease"
774752
const val RELEASE_GENEATOR_TASK = "generateReleaseConfig"
775753
const val RELEASE_REPORT_GENERATOR_TASK = "generateReleaseReport"
776754
const val VALIDATE_POM_TASK = "validatePomForRelease"

plugins/src/main/java/com/google/firebase/gradle/plugins/SemVerTask.kt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
package com.google.firebase.gradle.plugins
1818

19-
import com.google.firebase.gradle.plugins.semver.VersionDelta
2019
import java.io.ByteArrayOutputStream
2120
import javax.inject.Inject
2221
import org.gradle.api.DefaultTask
@@ -44,9 +43,9 @@ abstract class SemVerTask @Inject constructor(private val execOperations: ExecOp
4443

4544
val bump =
4645
when {
47-
previous.major != current.major -> VersionDelta.MAJOR
48-
previous.minor != current.minor -> VersionDelta.MINOR
49-
else -> VersionDelta.PATCH
46+
previous.major != current.major -> Delta.MAJOR
47+
previous.minor != current.minor -> Delta.MINOR
48+
else -> Delta.PATCH
5049
}
5150
val stream = ByteArrayOutputStream()
5251
project.runMetalavaWithArgs(
@@ -84,13 +83,13 @@ abstract class SemVerTask @Inject constructor(private val execOperations: ExecOp
8483
(majorChanges.joinToString(separator = "") { m -> " MAJOR: $m\n" }) +
8584
minorChanges.joinToString(separator = "") { m -> " MINOR: $m\n" }
8685
if (majorChanges.isNotEmpty()) {
87-
if (bump != VersionDelta.MAJOR) {
86+
if (bump != Delta.MAJOR) {
8887
throw GradleException(
8988
"API has non-bumped breaking MAJOR changes\nCurrent version bump is ${bump}, update the gradle.properties or fix the changes\n$allChanges"
9089
)
9190
}
9291
} else if (minorChanges.isNotEmpty()) {
93-
if (bump != VersionDelta.MAJOR && bump != VersionDelta.MINOR) {
92+
if (bump != Delta.MAJOR && bump != Delta.MINOR) {
9493
throw GradleException(
9594
"API has non-bumped MINOR changes\nCurrent version bump is ${bump}, update the gradle.properties or fix the changes\n$allChanges"
9695
)
@@ -103,4 +102,10 @@ abstract class SemVerTask @Inject constructor(private val execOperations: ExecOp
103102
private val MINOR = setOf("AddedClass", "AddedMethod", "AddedField", "ChangedDeprecated")
104103
private val IGNORED = setOf("ReferencesDeprecated")
105104
}
105+
106+
enum class Delta {
107+
MAJOR,
108+
MINOR,
109+
PATCH,
110+
}
106111
}

plugins/src/main/java/com/google/firebase/gradle/plugins/semver/AccessDescriptor.kt

Lines changed: 0 additions & 67 deletions
This file was deleted.

0 commit comments

Comments
 (0)