Add KDocs for `merge` APIs
- Dominant language
- Kotlin
- Stars
- 1.1k
- Forks
- 83
- Avg merge
- 4d 12h
- Merged PRs (30d)
- 30
Description
## Add KDocs for `merge` APIs
`core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/merge.kt` contains public `merge` APIs without KDocs.
The site page already describes the main behavior:
https://kotlin.github.io/dataframe/merge.html
KDocs should be aligned with the documented `merge` flow:
```kotlin
merge { columns }
[.notNull()]
.by(delimiter) | .by { merger }
[.into(column) | .intoList()]
```
### What it does
`merge` combines several selected columns into a single result per row.
By default, selected values are collected into a `List`.
The result can be written back into a dataframe with `into(...)`, or returned as a standalone list with `intoList()`.
### Scope
Add concise KDocs for non-deprecated public APIs in `merge.kt`:
- `DataFrame.merge { ... }`
- `DataFrame.merge(vararg columns: String)`
- `Merge.notNull()`
- `Merge.asStrings()`
- `Merge.by(separator, prefix, postfix, limit, truncated)`
- `Merge.by { ... }`
- `Merge.into(columnName: String)`
- `Merge.into(path: ColumnPath)`
- `MergeWithTransform.into(columnName: String)`
- `MergeWithTransform.into(path: ColumnPath)`
- `Merge.intoList()`
- `MergeWithTransform.intoList()`
Deprecated access-api overloads do not need new KDocs.
### KDocs should explain
- `merge` is the reverse operation of `split`.
- Selected column values are collected row-wise.
- Without `by(...)`, values are merged into `List`.
- `by(separator, ...)` joins selected values into a `String`.
- `by { ... }` allows custom transformation of collected row values.
- `notNull()` removes `null` values and empty row values before merging.
- `into(...)` writes the merged result into the target column/path.
- `intoList()` returns merged values without modifying the dataframe structure.
- When heterogeneous columns are merged, users may need explicit casts inside the merger lambda.
### Acceptance criteria
- Non-deprecated public `merge` APIs have concise KDocs.
- Deprecated access-api overloads are skipped.
- KDocs are consistent with the site page.
- KDocs cover `notNull`, `by`, `into`, and `intoList`.
Contributor guide
Research direction
Start in core/src/main/kotlin/org/jetbrains/kotlinx/dataframe/api/merge.kt and compare the public non-deprecated APIs with the merge site page. Add concise KDocs covering merge, notNull, by, into, and intoList, while skipping deprecated access-api overloads. Done means all listed APIs are documented consistently with the documented merge flow.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 88/100