Skip to content

Commit 501a360

Browse files
committed
Merge pull request '0.10.3' (!88) from dev into main
Reviewed-on: https://git.sciprog.center/kscience/dataforge-core/pulls/88
2 parents ee752c7 + 4ae24b0 commit 501a360

File tree

33 files changed

+646
-496
lines changed

33 files changed

+646
-496
lines changed

.github/workflows/build.yml

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,33 @@ name: Gradle build
22

33
on:
44
push:
5-
branches: [ dev, master ]
5+
branches: [ dev, main ]
66
pull_request:
77

88
jobs:
99
build:
10-
strategy:
11-
matrix:
12-
os: [ macOS-latest, windows-latest ]
13-
runs-on: ${{matrix.os}}
14-
timeout-minutes: 40
10+
runs-on: windows-latest
11+
timeout-minutes: 20
1512
steps:
16-
- name: Checkout sources
17-
uses: actions/checkout@v5
18-
- name: Setup Java
19-
uses: actions/setup-java@v5
20-
with:
21-
distribution: 'temurin'
22-
java-version: 21
23-
- name: Setup Gradle
24-
uses: gradle/actions/setup-gradle@v4
25-
- name: Build with Gradle
26-
run: ./gradlew build
13+
- uses: actions/checkout@v6
14+
- uses: actions/setup-java@v5
15+
with:
16+
java-version: '21'
17+
distribution: 'liberica'
18+
cache: 'gradle'
19+
- name: Gradle Wrapper Validation
20+
uses: gradle/wrapper-validation-action@v1.0.4
21+
- name: Gradle Build
22+
uses: gradle/gradle-build-action@v3
23+
with:
24+
arguments: test jvmTest
25+
- name: Publish Test Report
26+
uses: mikepenz/action-junit-report@v6
27+
if: ${{ !cancelled() }} # always run even if the previous step fails
28+
with:
29+
report_paths: '**/test-results/**/TEST-*.xml'
30+
annotate_only: true
31+
detailed_summary: true
32+
flaky_summary: true
33+
include_empty_in_summary: false
34+
skip_success_summary: true

CHANGELOG.md

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,20 @@
1414

1515
### Security
1616

17+
## 0.10.3 - 2026-01-14
18+
19+
### Changed
20+
21+
- **BREAKING** DataTree builders refactor.
22+
- Introduce DynamicDataBuilder to combine immediate write and updates.
23+
- Tables-kt follows DataForge versioning.
24+
1725
## 0.10.2 - 2025-12-17
1826

1927
### Added
2028

21-
- Move Tables-kt to DataForge repository and make it follow DataForge versioning
29+
- Move Tables-kt to DataForge repository
30+
- Json schema support for MetaDescriptor.
2231

2332
### Changed
2433

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ plugins {
1212

1313
allprojects {
1414
group = "space.kscience"
15-
version = "0.10.2"
15+
version = "0.10.3"
1616
}
1717

1818
subprojects {

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.2`.
9+
The Maven coordinates of this project are `space.kscience:dataforge-context:0.10.3`.
1010

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

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

dataforge-context/src/commonMain/kotlin/space/kscience/dataforge/provider/Path.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ import space.kscience.dataforge.names.Name
2525
import space.kscience.dataforge.names.parseAsName
2626
import kotlin.jvm.JvmInline
2727

28-
private object PathSerializer : KSerializer<Path> {
28+
public object PathSerializer : KSerializer<Path> {
2929

3030
override val descriptor: SerialDescriptor
3131
get() = String.serializer().descriptor

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.2`.
9+
The Maven coordinates of this project are `space.kscience:dataforge-data:0.10.3`.
1010

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

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

dataforge-data/src/commonMain/kotlin/space/kscience/dataforge/actions/AbstractAction.kt

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ public abstract class AbstractAction<T, R>(
3636
*
3737
* @param source the source data tree in case we need several data items to update
3838
* @param actionMeta the metadata used for the whole data tree
39-
* @param updatedData an updated item
4039
*/
4140
protected open suspend fun DataSink<R>.update(
4241
source: DataTree<T>,
@@ -52,20 +51,24 @@ public abstract class AbstractAction<T, R>(
5251
source: DataTree<T>,
5352
meta: Meta,
5453
updatesScope: CoroutineScope
55-
): DataTree<R> = DataTree(
56-
dataType = outputType,
57-
scope = updatesScope,
58-
initialData = DataBuilderScope<R>().generate(source, meta)
54+
): DataTree<R> = DataTree.dynamic<R>(
55+
outputType,
56+
updatesScope,
5957
) {
6058

61-
//propagate updates
62-
val updateSink = DataSink<R> { name, data ->
63-
write(name, data)
64-
}
59+
generate(source, meta).forEach { (name, data) -> data(name, data) }
60+
61+
update {
62+
63+
//propagate updates
64+
val updateSink = DataSink<R> { name, data ->
65+
write(name, data)
66+
}
6567

66-
with(updateSink) {
67-
source.updates.collect {
68-
update(source, meta, it)
68+
with(updateSink) {
69+
source.updates.collect {
70+
update(source, meta, it)
71+
}
6972
}
7073
}
7174
}

dataforge-data/src/commonMain/kotlin/space/kscience/dataforge/actions/MapAction.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,10 +73,10 @@ public class MapAction<T, R>(
7373
outputType = outputType
7474
).apply(block)
7575

76-
//getting new name
76+
//getting the new name
7777
val newName = builder.name
7878

79-
//getting new meta
79+
//getting the new meta
8080
val newMeta = builder.meta.seal()
8181

8282
val newData = Data(builder.outputType, newMeta, dependencies = listOf(data)) {

0 commit comments

Comments
 (0)