Skip to content

Commit 15091b6

Browse files
shanshinsandwwraith
andcommitted
Release 0.7.0-Beta
PR #346 Co-authored-by: Leonid Startsev <[email protected]>
1 parent 9c36932 commit 15091b6

File tree

35 files changed

+270
-355
lines changed

35 files changed

+270
-355
lines changed

Diff for: CHANGELOG.md

+10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,13 @@
1+
0.7.0-Beta / 2023-04-21
2+
===================
3+
### Features
4+
* Added advanced support of Android projects, flavors and flavor dimensions (#316, #319)
5+
* Introduced Kover Tool artifacts for CLI and runtime for offline instrumentation (#322)
6+
7+
### Internal features
8+
* Added dokka docs
9+
* Added binary compatibility validator (#305)
10+
111
0.7.0-Alpha / 2023-02-27
212
===================
313
This is a preview version of new major release with the API rework in order to support configuration cache, project isolation model, Android Gradle plugin and source-set level granularity of configuration.

Diff for: README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Add the following to your top-level build file:
3535

3636
```kotlin
3737
plugins {
38-
id("org.jetbrains.kotlinx.kover") version "0.7.0-Alpha"
38+
id("org.jetbrains.kotlinx.kover") version "0.7.0-Beta"
3939
}
4040
```
4141
</details>
@@ -45,7 +45,7 @@ plugins {
4545

4646
```groovy
4747
plugins {
48-
id 'org.jetbrains.kotlinx.kover' version '0.7.0-Alpha'
48+
id 'org.jetbrains.kotlinx.kover' version '0.7.0-Beta'
4949
}
5050
```
5151
</details>
@@ -65,7 +65,7 @@ buildscript {
6565
}
6666

6767
dependencies {
68-
classpath("org.jetbrains.kotlinx:kover-gradle-plugin:0.7.0-Alpha")
68+
classpath("org.jetbrains.kotlinx:kover-gradle-plugin:0.7.0-Beta")
6969
}
7070
}
7171

@@ -84,7 +84,7 @@ buildscript {
8484
mavenCentral()
8585
}
8686
dependencies {
87-
classpath 'org.jetbrains.kotlinx:kover-gradle-plugin:0.7.0-Alpha'
87+
classpath 'org.jetbrains.kotlinx:kover-gradle-plugin:0.7.0-Beta'
8888
}
8989
}
9090

Diff for: build.gradle.kts

+92-6
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import java.time.LocalDate
2+
import java.time.format.DateTimeFormatter
13
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
24
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
35

@@ -23,9 +25,6 @@ val kotlinVersion = property("kotlinVersion")
2325
val localRepositoryUri = uri("build/.m2")
2426
val junitParallelism = findProperty("kover.test.junit.parallelism")?.toString()
2527

26-
// override version in deploy
27-
properties["DeployVersion"]?.let { version = it }
28-
2928
sourceSets {
3029
create("functionalTest") {
3130
compileClasspath += sourceSets.main.get().output + configurations.testRuntimeClasspath
@@ -77,7 +76,8 @@ val functionalTest by tasks.registering(Test::class) {
7776
systemProperties["junit.jupiter.execution.parallel.mode.default"] = "concurrent"
7877
systemProperties["junit.jupiter.execution.parallel.mode.classes.default"] = "concurrent"
7978
systemProperties["junit.jupiter.execution.parallel.config.strategy"] = "fixed"
80-
systemProperties["junit.jupiter.execution.parallel.config.fixed.parallelism"] = junitParallelism?.toIntOrNull()?.toString() ?: "2"
79+
systemProperties["junit.jupiter.execution.parallel.config.fixed.parallelism"] =
80+
junitParallelism?.toIntOrNull()?.toString() ?: "2"
8181
// this is necessary if tests are run for debugging, in this case it is more difficult to stop at the test you need when they are executed in parallel and you are not sure on which test the execution will pause
8282
systemProperties["junit.jupiter.execution.parallel.enabled"] = if (junitParallelism == "no") "false" else "true"
8383

@@ -96,7 +96,10 @@ fun Test.setSystemPropertyFromProject(name: String) {
9696
if (project.hasProperty(name)) systemProperties[name] = project.property(name)
9797
}
9898

99-
fun Test.setBooleanSystemPropertyFromProject(projectPropertyName: String, systemPropertyName: String = projectPropertyName) {
99+
fun Test.setBooleanSystemPropertyFromProject(
100+
projectPropertyName: String,
101+
systemPropertyName: String = projectPropertyName
102+
) {
100103
if (project.hasProperty(projectPropertyName)) systemProperties[systemPropertyName] = true.toString()
101104
}
102105

@@ -156,5 +159,88 @@ gradlePlugin {
156159
}
157160

158161
apiValidation {
159-
ignoredProjects.addAll(listOf("kover-cli", "kover-offline"))
162+
ignoredProjects.addAll(listOf("kover-cli", "kover-offline-runtime"))
163+
}
164+
165+
166+
167+
// ====================
168+
// Release preparation
169+
// ====================
170+
tasks.register("prepareRelease") {
171+
dependsOn(tasks.named("dokkaHtml"))
172+
173+
doLast {
174+
if (!project.hasProperty("releaseVersion")) {
175+
throw GradleException("Property 'releaseVersion' is required to run this task")
176+
}
177+
val releaseVersion = project.property("releaseVersion") as String
178+
val prevReleaseVersion = project.property("kover.release.version") as String
179+
180+
val dir = layout.projectDirectory
181+
182+
183+
dir.file("gradle.properties").asFile.patchProperties(releaseVersion)
184+
dir.file("CHANGELOG.md").asFile.patchChangeLog(releaseVersion)
185+
186+
dir.file("README.md").asFile.replaceInFile(prevReleaseVersion, releaseVersion)
187+
188+
// replace versions in examples
189+
dir.dir("examples").asFileTree.matching {
190+
include("**/*gradle")
191+
include("**/*gradle.kts")
192+
}.files.forEach {
193+
it.replaceInFile(prevReleaseVersion, releaseVersion)
194+
}
195+
}
196+
}
197+
198+
fun File.patchChangeLog(releaseVersion: String) {
199+
val oldContent = readText()
200+
writer().use {
201+
it.appendLine("$releaseVersion / ${LocalDate.now().format(DateTimeFormatter.ISO_DATE)}")
202+
it.appendLine("===================")
203+
it.appendLine("TODO add changelog!")
204+
it.appendLine()
205+
it.append(oldContent)
206+
}
207+
}
208+
209+
fun File.patchProperties(releaseVersion: String) {
210+
val oldLines = readLines()
211+
writer().use { writer ->
212+
oldLines.forEach { line ->
213+
when {
214+
line.startsWith("version=") -> writer.append("version=").appendLine(increaseSnapshotVersion(releaseVersion))
215+
line.startsWith("kover.release.version=") -> writer.append("kover.release.version=").appendLine(releaseVersion)
216+
else -> writer.appendLine(line)
217+
}
218+
}
219+
}
220+
}
221+
222+
// modify version '1.2.3' to '1.2.4' and '1.2.3-Beta' to '1.2.3-SNAPSHOT'
223+
fun increaseSnapshotVersion(releaseVersion: String): String {
224+
// remove postfix like '-Alpha'
225+
val correctedVersion = releaseVersion.substringBefore('-')
226+
if (correctedVersion != releaseVersion) {
227+
return "$correctedVersion-SNAPSHOT"
228+
}
229+
230+
// split version 0.0.0 to int parts
231+
val parts = correctedVersion.split('.')
232+
val newVersion = parts.mapIndexed { index, value ->
233+
if (index == parts.size - 1) {
234+
(value.toInt() + 1).toString()
235+
} else {
236+
value
237+
}
238+
}.joinToString(".")
239+
240+
return "$newVersion-SNAPSHOT"
241+
}
242+
243+
fun File.replaceInFile(old: String, new: String) {
244+
val newContent = readText().replace(old, new)
245+
writeText(newContent)
160246
}

Diff for: buildSrc/src/main/kotlin/kover-publishing-conventions.gradle.kts

+3-1
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,10 @@ fun MavenPublication.addMetadata() {
101101
if (!name.isPresent) {
102102
name.set(artifactId)
103103
}
104+
if (hasProperty("releaseVersion")) {
105+
version = property("releaseVersion") as String
106+
}
104107
groupId = "org.jetbrains.kotlinx"
105-
106108
description.set(extension.description)
107109

108110
url.set("https://github.com/Kotlin/kotlinx-kover")

Diff for: docs/dokka/-kover -gradle -plugin/kotlinx.kover.gradle.plugin.dsl/-kover-html-report-config/index.html

+10-10
Original file line numberDiff line numberDiff line change
@@ -58,24 +58,24 @@
5858
<div class="breadcrumbs"><a href="../../../index.html">Kover Gradle Plugin</a><span class="delimiter">/</span><a href="../index.html">kotlinx.kover.gradle.plugin.dsl</a><span class="delimiter">/</span><span class="current">KoverHtmlReportConfig</span></div>
5959
<div class="cover ">
6060
<h1 class="cover"><span>Kover</span><wbr></wbr><span>Html</span><wbr></wbr><span>Report</span><wbr></wbr><span><span>Config</span></span></h1>
61-
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">interface </span><a href="index.html">KoverHtmlReportConfig</a> : <a href="../-kover-general-html-report-config/index.html">KoverGeneralHtmlReportConfig</a></div></div></div>
61+
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">interface </span><a href="index.html">KoverHtmlReportConfig</a></div></div></div>
6262
</div>
6363
<div class="tabbedcontent">
6464
<div class="tabs-section" tabs-section="tabs-section"><button class="section-tab" data-active="" data-togglable="CONSTRUCTOR,TYPE,FUNCTION,PROPERTY">Members</button></div>
6565
<div class="tabs-section-body">
6666
<div data-togglable="FUNCTION">
6767
<h2 class="">Functions</h2>
68-
<div class="table"><a data-name="-1497451183%2FFunctions%2F769193423" anchor-label="filters" id="-1497451183%2FFunctions%2F769193423" data-filterable-set=":dokkaHtml/main"></a>
68+
<div class="table"><a data-name="547270927%2FFunctions%2F769193423" anchor-label="filters" id="547270927%2FFunctions%2F769193423" data-filterable-set=":dokkaHtml/main"></a>
6969
<div class="table-row" data-filterable-current=":dokkaHtml/main" data-filterable-set=":dokkaHtml/main">
7070
<div class="main-subrow keyValue ">
7171
<div class=""><span class="inline-flex">
72-
<div><a href="../-kover-general-html-report-config/filters.html"><span><span>filters</span></span></a></div>
73-
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="-1497451183%2FFunctions%2F769193423"></span>
72+
<div><a href="filters.html"><span><span>filters</span></span></a></div>
73+
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="547270927%2FFunctions%2F769193423"></span>
7474
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
7575
</span></span></div>
7676
<div>
7777
<div class="title">
78-
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">fun </span><a href="../-kover-general-html-report-config/filters.html"><span class="token function">filters</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">config<span class="token operator">: </span><span data-unresolved-link="org.gradle.api/Action///PointingToDeclaration/">Action</span><span class="token operator">&lt;</span><span class="token keyword"></span><a href="../-kover-report-filters/index.html">KoverReportFilters</a><span class="token operator">&gt;</span></span></span><span class="token punctuation">)</span></div><div class="brief "><p class="paragraph">Override common filters only for HTML report.</p></div></div></div>
78+
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">fun </span><a href="filters.html"><span class="token function">filters</span></a><span class="token punctuation">(</span><span class="parameters "><span class="parameter ">config<span class="token operator">: </span><span data-unresolved-link="org.gradle.api/Action///PointingToDeclaration/">Action</span><span class="token operator">&lt;</span><span class="token keyword"></span><a href="../-kover-report-filters/index.html">KoverReportFilters</a><span class="token operator">&gt;</span></span></span><span class="token punctuation">)</span></div><div class="brief "><p class="paragraph">Override common filters only for HTML report.</p></div></div></div>
7979
</div>
8080
</div>
8181
</div>
@@ -109,22 +109,22 @@ <h2 class="">Properties</h2>
109109
</span></span></div>
110110
<div>
111111
<div class="title">
112-
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">var </span><a href="on-check.html">onCheck</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator">?</span></div><div class="brief "><p class="paragraph">Generate an HTML report when running the <code class="lang-kotlin">check</code> task. <code class="lang-kotlin">null</code> by default and report isn't generated on <code class="lang-kotlin">check</code> task.</p></div></div></div>
112+
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">var </span><a href="on-check.html">onCheck</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></div><div class="brief "><p class="paragraph">Generate an HTML report when running the <code class="lang-kotlin">check</code> task.</p></div></div></div>
113113
</div>
114114
</div>
115115
</div>
116116
</div>
117-
<a data-name="-355221890%2FProperties%2F769193423" anchor-label="title" id="-355221890%2FProperties%2F769193423" data-filterable-set=":dokkaHtml/main"></a>
117+
<a data-name="-1152074368%2FProperties%2F769193423" anchor-label="title" id="-1152074368%2FProperties%2F769193423" data-filterable-set=":dokkaHtml/main"></a>
118118
<div class="table-row" data-filterable-current=":dokkaHtml/main" data-filterable-set=":dokkaHtml/main">
119119
<div class="main-subrow keyValue ">
120120
<div class=""><span class="inline-flex">
121-
<div><a href="../-kover-general-html-report-config/title.html"><span><span>title</span></span></a></div>
122-
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="-355221890%2FProperties%2F769193423"></span>
121+
<div><a href="title.html"><span><span>title</span></span></a></div>
122+
<span class="anchor-wrapper"><span class="anchor-icon" pointing-to="-1152074368%2FProperties%2F769193423"></span>
123123
<div class="copy-popup-wrapper "><span class="copy-popup-icon"></span><span>Link copied to clipboard</span></div>
124124
</span></span></div>
125125
<div>
126126
<div class="title">
127-
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">var </span><a href="../-kover-general-html-report-config/title.html">title</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span></div><div class="brief "><p class="paragraph">Specify header in HTML reports.</p></div></div></div>
127+
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">var </span><a href="title.html">title</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a><span class="token operator">?</span></div><div class="brief "><p class="paragraph">Specify header in HTML reports.</p></div></div></div>
128128
</div>
129129
</div>
130130
</div>

Diff for: docs/dokka/-kover -gradle -plugin/kotlinx.kover.gradle.plugin.dsl/-kover-html-report-config/on-check.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<div class="cover ">
6060
<h1 class="cover"><span>on</span><wbr></wbr><span><span>Check</span></span></h1>
6161
</div>
62-
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">var </span><a href="on-check.html">onCheck</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a><span class="token operator">?</span></div><p class="paragraph">Generate an HTML report when running the <code class="lang-kotlin">check</code> task. <code class="lang-kotlin">null</code> by default and report isn't generated on <code class="lang-kotlin">check</code> task.</p></div></div>
62+
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">abstract </span><span class="token keyword"></span><span class="token keyword">var </span><a href="on-check.html">onCheck</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></div><p class="paragraph">Generate an HTML report when running the <code class="lang-kotlin">check</code> task.</p></div></div>
6363
</div>
6464
<div class="footer">
6565
<span class="go-to-top-icon"><a href="#content" id="go-to-top-link"></a></span><span>© 2023 Copyright</span><span

Diff for: docs/dokka/-kover -gradle -plugin/kotlinx.kover.gradle.plugin.dsl/-kover-names/-d-e-p-e-n-d-e-n-c-y_-c-o-n-f-i-g-u-r-a-t-i-o-n_-n-a-m-e.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<div class="cover ">
6060
<h1 class="cover"><span><span>DEPENDENCY_CONFIGURATION_NAME</span></span></h1>
6161
</div>
62-
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">const </span><span class="token keyword">val </span><a href="-d-e-p-e-n-d-e-n-c-y_-c-o-n-f-i-g-u-r-a-t-i-o-n_-n-a-m-e.html">DEPENDENCY_CONFIGURATION_NAME</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></div><p class="paragraph">Name of the configurations to add dependency on Kover setup in another project.</p></div></div>
62+
<div class="platform-hinted " data-platform-hinted="data-platform-hinted"><div class="content sourceset-dependent-content" data-active="" data-togglable=":dokkaHtml/main"><div class="symbol monospace"><span class="token keyword">const </span><span class="token keyword">val </span><a href="-d-e-p-e-n-d-e-n-c-y_-c-o-n-f-i-g-u-r-a-t-i-o-n_-n-a-m-e.html">DEPENDENCY_CONFIGURATION_NAME</a><span class="token operator">: </span><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html">String</a></div><p class="paragraph">Name of the configurations to add dependency on Kover reports from another project.</p></div></div>
6363
</div>
6464
<div class="footer">
6565
<span class="go-to-top-icon"><a href="#content" id="go-to-top-link"></a></span><span>© 2023 Copyright</span><span

0 commit comments

Comments
 (0)