Compare commits

...

25 Commits
2.7.0 ... 3.0.0

Author SHA1 Message Date
56e5c58137 migrate build toolchain 2026-08-31 14:27:39 +06:00
0bff6fe11e update dependencies 2026-08-31 13:51:06 +06:00
7e1fb011c8 start 3.0.0 2026-08-31 13:29:40 +06:00
8aaaa6306d Merge pull request #169 from InsanusMokrassar/2.10.0
2.10.0
2026-08-17 15:07:27 +06:00
27a8fba44f fix changelog 2026-08-17 12:01:22 +06:00
e8f32eec7a update gradle/kotlin jvmargs 2026-08-17 12:00:26 +06:00
029739a90f update dependencies and gradle wrapper 2026-08-17 12:00:26 +06:00
950a8bccc3 start 2.10.0 2026-08-17 12:00:22 +06:00
fc4e38cf10 update dependencies 2026-08-17 11:54:08 +06:00
a3f507500b start 2.9.0 2026-08-17 11:54:08 +06:00
ce087fa538 fix (?) of publishing 2026-08-17 11:54:08 +06:00
133f731000 fill changelog 2026-03-05 18:27:48 +06:00
20d44bd531 update dependencies 2026-03-05 18:24:32 +06:00
4ec9dacbae update dependencies
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.10.1 -> 1.10.2
org.jetbrains.kotlinx:kotlinx-serialization-core 1.8.0 -> 1.8.1
org.jetbrains.dokka:dokka-gradle-plugin 2.0.0 -> 2.1.0
androidx.work:work-runtime-ktx 2.10.0 -> 2.11.1
com.android.tools.build:gradle 8.7.2 -> 8.10.1
junit:junit 4.12 -> 4.13.2
androidx.test.ext:junit 1.1.3 -> 1.3.0
androidx.test.espresso:espresso-core 3.4.0 -> 3.7.0
2026-02-10 17:19:15 +06:00
ddab74152e start 2.8.0 2025-08-04 14:10:57 +06:00
2cce483dc8 update github_release to support environment variables 2025-05-16 12:44:14 +06:00
fe5cdbefe8 Merge pull request #143 from InsanusMokrassar/2.7.2
2.7.2
2025-02-15 21:23:58 +06:00
4379635174 fixes 2025-02-15 21:07:13 +06:00
d0c3bae000 update dependencies 2025-02-15 21:05:34 +06:00
dfedd58b76 start 2.7.2 2025-02-15 21:03:08 +06:00
b59c325641 Merge pull request #140 from InsanusMokrassar/2.7.1
2.7.1
2025-01-08 12:26:30 +06:00
de64a4d806 __small__ optimization 2025-01-08 12:24:06 +06:00
409ca3770f fix parser 2025-01-08 12:22:29 +06:00
08ef7281e5 start 2.7.1 2025-01-08 12:17:21 +06:00
c28bf17335 Merge pull request #138 from InsanusMokrassar/2.7.0
2.7.0
2024-12-30 08:53:12 +06:00
9 changed files with 145 additions and 95 deletions

View File

@@ -1,5 +1,48 @@
# Changelog # Changelog
## 3.0.0
* `Version`:
* `Kotlin`: `2.3.21` -> `2.4.10`
* `Gradle`: `9.3.0` -> `9.7.1`
* `Android Gradle Plugin`: `8.13.+` -> `9.3.2`
* `Android` (compileSdk): `36` -> `37`
* `Android Build Tools`: `36.0.0` -> `37.0.0`
* `NMCP`: `1.5.0` -> `1.6.1`
## 2.10.0
* `Version`:
* `Kotlin`: `2.3.21`
* `Coroutines`: `1.11.0`
## 2.9.0
* `Version`:
* `Kotlin`: `2.3.20`
* `Serialization`: `1.11.0`
* `Dokka`: `2.2.0`
* `AndroidXWork`: `2.11.2`
## 2.8.0
* `Version`:
* `Kotlin`: `2.3.10`
* `Coroutines`: `1.10.2`
* `Serialization`: `1.10.0`
* `AndroidXWork`: `2.11.1`
* `Android` (compileSdk): `36`
## 2.7.2
* `Version`:
* `Kotlin`: `2.1.10`
* `Serialization`: `1.8.0`
## 2.7.1
* Fixes in parser and checker
## 2.7.0 ## 2.7.0
* `Version`: * `Version`:

View File

@@ -19,6 +19,7 @@ plugins {
id "org.jetbrains.kotlin.multiplatform" version "$kotlin_version" id "org.jetbrains.kotlin.multiplatform" version "$kotlin_version"
id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version" id "org.jetbrains.kotlin.plugin.serialization" version "$kotlin_version"
id "org.jetbrains.dokka" version "$dokka_version" id "org.jetbrains.dokka" version "$dokka_version"
id "com.gradleup.nmcp.aggregation" version "$nmcp_version"
} }
// temporal crutch until legacy tests will be stabled or legacy target will be removed // temporal crutch until legacy tests will be stabled or legacy target will be removed
@@ -32,7 +33,7 @@ allprojects {
} }
} }
apply plugin: "com.android.library" apply plugin: "com.android.kotlin.multiplatform.library"
project.version = "$version" project.version = "$version"
project.group = "dev.inmo" project.group = "dev.inmo"
@@ -40,6 +41,20 @@ project.group = "dev.inmo"
apply from: "publish.gradle" apply from: "publish.gradle"
apply from: "github_release.gradle" apply from: "github_release.gradle"
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
nmcpAggregation {
centralPortal {
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
validationTimeout = Duration.ofHours(4)
publishingType = System.getenv('PUBLISHING_TYPE') != "" ? System.getenv('PUBLISHING_TYPE') : "USER_MANAGED"
}
publishAllProjectsProbablyBreakingProjectIsolation()
}
}
repositories { repositories {
mavenLocal() mavenLocal()
// jcenter() // jcenter()
@@ -57,7 +72,14 @@ kotlin {
nodejs() nodejs()
} }
android { android {
publishAllLibraryVariants() compileSdk = "$android_compileSdkVersion".toInteger()
buildToolsVersion = "$android_buildToolsVersion"
minSdk = "$android_minSdkVersion".toInteger()
namespace = "${project.group}.${project.name}"
compilerOptions.jvmTarget.set(
compilerOptions.jvmTarget.get().class.fromTarget("17")
)
withHostTest {}
} }
linuxX64() linuxX64()
mingwX64() mingwX64()
@@ -104,7 +126,7 @@ kotlin {
implementation kotlin('test-js') implementation kotlin('test-js')
} }
} }
androidUnitTest { androidHostTest {
dependencies { dependencies {
implementation kotlin('test-junit') implementation kotlin('test-junit')
} }
@@ -114,39 +136,6 @@ kotlin {
apply plugin: 'com.getkeepsafe.dexcount' apply plugin: 'com.getkeepsafe.dexcount'
android {
compileSdk "$android_compileSdkVersion".toInteger()
buildToolsVersion = "$android_buildToolsVersion"
namespace "${group}.${project.name}"
defaultConfig {
minSdkVersion "$android_minSdkVersion".toInteger()
targetSdkVersion "$android_compileSdkVersion".toInteger()
versionCode "${android_code_version}".toInteger()
versionName "$version"
}
buildTypes {
release {
minifyEnabled false
}
debug {
debuggable true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
test {
java.srcDir file("src/jvmTest")
}
}
}
java { java {
sourceCompatibility = JavaVersion.VERSION_17 sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17

0
changelog_parser.sh Normal file → Executable file
View File

View File

@@ -1,4 +1,4 @@
dokkaHtml { dokka {
String dokkaOutputDirectoryPath = null String dokkaOutputDirectoryPath = null
switch (true) { switch (true) {
case project.hasProperty("DOKKA_PATH"): case project.hasProperty("DOKKA_PATH"):
@@ -32,7 +32,7 @@ dokkaHtml {
sourceLink { sourceLink {
localDirectory.set(file("./")) localDirectory.set(file("./"))
remoteUrl.set(new URL("https://github.com/InsanusMokrassar/krontab/blob/master/")) remoteUrl.set(new URI("https://github.com/InsanusMokrassar/krontab/blob/master/"))
remoteLineSuffix.set("#L") remoteLineSuffix.set("#L")
} }
} }

View File

@@ -1,22 +1,36 @@
interface InjectedExecOps {
@Inject //@javax.inject.Inject
ExecOperations getExecOps()
}
private String getCurrentVersionChangelog(String version) { private String getCurrentVersionChangelog(String version) {
OutputStream changelogDataOS = new ByteArrayOutputStream() OutputStream changelogDataOS = new ByteArrayOutputStream()
exec {
def injected = project.objects.newInstance(InjectedExecOps)
injected.execOps.exec {
commandLine 'chmod', "+x", './changelog_parser.sh' commandLine 'chmod', "+x", './changelog_parser.sh'
} }
exec { injected.execOps.exec {
standardOutput = changelogDataOS standardOutput = changelogDataOS
commandLine './changelog_parser.sh', "$version", 'CHANGELOG.md' commandLine './changelog_parser.sh', version, 'CHANGELOG.md'
} }
return changelogDataOS.toString().trim() return changelogDataOS.toString().trim()
} }
if (new File(projectDir, "secret.gradle").exists()) {
apply from: './secret.gradle' def githubTokenVariableName = "GITHUB_RELEASE_TOKEN"
def githubTokenVariableFromEnv = System.getenv(githubTokenVariableName)
def secretFile = new File(projectDir, "secret.gradle")
if (secretFile.exists() || project.hasProperty(githubTokenVariableName) || (githubTokenVariableFromEnv != "" && githubTokenVariableFromEnv != null)) {
if (secretFile.exists()) {
apply from: './secret.gradle'
}
apply plugin: "com.github.breadmoirai.github-release" apply plugin: "com.github.breadmoirai.github-release"
def githubReleaseToken = project.hasProperty(githubTokenVariableName) ? project.property(githubTokenVariableName).toString() : githubTokenVariableFromEnv
githubRelease { githubRelease {
token "${project.property('GITHUB_RELEASE_TOKEN')}" token githubReleaseToken
owner = "InsanusMokrassar" owner = "InsanusMokrassar"
repo = "${rootProject.name}" repo = "${rootProject.name}"

View File

@@ -1,40 +1,41 @@
org.gradle.jvmargs=-Xmx512m org.gradle.jvmargs=-Xmx1g -Xms500m
kotlin.daemon.jvmargs=-Xmx1g -Xms500m
kotlin.code.style=official kotlin.code.style=official
org.gradle.parallel=true org.gradle.parallel=true
kotlin.js.generate.externals=true
kotlin.incremental=true kotlin.incremental=true
kotlin.incremental.js=true kotlin.incremental.js=true
kotlin.incremental.multiplatform=true kotlin.incremental.multiplatform=true
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=false
kotlin_version=2.1.0 kotlin_version=2.4.10
kotlin_coroutines_version=1.10.1 kotlin_coroutines_version=1.11.0
kotlin_serialization_version=1.7.3 kotlin_serialization_version=1.11.0
dokka_version=2.0.0 dokka_version=2.2.0
klockVersion=5.4.0 klockVersion=5.4.0
nmcp_version=1.6.1
## Github reease ## Github reease
github_release_plugin_version=2.5.2 github_release_plugin_version=2.5.2
## Android ## Android
android_gradle_version=8.2.2 android_gradle_version=9.3.2
android_minSdkVersion=21 android_minSdkVersion=21
android_compileSdkVersion=35 android_compileSdkVersion=37
android_buildToolsVersion=35.0.0 android_buildToolsVersion=37.0.0
dexcount_version=4.0.0 dexcount_version=4.0.0
junit_version=4.12 junit_version=4.13.2
test_ext_junit_version=1.1.3 test_ext_junit_version=1.3.0
espresso_core=3.4.0 espresso_core=3.7.0
androidx_work_version=2.10.0 androidx_work_version=2.11.2
## Common ## Common
version=2.7.0 version=3.0.0
android_code_version=46 android_code_version=52

View File

@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip distributionUrl=https\://services.gradle.org/distributions/gradle-9.7.1-bin.zip

View File

@@ -37,42 +37,42 @@ publishing {
} }
} }
repositories { }
if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) { repositories {
maven { if ((project.hasProperty('GITHUBPACKAGES_USER') || System.getenv('GITHUBPACKAGES_USER') != null) && (project.hasProperty('GITHUBPACKAGES_PASSWORD') || System.getenv('GITHUBPACKAGES_PASSWORD') != null)) {
name = "GithubPackages" maven {
url = uri("https://maven.pkg.github.com/InsanusMokrassar/krontab") name = "GithubPackages"
url = uri("https://maven.pkg.github.com/InsanusMokrassar/krontab")
credentials {
username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER')
password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD')
}
credentials {
username = project.hasProperty('GITHUBPACKAGES_USER') ? project.property('GITHUBPACKAGES_USER') : System.getenv('GITHUBPACKAGES_USER')
password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD')
} }
} }
if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) { }
maven { if ((project.hasProperty('INMONEXUS_USER') || System.getenv('INMONEXUS_USER') != null) && (project.hasProperty('INMONEXUS_PASSWORD') || System.getenv('INMONEXUS_PASSWORD') != null)) {
name = "InmoNexus" maven {
url = uri("https://nexus.inmo.dev/repository/maven-releases/") name = "InmoNexus"
url = uri("https://nexus.inmo.dev/repository/maven-releases/")
credentials {
username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER')
password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD')
}
credentials {
username = project.hasProperty('INMONEXUS_USER') ? project.property('INMONEXUS_USER') : System.getenv('INMONEXUS_USER')
password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD')
} }
} }
if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) { }
maven { if ((project.hasProperty('SONATYPE_USER') || System.getenv('SONATYPE_USER') != null) && (project.hasProperty('SONATYPE_PASSWORD') || System.getenv('SONATYPE_PASSWORD') != null)) {
name = "sonatype" maven {
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/") name = "sonatype"
url = uri("https://oss.sonatype.org/service/local/staging/deploy/maven2/")
credentials {
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
}
credentials {
username = project.hasProperty('SONATYPE_USER') ? project.property('SONATYPE_USER') : System.getenv('SONATYPE_USER')
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
} }
} }
} }
} }

View File

@@ -43,7 +43,9 @@ private fun <T> createSimpleScheduler(from: String, dataRange: IntRange, dataCon
* 1. * 1.
* * "\\d" -> 2 * * "\\d" -> 2
* * "\\*" -> 4 * * "\\*" -> 4
* * "F" -> 7
* * "f" -> 7 * * "f" -> 7
* * "L" -> 7
* * "l" -> 7 * * "l" -> 7
* * "/" -> 6 * * "/" -> 6
* 2. * 2.
@@ -55,6 +57,7 @@ private fun <T> createSimpleScheduler(from: String, dataRange: IntRange, dataCon
* * "o" -> 10 * * "o" -> 10
* * "w" -> 10 * * "w" -> 10
* 3. * 3.
* * "L" -> 7
* * "l" -> 7 * * "l" -> 7
* * "\\d" -> 8 * * "\\d" -> 8
* 4. * 4.
@@ -78,8 +81,8 @@ private val checkIncomingPartTransitionsMap = listOf(
listOf( // 0 listOf( // 0
Regex("\\d") to 1, Regex("\\d") to 1,
Regex("\\*") to 3, Regex("\\*") to 3,
Regex("f") to 6, Regex("[Ff]") to 6,
Regex("l") to 6, Regex("[Ll]") to 6,
Regex("/") to 5, Regex("/") to 5,
), ),
listOf( // 1 listOf( // 1
@@ -92,7 +95,7 @@ private val checkIncomingPartTransitionsMap = listOf(
Regex("w") to 9, Regex("w") to 9,
), ),
listOf( // 2 listOf( // 2
Regex("l") to 6, Regex("[Ll]") to 6,
Regex("\\d") to 7, Regex("\\d") to 7,
), ),
listOf( // 3 listOf( // 3