mirror of
https://github.com/InsanusMokrassar/krontab.git
synced 2026-08-17 14:46:43 +00:00
Compare commits
28 Commits
v2.6.1
...
renovate/n
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
147af1bcab | ||
| 8aaaa6306d | |||
| 27a8fba44f | |||
| e8f32eec7a | |||
| 029739a90f | |||
| 950a8bccc3 | |||
| fc4e38cf10 | |||
| a3f507500b | |||
| ce087fa538 | |||
| 133f731000 | |||
| 20d44bd531 | |||
| 4ec9dacbae | |||
| ddab74152e | |||
| 2cce483dc8 | |||
| fe5cdbefe8 | |||
| 4379635174 | |||
| d0c3bae000 | |||
| dfedd58b76 | |||
| b59c325641 | |||
| de64a4d806 | |||
| 409ca3770f | |||
| 08ef7281e5 | |||
| c28bf17335 | |||
| bd590c3e3e | |||
| 9c11c0c7fc | |||
| 79375f21e3 | |||
| 0b4dc1b328 | |||
| 4afebd8b7e |
40
CHANGELOG.md
40
CHANGELOG.md
@@ -1,5 +1,45 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
|
* `Version`:
|
||||||
|
* `Kotlin`: `2.1.0`
|
||||||
|
* `Coroutines`: `1.10.1`
|
||||||
|
* Add WASM support (solution of [#137](https://github.com/InsanusMokrassar/krontab/issues/137))
|
||||||
|
|
||||||
## 2.6.1
|
## 2.6.1
|
||||||
|
|
||||||
* Fixes in parsing of string parts
|
* Fixes in parsing of string parts
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||

|

|
||||||

|

|
||||||

|

|
||||||
|

|
||||||
|
|
||||||
[](https://insanusmokrassar.github.io/krontab/)
|
[](https://insanusmokrassar.github.io/krontab/)
|
||||||
[](https://docs.inmo.dev/krontab/index.html)
|
[](https://docs.inmo.dev/krontab/index.html)
|
||||||
|
|||||||
28
build.gradle
28
build.gradle
@@ -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
|
||||||
@@ -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()
|
||||||
@@ -56,12 +71,20 @@ kotlin {
|
|||||||
browser()
|
browser()
|
||||||
nodejs()
|
nodejs()
|
||||||
}
|
}
|
||||||
android {
|
androidTarget {
|
||||||
publishAllLibraryVariants()
|
publishLibraryVariants(
|
||||||
|
"release",
|
||||||
|
"debug",
|
||||||
|
)
|
||||||
}
|
}
|
||||||
linuxX64()
|
linuxX64()
|
||||||
mingwX64()
|
mingwX64()
|
||||||
linuxArm64()
|
linuxArm64()
|
||||||
|
wasm {
|
||||||
|
browser()
|
||||||
|
nodejs()
|
||||||
|
d8()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
sourceSets {
|
sourceSets {
|
||||||
@@ -85,6 +108,7 @@ kotlin {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation kotlin('test-common')
|
implementation kotlin('test-common')
|
||||||
implementation kotlin('test-annotations-common')
|
implementation kotlin('test-annotations-common')
|
||||||
|
implementation kotlin('test')
|
||||||
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlin_coroutines_version"
|
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$kotlin_coroutines_version"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
0
changelog_parser.sh
Normal file → Executable file
0
changelog_parser.sh
Normal file → Executable 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")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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}"
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
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.js.generate.externals=true
|
||||||
@@ -9,32 +10,34 @@ android.useAndroidX=true
|
|||||||
android.enableJetifier=false
|
android.enableJetifier=false
|
||||||
|
|
||||||
|
|
||||||
kotlin_version=2.0.21
|
kotlin_version=2.3.21
|
||||||
kotlin_coroutines_version=1.9.0
|
kotlin_coroutines_version=1.11.0
|
||||||
kotlin_serialization_version=1.7.3
|
kotlin_serialization_version=1.11.0
|
||||||
|
|
||||||
dokka_version=1.9.20
|
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=8.13.+
|
||||||
android_minSdkVersion=21
|
android_minSdkVersion=21
|
||||||
android_compileSdkVersion=35
|
android_compileSdkVersion=36
|
||||||
android_buildToolsVersion=35.0.0
|
android_buildToolsVersion=36.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.6.1
|
version=2.10.0
|
||||||
android_code_version=45
|
android_code_version=51
|
||||||
|
|||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
@@ -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.10.2-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip
|
||||||
|
|||||||
@@ -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')
|
credentials {
|
||||||
password = project.hasProperty('GITHUBPACKAGES_PASSWORD') ? project.property('GITHUBPACKAGES_PASSWORD') : System.getenv('GITHUBPACKAGES_PASSWORD')
|
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')
|
credentials {
|
||||||
password = project.hasProperty('INMONEXUS_PASSWORD') ? project.property('INMONEXUS_PASSWORD') : System.getenv('INMONEXUS_PASSWORD')
|
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')
|
credentials {
|
||||||
password = project.hasProperty('SONATYPE_PASSWORD') ? project.property('SONATYPE_PASSWORD') : System.getenv('SONATYPE_PASSWORD')
|
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')
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user