Skip to content

Commit bbbee6c

Browse files
respencer-nclclaude
andcommitted
Document With.Akka.forRelease parameters and add usage guidance
- Update CLAUDE.md to direct users to README.md as authoritative source - Update version references from 1.0.0/1.2.0 to 1.2.4 - Document all With.Akka.forRelease boolean parameters in README.md - Add note for riddl-server-infrastructure dependents about transitive deps - Include examples for basic and full-featured Akka configurations Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 1df9e86 commit bbbee6c

File tree

2 files changed

+83
-9
lines changed

2 files changed

+83
-9
lines changed

CLAUDE.md

Lines changed: 36 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,20 @@
11
# sbt-ossuminc Plugin Guide for Claude Code
22

3-
This file provides specific guidance for working with the sbt-ossuminc plugin. For general ossuminc organization patterns, see `../CLAUDE.md` (parent directory).
3+
This file provides specific guidance for working with the sbt-ossuminc plugin.
4+
For general ossuminc organization patterns, see `../CLAUDE.md` (parent
5+
directory).
6+
7+
**IMPORTANT:** For comprehensive usage documentation, configuration options,
8+
and examples, see `README.md` in this directory. This CLAUDE.md provides a
9+
quick reference; the README is the authoritative source.
410

511
## Project Overview
612

7-
SBT plugin providing build infrastructure and configuration helpers for Ossum Inc. projects. Defines declarative project types and configuration options used across all Scala projects in the organization.
13+
SBT plugin providing build infrastructure and configuration helpers for Ossum
14+
Inc. projects. Defines declarative project types and configuration options
15+
used across all Scala projects in the organization.
816

9-
**Current version: 1.0.0** (updated Jan 2026)
17+
**Current version: 1.2.4** (updated Jan 2026)
1018

1119
## Project Types Provided
1220

@@ -68,13 +76,36 @@ SBT plugin providing build infrastructure and configuration helpers for Ossum In
6876
))
6977
```
7078

79+
**`With.Akka.forRelease(...)`** - Akka platform dependencies (v1.2.4+)
80+
- See README.md for full parameter documentation
81+
- Core Akka modules are always included
82+
- Optional modules via boolean flags: `withHTTP`, `withGrpc`, `withPersistence`,
83+
`withProjections`, `withManagement`, `withManagementKubernetes`, `withKafka`,
84+
`withInsights`
85+
- Example:
86+
```scala
87+
.configure(With.Akka.forRelease(
88+
"25.10",
89+
withHTTP = true,
90+
withPersistence = true,
91+
withInsights = true
92+
))
93+
```
94+
95+
**Note for riddl-server-infrastructure dependents:** If your server depends on
96+
`riddl-server-infrastructure`, some Akka modules (core, HTTP) are already
97+
provided transitively. Only use `With.Akka.forRelease()` if you need modules
98+
beyond what the server infrastructure provides (e.g., Kafka, Insights,
99+
Management, Projections).
100+
71101
**Other parameterized options:**
72102
- `With.Laminar(...)` - Laminar + DOM dependencies
73103
- `With.MiMa(...)` - Binary compatibility checking
74104
- `With.Packaging.universal(...)` - Universal packaging
75105
- `With.GithubPublishing` - GitHub Packages publishing
76106

77-
Refer to the comprehensive README.md in this directory for all options.
107+
**For all configuration options, examples, and migration notes, refer to
108+
README.md in this directory.**
78109

79110
## Migration from 0.x to 1.0.0
80111

@@ -104,7 +135,7 @@ sbt scalafmt
104135
All Scala projects in ossuminc use this plugin. Add to `project/plugins.sbt`:
105136

106137
```scala
107-
addSbtPlugin("com.ossuminc" % "sbt-ossuminc" % "1.0.0")
138+
addSbtPlugin("com.ossuminc" % "sbt-ossuminc" % "1.2.4")
108139
```
109140

110141
### Example CrossModule Definition

README.md

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ In your `project/plugins.sbt` file, add the GitHub Packages resolver and the plu
8282
// GitHub Packages resolver for sbt-ossuminc
8383
resolvers += "GitHub Packages" at "https://maven.pkg.github.com/ossuminc/sbt-ossuminc"
8484

85-
addSbtPlugin("com.ossuminc" % "sbt-ossuminc" % "1.2.0")
85+
addSbtPlugin("com.ossuminc" % "sbt-ossuminc" % "1.2.4")
8686
```
8787

8888
### ~/sbt/1.0/github.sbt
@@ -445,16 +445,59 @@ Shortcuts that combine multiple helpers:
445445

446446
These helpers accept parameters for customization:
447447

448-
#### **`With.Akka.forRelease(release: String)`**
448+
#### **`With.Akka.forRelease(...)`**
449449
Add Akka dependencies to the project. Akka requires a commercial license and repository token since 2024.
450-
- **`release`**: Akka version (`"24.10"` or `"25.10"` (latest))
451450

451+
**Parameters:**
452+
- **`release`**: Akka version (`"24.10"` or `"25.10"` (latest), default: `""` = latest)
453+
- **`withHTTP`**: Include Akka HTTP modules (default: `false`)
454+
- **`withGrpc`**: Include Akka gRPC runtime (default: `false`)
455+
- **`withPersistence`**: Include Akka Persistence R2DBC (default: `false`)
456+
- **`withProjections`**: Include Akka Projections (default: `false`)
457+
- **`withManagement`**: Include Akka Management core (health checks, cluster HTTP) (default: `false`)
458+
- **`withManagementKubernetes`**: Include Kubernetes modules (discovery, lease, rolling updates) (default: `false`)
459+
- **`withKafka`**: Include Alpakka Kafka connector (default: `false`)
460+
- **`withInsights`**: Include Akka Insights/Cinnamon telemetry (default: `false`)
461+
- **`withInsightsPrometheus`**: Include Prometheus export (default: `true`, only applies when `withInsights = true`)
462+
- **`withInsightsOpenTelemetry`**: Include OpenTelemetry tracing (default: `true`, only applies when `withInsights = true`)
463+
464+
**Basic usage (core modules only):**
452465
```scala
453466
Module("my-actor-system")
454467
.configure(With.Akka.forRelease("25.10"))
455468
```
456469

457-
> **Note**: Akka repository access requires a token. Configure per Akka's instructions at https://akka.io/key
470+
**Full-featured server example:**
471+
```scala
472+
Module("my-server")
473+
.configure(With.Akka.forRelease(
474+
"25.10",
475+
withHTTP = true,
476+
withPersistence = true,
477+
withProjections = true,
478+
withManagement = true,
479+
withManagementKubernetes = true,
480+
withInsights = true
481+
))
482+
```
483+
484+
**Modules included by default (core):**
485+
- akka-actor, akka-actor-typed
486+
- akka-cluster, akka-cluster-typed, akka-cluster-sharding, akka-cluster-sharding-typed, akka-cluster-tools
487+
- akka-coordination, akka-discovery, akka-distributed-data
488+
- akka-persistence, akka-persistence-typed, akka-persistence-query
489+
- akka-remote, akka-serialization-jackson, akka-slf4j
490+
- akka-stream, akka-stream-typed
491+
- Test: akka-testkit, akka-actor-testkit-typed, akka-stream-testkit
492+
493+
> **Note**: Akka repository access requires `AKKA_REPO_TOKEN` environment variable.
494+
> Get your token at https://account.akka.io
495+
496+
> **Note for riddl-server-infrastructure dependents:** If your project depends on
497+
> `riddl-server-infrastructure`, Akka core and HTTP modules are already provided
498+
> transitively. Only use `With.Akka.forRelease()` if you need additional modules
499+
> beyond what the server infrastructure provides (e.g., Kafka, Insights, Management,
500+
> Projections, or specific persistence backends).
458501
459502
#### **`With.AsciiDoc(...)`**
460503
Configure AsciiDoc document generation for static websites and PDFs.

0 commit comments

Comments
 (0)