Skip to content

Commit abfc0e8

Browse files
Merge pull request #109 from diffo-dev/105-latest_ash_neo4j
105 latest ash neo4j
2 parents 4416d9a + 199b8dc commit abfc0e8

25 files changed

Lines changed: 115 additions & 217 deletions

CHANGELOG.md

Lines changed: 49 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -11,87 +11,90 @@ See [Conventional Commits](Https://conventionalcommits.org) for commit guideline
1111

1212
<!-- changelog -->
1313

14-
## [v0.1.0](https://github.com/diffo-dev/diffo/compare/v0.1.0...v0.1.0) (2025-08-11)
1514

16-
### Features:
17-
* initial version on AshNeo4j DataLayer
1815

19-
## [v0.1.1](https://github.com/diffo-dev/diffo/compare/v0.1.0...v0.1.1) (2025-09-09)
16+
## [v0.2.0](https://github.com/diffo-dev/diffo/compare/v0.1.6...v0.2.0) (2026-04-24)
2017

21-
### Features:
22-
* update for AshNeo4j DSL changes
23-
* refactor specification relationships
24-
* characteristic value schemas
25-
* customise instance via specification
26-
* improve relationships to avoid circular loads
18+
### Breaking Changes
2719

28-
## [v0.1.2](https://github.com/diffo-dev/diffo/compare/v0.1.1...v0.1.2) (2025-10-20)
20+
* Updated to ash_neo4j 0.3.1 and bolty 0.0.10 — no database compatibility with prior versions due to significant changes in the data layer and Bolt protocol handling
2921

3022
### Features
3123

32-
* REUSE compliant
33-
34-
## [v0.1.3](https://github.com/diffo-dev/diffo/compare/v0.1.2...v0.1.3) (2025-12-01)
24+
* `Diffo.Type.Value` — union of `Diffo.Type.Primitive` and `Diffo.Type.Dynamic`, enabling mixed primitive and typed-struct values on characteristics and other resources
25+
* `Diffo.Type.Primitive` — typed union of string, integer, float, boolean, date, time, datetime, duration
26+
* `Diffo.Type.Dynamic` — runtime-typed struct for Ash.Type.NewType values
27+
* `Diffo.Type.Dynamic.is_valid?/1` — predicate to check whether a module is a valid Dynamic type (Ash.Type.NewType with storage_type :map) before constructing a value
28+
* `Characteristic.values` — homogeneous array of `Diffo.Type.Value` on a characteristic, with `is_array` boolean flag; supports morphing between scalar and array representations
29+
* `Diffo.Unwrap` on `List` — unwraps each element, enabling `Diffo.Unwrap.unwrap/1` to reduce nested wrapped lists to plain Elixir values in one call
30+
* Provider instance extension DSL — characteristic and feature characteristic value types now accept `{:array, Module}` in addition to plain module references
3531

36-
### Features
32+
### Fixes
3733

38-
* place_ref source party or place
39-
* party_ref source place or party
40-
* instance events
34+
* `Diffo.Type.Value` nil update — override `handle_change/3` to prevent Ash union type from wrapping nil in the previous member type, which caused malformed JSON to be written to Neo4j
35+
* `Diffo.Type.Value` nil array update — added nil guards to `handle_change_array/3` and `prepare_change_array/3` to prevent enumeration errors when setting an array characteristic to nil
36+
* `Diffo.Type.Dynamic` nil safety — added nil clauses to `cast_stored/2` and `dump_to_native/2`
4137

4238
### Maintenance
4339

44-
* remove access domain
40+
* bolty 0.0.10 — native DateTime handling for both BOLT 4.x and BOLT 5.x
41+
* `Diffo.Unwrap` protocol documentation — recursive unwrap behaviour, custom implementation guide, and array examples added to livebook and module docs
4542

46-
## [v0.1.4](https://github.com/diffo-dev/diffo/compare/v0.1.3...v0.1.4) (2026-03-12)
43+
## [v0.1.6](https://github.com/diffo-dev/diffo/compare/v0.1.5...v0.1.6) (2026-03-19)
4744

48-
### Features
45+
### Fixes
4946

50-
* assigner unassign operation
47+
* incorrect domain label
5148

5249
### Maintenance
5350

54-
* updated ash_neo4j, uses bolty rather than boltx
51+
* improved error handling
5552

56-
## [v0.1.5](https://github.com/diffo-dev/diffo/compare/v0.1.4...v0.1.5) (2026-03-19)
53+
[v0.1.5](https://github.com/diffo-dev/diffo/compare/v0.1.4...v0.1.5) (2026-03-19)
5754

5855
### Fixes
5956

6057
* fixed relationship enrichment inconsistent across neo4j versions
6158

62-
## [v0.2.0](https://github.com/diffo-dev/diffo/compare/v0.1.6...v0.2.0) (2026-04-24)
59+
## [v0.1.4](https://github.com/diffo-dev/diffo/compare/v0.1.3...v0.1.4) (2026-03-12)
6360

64-
### Breaking Changes
61+
### Features
6562

66-
* Updated to ash_neo4j 0.3.1 and bolty 0.0.10 — no database compatibility with prior versions due to significant changes in the data layer and Bolt protocol handling
63+
* assigner unassign operation
6764

68-
### Features
65+
### Maintenance
6966

70-
* `Diffo.Type.Value` — union of `Diffo.Type.Primitive` and `Diffo.Type.Dynamic`, enabling mixed primitive and typed-struct values on characteristics and other resources
71-
* `Diffo.Type.Primitive` — typed union of string, integer, float, boolean, date, time, datetime, duration
72-
* `Diffo.Type.Dynamic` — runtime-typed struct for Ash.Type.NewType values
73-
* `Diffo.Type.Dynamic.is_valid?/1` — predicate to check whether a module is a valid Dynamic type (Ash.Type.NewType with storage_type :map) before constructing a value
74-
* `Characteristic.values` — homogeneous array of `Diffo.Type.Value` on a characteristic, with `is_array` boolean flag; supports morphing between scalar and array representations
75-
* `Diffo.Unwrap` on `List` — unwraps each element, enabling `Diffo.Unwrap.unwrap/1` to reduce nested wrapped lists to plain Elixir values in one call
76-
* Provider instance extension DSL — characteristic and feature characteristic value types now accept `{:array, Module}` in addition to plain module references
67+
* updated ash_neo4j, uses bolty rather than boltx
7768

78-
### Fixes
69+
## [v0.1.3](https://github.com/diffo-dev/diffo/compare/v0.1.2...v0.1.3) (2025-12-01)
7970

80-
* `Diffo.Type.Value` nil update — override `handle_change/3` to prevent Ash union type from wrapping nil in the previous member type, which caused malformed JSON to be written to Neo4j
81-
* `Diffo.Type.Value` nil array update — added nil guards to `handle_change_array/3` and `prepare_change_array/3` to prevent enumeration errors when setting an array characteristic to nil
82-
* `Diffo.Type.Dynamic` nil safety — added nil clauses to `cast_stored/2` and `dump_to_native/2`
71+
### Features
72+
73+
* place_ref source party or place
74+
* party_ref source place or party
75+
* instance events
8376

8477
### Maintenance
8578

86-
* bolty 0.0.10 — native DateTime handling for both BOLT 4.x and BOLT 5.x
87-
* `Diffo.Unwrap` protocol documentation — recursive unwrap behaviour, custom implementation guide, and array examples added to livebook and module docs
79+
* remove access domain
8880

89-
## [v0.1.6](https://github.com/diffo-dev/diffo/compare/v0.1.5...v0.1.6) (2026-03-19)
81+
## [v0.1.2](https://github.com/diffo-dev/diffo/compare/v0.1.1...v0.1.2) (2025-10-20)
9082

91-
### Fixes
83+
### Features
9284

93-
* incorrect domain label
85+
* REUSE compliant
9486

95-
### Maintenance
87+
## [v0.1.1](https://github.com/diffo-dev/diffo/compare/v0.1.0...v0.1.1) (2025-09-09)
88+
89+
### Features:
90+
* update for AshNeo4j DSL changes
91+
* refactor specification relationships
92+
* characteristic value schemas
93+
* customise instance via specification
94+
* improve relationships to avoid circular loads
95+
96+
## [v0.1.0](https://github.com/diffo-dev/diffo/compare/v0.1.0...v0.1.0) (2025-08-11)
97+
98+
### Features:
99+
* initial version on AshNeo4j DataLayer
96100

97-
* improved error handling

mix.exs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,8 @@ defmodule Diffo.MixProject do
9999
{:ash_outstanding, "~> 0.2.3"},
100100
{:ash_jason, "~> 3.0"},
101101
{:ash_state_machine, "~> 0.2.12"},
102-
{:ash_neo4j, ash_neo4j_version("~> 0.3.1")},
102+
{:ash_neo4j, ash_neo4j_version("~> 0.4.1")},
103+
{:bolty, ">= 0.0.12"},
103104
{:ash, ash_version("~> 3.0 and >= 3.24.2")},
104105
{:uuid, "~> 1.1"},
105106
{:igniter, ">= 0.6.29 and < 1.0.0-0",

0 commit comments

Comments
 (0)