Skip to content

Commit 9372420

Browse files
committed
Update version references to 0.4.0 across documentation, dependencies, and CLI artifacts. Update feature lists, restructure packages, and revise formats for consistency with the 0.4.0 release.
1 parent 04a371e commit 9372420

8 files changed

Lines changed: 180 additions & 206 deletions

File tree

README.md

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
![License](https://img.shields.io/badge/license-MIT-red)
22
![Maven Central](https://img.shields.io/maven-central/v/de.splatgames.aether/aether-datafixers)
3-
![Version](https://img.shields.io/badge/version-0.3.0-orange)
3+
![Version](https://img.shields.io/badge/version-0.4.0-orange)
44

55
# Aether Datafixers 🔧
66

@@ -10,7 +10,7 @@ inspired by Minecraft's DataFixer Upper (DFU), with a focus on **simplicity**, *
1010

1111
---
1212

13-
## ✨ Features (v0.3.0)
13+
## ✨ Features (v0.4.0)
1414

1515
-**Schema-Based Versioning** — Define data types per version with `Schema` and `TypeRegistry`
1616
-**Forward Patching** — Apply `DataFix` instances sequentially to migrate data across versions
@@ -89,23 +89,23 @@ Dynamic<?> updated = fixer.update(
8989
<dependency>
9090
<groupId>de.splatgames.aether.datafixers</groupId>
9191
<artifactId>aether-datafixers-core</artifactId>
92-
<version>0.3.0</version>
92+
<version>0.4.0</version>
9393
</dependency>
9494
```
9595

9696
**Gradle (Groovy)**
9797

9898
```groovy
9999
dependencies {
100-
implementation 'de.splatgames.aether.datafixers:aether-datafixers-core:0.3.0'
100+
implementation 'de.splatgames.aether.datafixers:aether-datafixers-core:0.4.0'
101101
}
102102
```
103103

104104
**Gradle (Kotlin)**
105105

106106
```kotlin
107107
dependencies {
108-
implementation("de.splatgames.aether.datafixers:aether-datafixers-core:0.3.0")
108+
implementation("de.splatgames.aether.datafixers:aether-datafixers-core:0.4.0")
109109
}
110110
```
111111

@@ -125,7 +125,7 @@ The Bill of Materials (BOM) ensures consistent versions across all Aether Datafi
125125
<dependency>
126126
<groupId>de.splatgames.aether.datafixers</groupId>
127127
<artifactId>aether-datafixers-bom</artifactId>
128-
<version>0.3.0</version>
128+
<version>0.4.0</version>
129129
<type>pom</type>
130130
<scope>import</scope>
131131
</dependency>
@@ -149,7 +149,7 @@ The Bill of Materials (BOM) ensures consistent versions across all Aether Datafi
149149

150150
```groovy
151151
dependencies {
152-
implementation platform('de.splatgames.aether.datafixers:aether-datafixers-bom:0.3.0')
152+
implementation platform('de.splatgames.aether.datafixers:aether-datafixers-bom:0.4.0')
153153
154154
// No version needed
155155
implementation 'de.splatgames.aether.datafixers:aether-datafixers-core'
@@ -161,7 +161,7 @@ dependencies {
161161

162162
```kotlin
163163
dependencies {
164-
implementation(platform("de.splatgames.aether.datafixers:aether-datafixers-bom:0.3.0"))
164+
implementation(platform("de.splatgames.aether.datafixers:aether-datafixers-bom:0.4.0"))
165165

166166
// No version needed
167167
implementation("de.splatgames.aether.datafixers:aether-datafixers-core")
@@ -194,15 +194,15 @@ Optics provide composable, type-safe accessors for nested data structures. They
194194

195195
### Optic Hierarchy
196196

197-
| Optic | Focus | Description |
198-
|---------------|-------------------|-------------------------------------------------------|
199-
| **Iso** | 1 ↔ 1 | Reversible 1-to-1 transformation between two types |
197+
| Optic | Focus | Description |
198+
|---------------|-------------------|---------------------------------------------------------------|
199+
| **Iso** | 1 ↔ 1 | Reversible 1-to-1 transformation between two types |
200200
| **Lens** | 1 → 1 | Focus on exactly one part of a product type (always succeeds) |
201-
| **Prism** | 1 → 0..1 | Focus on one case of a sum type (may not match) |
202-
| **Affine** | 1 → 0..1 | Combines lens and prism capabilities |
203-
| **Traversal** | 1 → 0..n | Focus on zero or more parts |
204-
| **Getter** | 1 → 1 (read-only) | Read-only focus (no modification) |
205-
| **Finder** | Type → Optic | Locates nested types within a schema |
201+
| **Prism** | 1 → 0..1 | Focus on one case of a sum type (may not match) |
202+
| **Affine** | 1 → 0..1 | Combines lens and prism capabilities |
203+
| **Traversal** | 1 → 0..n | Focus on zero or more parts |
204+
| **Getter** | 1 → 1 (read-only) | Read-only focus (no modification) |
205+
| **Finder** | Type → Optic | Locates nested types within a schema |
206206

207207
### Lens Example
208208

@@ -334,13 +334,13 @@ void testFieldRename() {
334334

335335
### Testkit Features
336336

337-
| Component | Description |
338-
|-----------|-------------|
339-
| **TestData** | Fluent builders for creating test data (`TestData.gson().object()...`) |
340-
| **AetherAssertions** | Custom AssertJ assertions for `Dynamic`, `DataResult`, `Typed` |
341-
| **DataFixTester** | Test harness for isolated DataFix testing |
342-
| **QuickFix** | Factory methods for common fix patterns (rename, add, remove, transform) |
343-
| **MockSchemas** | Mock schema utilities for testing |
337+
| Component | Description |
338+
|----------------------|--------------------------------------------------------------------------|
339+
| **TestData** | Fluent builders for creating test data (`TestData.gson().object()...`) |
340+
| **AetherAssertions** | Custom AssertJ assertions for `Dynamic`, `DataResult`, `Typed` |
341+
| **DataFixTester** | Test harness for isolated DataFix testing |
342+
| **QuickFix** | Factory methods for common fix patterns (rename, add, remove, transform) |
343+
| **MockSchemas** | Mock schema utilities for testing |
344344

345345
Add to your project:
346346

@@ -556,22 +556,21 @@ mvn test
556556
- **High-performance APIs** — `Rules.batch()` and single-pass conditional transforms
557557
- **Performance optimizations** — Path caching, optimized fix registry, reduced allocations
558558

559-
- **v0.3.0** (current)
559+
- **v0.3.0**
560560
- **CLI module** — Migrate files from the command line with batch processing and reports
561561
- **Schema Tools module** — Schema diffing, migration analysis, validation, and introspection
562562
- **Fix coverage analysis** — Detect schema changes without corresponding DataFixes
563563
- **Convention checking** — Enforce naming conventions for types, fields, and classes
564564

565-
- **v0.4.0** (next)
565+
- **v0.4.0** (current)
566566
- **Spring Boot Starter** — Auto-configuration, MigrationService with fluent API
567567
- **Actuator integration** — Health indicator, info contributor, custom endpoint, Micrometer metrics
568568
- **Multi-domain support** — Multiple DataFixers with @Qualifier annotations
569569
- **DynamicOps auto-configuration** — Conditional beans for all supported formats
570570
- **Multi-format DynamicOps** — YAML (SnakeYAML, Jackson), TOML (Jackson), XML (Jackson)
571571
- **Package restructuring** — Format-first package organization (`codec.json.gson`, `codec.yaml.jackson`, etc.)
572-
- **Debug utilities** — Pretty printers / tree diff for Dynamic structures (dev-facing)
573572

574-
- **v0.5.0** (API freeze candidate)
573+
- **v0.5.0** (next, API freeze candidate)
575574
- **API stabilization pass** — Naming/packaging cleanup + deprecations completed
576575
- **Compatibility checks in CI** — Binary/source compatibility guardrails for public API
577576
- **Hardened error model** — Consistent exception types + structured error details

0 commit comments

Comments
 (0)