Kotlin / Kotlin/dataframe

Add KDocs for `merge` APIs

Open Beginner friendly
#1,975 0 comments 0 reactions 0 assignees View on GitHub
KDocs
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.