Skip to content

Commit ee752c7

Browse files
committed
Merge pull request '0.10.2' (!87) from dev into master
Reviewed-on: https://git.sciprog.center/kscience/dataforge-core/pulls/87
2 parents 849255f + ecfb523 commit ee752c7

File tree

81 files changed

+3130
-103
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+3130
-103
lines changed

.github/workflows/build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ jobs:
1414
timeout-minutes: 40
1515
steps:
1616
- name: Checkout sources
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@v5
1818
- name: Setup Java
19-
uses: actions/setup-java@v4
19+
uses: actions/setup-java@v5
2020
with:
2121
distribution: 'temurin'
22-
java-version: 17
22+
java-version: 21
2323
- name: Setup Gradle
2424
uses: gradle/actions/setup-gradle@v4
2525
- name: Build with Gradle

CHANGELOG.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,20 @@
1414

1515
### Security
1616

17+
## 0.10.2 - 2025-12-17
18+
19+
### Added
20+
21+
- Move Tables-kt to DataForge repository and make it follow DataForge versioning
22+
23+
### Changed
24+
25+
- **BREAKING** `Context.request(plugin)` now has nullable parameter null means taking existing plugin with any configuration.
26+
27+
### Fixed
28+
29+
- Some bugs in name parsing and validation.
30+
1731
## 0.10.1 - 2025-02-23
1832

1933
### Added

README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,11 @@ In this section, we will try to cover DataForge main ideas in the form of questi
110110
>
111111
> **Maturity**: EXPERIMENTAL
112112
113+
### [tables-kt](tables-kt)
114+
> A lightweight multiplatform library for tables
115+
>
116+
> **Maturity**: EXPERIMENTAL
117+
113118
### [dataforge-io/dataforge-io-proto](dataforge-io/dataforge-io-proto)
114119
> ProtoBuf Meta representation
115120
>
@@ -120,3 +125,19 @@ In this section, we will try to cover DataForge main ideas in the form of questi
120125
>
121126
> **Maturity**: PROTOTYPE
122127
128+
### [tables-kt/tables-kt-csv](tables-kt/tables-kt-csv)
129+
>
130+
> **Maturity**: EXPERIMENTAL
131+
132+
### [tables-kt/tables-kt-dataframe](tables-kt/tables-kt-dataframe)
133+
>
134+
> **Maturity**: PROTOTYPE
135+
136+
### [tables-kt/tables-kt-exposed](tables-kt/tables-kt-exposed)
137+
>
138+
> **Maturity**: EXPERIMENTAL
139+
140+
### [tables-kt/tables-kt-jupyter](tables-kt/tables-kt-jupyter)
141+
>
142+
> **Maturity**: EXPERIMENTAL
143+

build.gradle.kts

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
@file:OptIn(ExperimentalAbiValidation::class)
2+
3+
import org.jetbrains.kotlin.gradle.dsl.abi.ExperimentalAbiValidation
14
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
25
import space.kscience.gradle.useApache2Licence
36
import space.kscience.gradle.useSPCTeam
@@ -9,38 +12,43 @@ plugins {
912

1013
allprojects {
1114
group = "space.kscience"
12-
version = "0.10.1"
15+
version = "0.10.2"
1316
}
1417

1518
subprojects {
1619
apply(plugin = "maven-publish")
1720

1821
tasks.withType<KotlinCompile> {
1922
compilerOptions {
20-
freeCompilerArgs.add("-Xcontext-receivers")
23+
freeCompilerArgs.add("-Xcontext-parameters")
2124
}
2225
}
2326
}
2427

25-
dependencies{
28+
dependencies {
2629
subprojects.forEach {
2730
dokka(it)
2831
}
2932
}
3033

3134
readme {
32-
readmeTemplate = file("docs/templates/README-TEMPLATE.md")
35+
readmeTemplate = file("docs/README-TEMPLATE.md")
3336
}
3437

35-
ksciencePublish {
38+
39+
kscienceProject {
3640
pom("https://github.com/SciProgCentre/kmath") {
3741
useApache2Licence()
3842
useSPCTeam()
3943
}
40-
repository("spc", "https://maven.sciprog.center/kscience")
41-
central()
44+
publishTo("spc", "https://maven.sciprog.center/kscience")
45+
publishToCentral()
46+
47+
abiValidation {
48+
filters {
49+
excluded {
50+
annotatedWith.add("space.kscience.dataforge.misc.DFExperimental")
51+
}
52+
}
53+
}
4254
}
43-
44-
apiValidation {
45-
nonPublicMarkers.add("space.kscience.dataforge.misc.DFExperimental")
46-
}

dataforge-context/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Context and provider definitions
66

77
## Artifact:
88

9-
The Maven coordinates of this project are `space.kscience:dataforge-context:0.10.0`.
9+
The Maven coordinates of this project are `space.kscience:dataforge-context:0.10.2`.
1010

1111
**Gradle Kotlin DSL:**
1212
```kotlin
@@ -16,6 +16,6 @@ repositories {
1616
}
1717

1818
dependencies {
19-
implementation("space.kscience:dataforge-context:0.10.0")
19+
implementation("space.kscience:dataforge-context:0.10.2")
2020
}
2121
```

dataforge-context/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ kscience {
88
jvm()
99
js()
1010
native()
11-
wasm()
11+
wasmJs()
1212
useCoroutines()
1313
useSerialization()
1414
commonMain {

dataforge-context/src/commonMain/kotlin/space/kscience/dataforge/context/PluginManager.kt

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,12 +85,13 @@ public class PluginManager internal constructor(
8585
* Fetch a plugin with given meta from the context. If the plugin (with given meta) is already registered, it is returned.
8686
* Otherwise, new child context with the plugin is created. In the later case the context could be retrieved from the plugin.
8787
*/
88-
public inline fun <reified T : Plugin> Context.request(factory: PluginFactory<T>, meta: Meta = Meta.EMPTY): T {
88+
public inline fun <reified T : Plugin> Context.request(factory: PluginFactory<T>, meta: Meta? = null): T {
8989
val existing = plugins[factory]
90-
return if (existing != null && existing.meta == meta) existing
91-
else {
90+
return if (existing != null && (meta == null || existing.meta == meta)) {
91+
existing
92+
} else {
9293
buildContext(name = this@request.name + factory.tag.name) {
93-
plugin(factory, meta)
94+
plugin(factory, meta ?: Meta.EMPTY)
9495
}.plugins[factory]!!
9596
}
9697
}

dataforge-data/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
## Artifact:
88

9-
The Maven coordinates of this project are `space.kscience:dataforge-data:0.10.0`.
9+
The Maven coordinates of this project are `space.kscience:dataforge-data:0.10.2`.
1010

1111
**Gradle Kotlin DSL:**
1212
```kotlin
@@ -16,6 +16,6 @@ repositories {
1616
}
1717

1818
dependencies {
19-
implementation("space.kscience:dataforge-data:0.10.0")
19+
implementation("space.kscience:dataforge-data:0.10.2")
2020
}
2121
```

dataforge-data/build.gradle.kts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@ plugins {
22
id("space.kscience.gradle.mpp")
33
}
44

5-
kscience{
5+
kscience {
66
jvm()
77
js()
88
native()
9-
wasm()
9+
wasmJs()
1010
useCoroutines()
1111
dependencies {
1212
api(projects.dataforgeMeta)
1313
}
1414
}
1515

16-
readme{
16+
readme {
1717
maturity = space.kscience.gradle.Maturity.EXPERIMENTAL
1818
}

dataforge-data/src/commonMain/kotlin/space/kscience/dataforge/data/StaticDataBuilder.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ public fun <T> StaticDataBuilder<T>.node(prefix: Name, block: StaticDataBuilder<
4545
}
4646
}
4747

48-
public fun <T> StaticDataBuilder<T>.node(prefix: String, block: StaticDataBuilder<T>.() -> Unit) =
48+
public fun <T> StaticDataBuilder<T>.node(prefix: String, block: StaticDataBuilder<T>.() -> Unit): Unit =
4949
node(prefix.parseAsName(), block)
5050

5151
public fun <T> StaticDataBuilder<T>.node(prefix: String, tree: DataTree<T>) {

0 commit comments

Comments
 (0)