Skip to content

Commit 9059ea4

Browse files
committed
Bumped version to 0.0.4
1 parent 15ed01f commit 9059ea4

File tree

5 files changed

+25
-6
lines changed

5 files changed

+25
-6
lines changed

CHANGELOG.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,22 @@
1+
# 0.0.4
2+
3+
- **🛑 Breaking**: Renamed `@CrystallisData` to `@Crystallise`, and `CrystallisMixin` to `CrystallisData`
4+
- Introduced `MutableCrystallisData` and `ImmutableCrystallisData` for better code path splitting
5+
- **🛑 Breaking**: Renamed `copyFrom` to `setFrom` to better reflect its purpose
6+
- **🛑 Breaking**: Implemented a (new) `copyFrom`: it creates a new instance (like `copyWith`) by copying compatible fields from another instance (like `setFrom`)
7+
- **✨ New!** `copyWith` now supports explicit/implicit null distinction, allowing nullable fields to be set to null via `copyWith` without ambiguity (#6, #7, thanks @FMorschel 🩵!)
8+
- **✨ New!** Implemented `tryGet`: a safe alternative to `get` that returns `null` instead of throwing if the field doesn't exist or is of an incompatible type
9+
- **🔧 Fixed** support for multiple data classes per file (#5)
10+
- Improved annotation constraints and error messages for a better developer experience
11+
- Fixed nullable fields not being supported (#2)
12+
- Refactored serialization
13+
- Fixed JSON incompatibility with some non-String keys
14+
- Improved testing
15+
- Improved map deserialization (maintains original key/value types instead of (now broken) heuristics)
16+
- **🛑 Breaking**: Renamed `@Serializer` to `@Serializable` and added a `Serializer` base abstract class class for better extensibility
17+
- Properly implemented codegen for custom serializers via field annotations
18+
19+
120
# 0.0.3
221

322
- Implemented serialization!

packages/crystallis/example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: crystallis_example
22
description: Example for crystallis
3-
version: 0.0.3
3+
version: 0.0.4
44

55
publish_to: "none"
66

packages/crystallis/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: crystallis
22
description: Data class codegen w/ validation & runtime metadata for Dart
3-
version: 0.0.3
3+
version: 0.0.4
44
repository: https://github.com/kerberjg/crystallis.dart
55
license: MPL-2.0
66

packages/crystallis_generator/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ Add to your `pubspec.yaml`:
88

99
```yaml
1010
dependencies:
11-
crystallis: ^0.0.3
11+
crystallis: ^0.0.4
1212

1313
dev_dependencies:
14-
crystallis_generator: ^0.0.3
14+
crystallis_generator: ^0.0.4
1515
build_runner: ^2.4.0
1616
```
1717

packages/crystallis_generator/pubspec.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: crystallis_generator
22
description: Compile-time codegen utility for the Crystallis package (use with `dev_dependencies`)
3-
version: 0.0.3
3+
version: 0.0.4
44
repository: https://github.com/kerberjg/crystallis.dart
55
license: MPL-2.0
66

@@ -14,7 +14,7 @@ dependencies:
1414
build: ^4.0.4
1515
meta: ^1.9.0
1616
source_gen: ^4.2.0
17-
crystallis: ">=0.0.3 <0.1.0"
17+
crystallis: ">=0.0.4 <0.1.0"
1818

1919
dev_dependencies:
2020
build_test: ^3.5.5

0 commit comments

Comments
 (0)