Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,20 @@ Both developers and AI agents are expected to add entries as they encounter surp
- **Do not** add codebase overviews, directory listings, or anything discoverable by reading the source.
- Keep entries concise: one line per lesson, grouped under a heading if a theme emerges.

## Conventions

### Markdown authoring

Markdown files use [semantic line breaks](https://sembr.org/):
break a line after a sentence,
and optionally at clause boundaries within a long sentence,
so that diffs stay meaningful and reviewable.

There is no column width limit —
never reflow or hard-wrap a paragraph to fit some character count.
Modern editors soft-wrap Markdown visually,
see the [README](README.md#markdown-soft-wrapping-in-the-ide) for how to enable it.

## Known gotchas

## Anti-patterns to avoid
Expand Down
23 changes: 13 additions & 10 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# Development

Maintenance notes for working on this project itself. From time to time, it is worth to update
the build tooling and dependencies.
Maintenance notes for working on this project itself.
From time to time, it is worth to update the build tooling and dependencies.

## Update gradlew wrapper

Expand All @@ -11,23 +11,25 @@ the build tooling and dependencies.

## Update all the dependencies to the latest versions

All the gradle dependencies are managed by the [libs.versions.toml](gradle/libs.versions.toml) file in the `gradle` dir.
All the gradle dependencies are managed by the
[libs.versions.toml](gradle/libs.versions.toml) file in the `gradle` dir.

It is easy to check for the latest versions by running:

```shell
./gradlew dependencyUpdates --no-parallel
```

This only reports the available updates. To apply them automatically to
[libs.versions.toml](gradle/libs.versions.toml), run the
[version-catalog-update](https://github.com/littlerobots/version-catalog-update-plugin) plugin:
This only reports the available updates.
To apply them automatically to [libs.versions.toml](gradle/libs.versions.toml),
run the [version-catalog-update](https://github.com/littlerobots/version-catalog-update-plugin) plugin:

```shell
./gradlew versionCatalogUpdate
```

To review and pick the updates one by one instead of applying them all, use the interactive mode:
To review and pick the updates one by one instead of applying them all,
use the interactive mode:

```shell
./gradlew versionCatalogUpdate --interactive
Expand All @@ -40,6 +42,7 @@ then apply the staged changes with:
```

> [!NOTE]
> The plugin is configured in [build.gradle.kts](build.gradle.kts) to preserve the manual ordering of
> `libs.versions.toml` (`sortByKey = false`) and to keep the `kotlinTarget`, `javaTarget`, and `asm`
> version constants, which have no `version.ref` and would otherwise be removed as unused.
> The plugin is configured in [build.gradle.kts](build.gradle.kts)
> to preserve the manual ordering of `libs.versions.toml` (`sortByKey = false`),
> and to keep the `kotlinTarget`, `javaTarget`, and `asm` version constants,
> which have no `version.ref` and would otherwise be removed as unused.
40 changes: 38 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,5 +51,41 @@ dependencies {

## Development

See [DEVELOPMENT.md](DEVELOPMENT.md) for maintenance notes — updating the gradle wrapper and the
project dependencies.
See [DEVELOPMENT.md](DEVELOPMENT.md) for maintenance notes —
updating the gradle wrapper and the project dependencies.

## Documentation conventions

All the Markdown files in this project are authored with
[semantic line breaks](https://sembr.org/).
Each sentence starts on its own line,
and long sentences may be split further at clause boundaries.
This keeps `git diff` and code review focused on the sentence that actually changed,
instead of on a whole reflowed paragraph.

There is no maximum line length,
and paragraphs are never hard-wrapped to a fixed column.
Line length is a rendering concern,
so it is left to the editor.

### Markdown soft wrapping in the IDE

**IntelliJ IDEA**:
`Settings` → `Editor` → `General` → `Soft Wraps`,
enable `Soft-wrap these files` and make sure the mask contains `*.md`
(the default mask already does).
To toggle it for the file at hand only,
use `View` → `Active Editor` → `Soft-Wrap`.

**VS Code**:
add the following to your `settings.json`:

```json
{
"[markdown]": {
"editor.wordWrap": "on"
}
}
```

Alternatively toggle it for the current file with `Alt`+`Z` (`Option`+`Z` on macOS).
8 changes: 4 additions & 4 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
# libraries
kotlinTarget = "2.4"
javaTarget = "17"
kotlin = "2.4.0"
kotlin = "2.4.10"
xemanticKotlinTest = "1.17.5"
asm = "9.9.1"
# plugins
versionsPlugin = "0.54.0"
versionsPlugin = "0.58.0"
versionCatalogUpdatePlugin = "1.1.0"
dokkaPlugin = "2.2.0"
mavenPublishPlugin = "0.36.0"
jreleaserPlugin = "1.24.0"
mavenPublishPlugin = "0.37.0"
jreleaserPlugin = "1.25.0"
binaryCompatibilityValidatorPlugin = "0.18.1"
xemanticConventionsPlugin = "0.6.8"

Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.5.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-bin.zip
networkTimeout=10000
retries=0
retryBackOffMs=500
Expand Down
Loading