Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(deps): update all non-major dependencies (except core kotlin) #525

Merged
merged 4 commits into from
Apr 24, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ dependencies {
implementation(libs.kotlin.gradle.plugin)
implementation(libs.kotlin.plugin.serialization)
implementation("io.github.gradle-nexus:publish-plugin:1.3.0")
implementation("org.ajoberstar.reckon:reckon-gradle:0.16.1")
implementation("org.ajoberstar.reckon:reckon-gradle:0.18.0")
implementation("com.squareup:kotlinpoet:1.13.0")
implementation("com.google.code.gson:gson:2.10.1")
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,17 @@

package com.saveourtool.save.buildutils

import org.ajoberstar.grgit.Grgit
import org.ajoberstar.grgit.gradle.GrgitServiceExtension
import org.ajoberstar.grgit.gradle.GrgitServicePlugin
import org.ajoberstar.reckon.core.Scope
import org.ajoberstar.reckon.core.VersionTagParser
import org.ajoberstar.reckon.gradle.ReckonExtension
import org.ajoberstar.reckon.gradle.ReckonPlugin
import org.eclipse.jgit.api.Git
import org.eclipse.jgit.internal.storage.file.FileRepository
import org.gradle.api.GradleException
import org.gradle.api.Project
import org.gradle.api.provider.Provider
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.getByType
import java.util.Optional

/**
* Configures how project version is determined.
Expand All @@ -23,56 +23,44 @@ import org.gradle.kotlin.dsl.getByType
*/
fun Project.configureVersioning() {
apply<ReckonPlugin>()
apply<GrgitServicePlugin>()
val grgitProvider = project.extensions
.getByType<GrgitServiceExtension>()
.service
.map { it.grgit }

val isSnapshot = hasProperty("reckon.stage") && property("reckon.stage") == "snapshot"
configure<ReckonExtension> {
scopeFromProp()
setDefaultInferredScope(Scope.MINOR.name)
setScopeCalc(calcScopeFromProp())
if (isSnapshot) {
// we should build snapshots only for snapshot publishing, so it requires explicit parameter
snapshotFromProp()
snapshots()
setStageCalc(calcStageFromProp())

/*
* A terrible hack to remove all pre-release tags. Because in semver `0.1.0-SNAPSHOT` < `0.1.0-alpha`, in snapshot mode
* we remove tags like `0.1.0-alpha`, and then reckoned version will still be `0.1.0-SNAPSHOT` and it will be compliant.
*/
setTagParser { tagName ->
nulls marked this conversation as resolved.
Show resolved Hide resolved
Optional.of(tagName)
.filter { it.matches(Regex("""^v\d+\.\d+\.\d+$""")) }
.flatMap { VersionTagParser.getDefault().parse(it) }
}
} else {
stageFromProp("alpha", "rc", "final")
stages("alpha", "rc", "final")
setStageCalc(calcStageFromProp())
}
}

// to activate release, provide `-Prelease` or `-Prelease=true`. To deactivate, either omit the property, or set `-Prelease=false`.
val isRelease = hasProperty("release") && (property("release") as String != "false")
if (isRelease) {
failOnUncleanTree(grgitProvider)
}
if (isSnapshot) {
fixForSnapshot(grgitProvider)
failOnUncleanTree()
}
}

private fun failOnUncleanTree(grgitProvider: Provider<Grgit>) {
val grgit = grgitProvider.get()
val status = grgit.repository.jgit
private fun Project.failOnUncleanTree() {
val status = Git(FileRepository(project.rootDir))
.status()
.call()
if (!status.isClean) {
throw GradleException("Release build will be performed with not clean git tree; aborting. " +
"Untracked files: ${status.untracked}, uncommitted changes: ${status.uncommittedChanges}")
}
}

/**
* A terrible hack to remove all pre-release tags. Because in semver `0.1.0-SNAPSHOT` < `0.1.0-alpha`, in snapshot mode
* we remove tags like `0.1.0-alpha`, and then reckoned version will still be `0.1.0-SNAPSHOT` and it will be compliant.
*/
private fun fixForSnapshot(grgitProvider: Provider<Grgit>) {
val grgit = grgitProvider.get()
val preReleaseTagNames = grgit.tag.list()
.sortedByDescending { it.commit.dateTime }
.takeWhile {
// take latest tags that are pre-release
!it.name.matches(Regex("""^v\d+\.\d+\.\d+$"""))
}
.map { it.name }
grgit.tag.remove { this.names = preReleaseTagNames }
}
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ kotlin {
val commonMain by getting
val commonTest by getting {
dependencies {
implementation("io.kotest:kotest-assertions-core:5.6.0")
implementation("io.kotest:kotest-assertions-core:5.6.1")
}
}
val commonNonJsMain by creating {
Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ junit = "5.9.2"
ktoml = "0.4.1"
multiplatform-diff = "0.4.0"
kotlinpoet = "1.13.0"
kotest = "5.6.0"
kotest = "5.6.1"
sarif4k = "0.3.0"
sarif-utils = "0.2.1"
log4j = "2.20.0"
Expand Down