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
23 changes: 7 additions & 16 deletions guides/explanations/fork-differences.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,13 @@ This fork maintains an independent release cycle to introduce new features and i

## Breaking Changes ❌

### **Removed Deprecated Ecto Projections "do end" Block Syntax**

**Changes:**
- Removed deprecated `project(event, do: block)` macro variant
- Removed deprecated `project(event, metadata, do: block)` macro variant
- Only function-based syntax is now supported: `project(event, fn multi -> ... end)`

### **Removed ProcessManager Support**
[PR #24](https://github.com/straw-hat-team/commanded/pull/24)

Expand All @@ -24,8 +31,6 @@ This fork maintains an independent release cycle to introduce new features and i

**Reason:** The saga pattern can be achieved using event handlers with read models and aggregates, eliminating the need for the additional ProcessManager abstraction.

---

### **Removed Upcasting Support**
[PR #26](https://github.com/straw-hat-team/commanded/pull/26)

Expand All @@ -36,8 +41,6 @@ This fork maintains an independent release cycle to introduce new features and i

**Reason:** Event schema transformations can be handled explicitly in event handlers and aggregates using pattern matching, eliminating the need for a global upcasting component.

---

### **EnrichedMetadata Struct**
[PR #11](https://github.com/straw-hat-team/commanded/pull/11)

Expand All @@ -47,8 +50,6 @@ This fork maintains an independent release cycle to introduce new features and i

**Breaking:** Event handler callbacks now receive `%EnrichedMetadata{}` instead of a plain map.

---

## Features Added ✨

### **UUIDv7 Support**
Expand All @@ -58,26 +59,20 @@ This fork maintains an independent release cycle to introduce new features and i
- Added UUIDv7 generation support for command and event IDs
- Modified command router to use `UUID.uuid7/0` by default

---

### **Configurable UUID Provider**

**Changes:**
- Integrated `Uniq.UUID` library for UUID generation
- Made UUID provider configurable
- Simplified UUID module by delegating to Uniq

---

### **Aggregate Telemetry for Version Conflicts**
[PR #8](https://github.com/straw-hat-team/commanded/pull/8)

**Changes:**
- Added telemetry events for wrong expected version errors in aggregates
- Enhanced monitoring capabilities for version conflicts

---

### **Custom Event ID Support**
[PR #2](https://github.com/straw-hat-team/commanded/pull/2)

Expand All @@ -86,17 +81,13 @@ This fork maintains an independent release cycle to introduce new features and i
- Ability to set custom event IDs from event structs
- Support for deterministic event IDs

---

### **EventStore Adapter**
[PR #1](https://github.com/straw-hat-team/commanded/pull/1)

**Changes:**
- Bundled `Commanded.EventStore.Adapters.EventStore` directly into Commanded
- Eliminates need for separate `commanded_eventstore_adapter` package dependency

---

### **Ecto Projections Integration**

**Changes:**
Expand Down
30 changes: 0 additions & 30 deletions lib/commanded/projections/ecto.ex
Original file line number Diff line number Diff line change
Expand Up @@ -580,21 +580,6 @@ if Code.ensure_loaded?(Ecto) do
end
end

defmacro project(event, do: block) do
IO.warn(
"project macro with \"do end\" block is deprecated; use project/2 with function instead",
Macro.Env.stacktrace(__ENV__)
)

quote do
def handle(unquote(event) = event, metadata) do
update_projection(event, metadata, fn var!(multi) ->
unquote(block)
end)
end
end
end

@doc """
Project a domain event into a read model by appending one or more operations
to the `Ecto.Multi` struct passed to the projection function you define
Expand All @@ -617,21 +602,6 @@ if Code.ensure_loaded?(Ecto) do
end
end

defmacro project(event, metadata, do: block) do
IO.warn(
"project macro with \"do end\" block is deprecated; use project/3 with function instead",
Macro.Env.stacktrace(__ENV__)
)

quote do
def handle(unquote(event) = event, unquote(metadata) = metadata) do
update_projection(event, metadata, fn var!(multi) ->
unquote(block)
end)
end
end
end

@doc """
Project a domain event and its metadata map into a read model by appending one
or more operations to the `Ecto.Multi` struct passed to the projection
Expand Down
72 changes: 0 additions & 72 deletions test/projections/deprecated_projection_test.exs

This file was deleted.

Loading