doc: add Elsa 3.6.0 release notes as doc/changelogs/3.6.0.md#7347
doc: add Elsa 3.6.0 release notes as doc/changelogs/3.6.0.md#7347sfmskywalker merged 2 commits intorelease/3.6.0from
Conversation
Co-authored-by: sfmskywalker <938393+sfmskywalker@users.noreply.github.com>
Greptile SummaryThis PR adds a versioned developer-facing changelog for the 3.6.0 release at Issues found:
Confidence Score: 4/5
|
| Filename | Overview |
|---|---|
| doc/changelogs/3.6.0.md | New 3.6.0 release notes file; contains a factual inaccuracy on line 9 where commit SHA d4b69be44b (the WaitAny fix, #7340) is incorrectly referenced for the database migration breaking change (#7338) — the correct SHA is 71438596f3. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["3.6.0 Release Notes"] --> B["⚠️ Breaking Changes"]
A --> C["✨ New Features"]
A --> D["🔧 Improvements"]
A --> E["🐛 Bug Fixes"]
B --> B1["DB Migrations — ActivityNodeId widened\n(#7338 → 71438596f3 ✓)"]
B --> B2["Multitenancy — TenantId convention\nnull → agnostic, '' → default (#7217, #7226)"]
B --> B3["DefaultRegistriesPopulator constructor\n+ INotificationSender (#7293)"]
B --> B4["Elsa.Common — DistributedLock.Core\n(#7169)"]
C --> C1["Activity host registration\n(HostMethodActivity / #7172)"]
C --> C2["Dispatch lifecycle notifications\n(BackgroundWorkflowDispatcher / #7157)"]
C --> C3["Consumers API & recursive export\n(GET /workflow-definitions/.../consumers / #7309)"]
C --> C4["Default commit strategies\n(WithDefaultWorkflowCommitStrategy / #7148)"]
E --> E1["WaitAny race condition fix\n(#7340 → d4b69be44b ✓)"]
E --> E2["Cross-tenant cache collision\n(CachingWorkflowDefinitionService / #7318)"]
E --> E3["Zstd IronCompress memory leak\n(#7193)"]
E --> E4["Literal regression\n(ActivityExecutionContext.TryGet / #7075)"]
style B fill:#ffe0e0,stroke:#c00
style C fill:#e0f7e0,stroke:#080
style D fill:#e0e8ff,stroke:#008
style E fill:#fff3cd,stroke:#b80
Last reviewed commit: a4cb1e0
|
|
||
| ## ⚠️ Breaking changes / upgrade notes | ||
|
|
||
| - **Database migrations (EF Core — all providers)**: `ActivityNodeId` columns in `ActivityExecutionRecords` and `WorkflowExecutionLogRecords` have been widened to unlimited types (`nvarchar(max)` / `longtext` / `NCLOB`) to support deeply nested workflows. The corresponding B-tree indexes (`IX_ActivityExecutionRecord_ActivityNodeId`, `IX_WorkflowExecutionLogRecord_ActivityNodeId`) are dropped as part of the V3_6 migrations. **You must apply the EF Core migrations before upgrading to 3.6.0 in any SQL Server, MySQL, or Oracle deployment.** ([d4b69be44b](https://github.com/elsa-workflows/elsa-core/commit/d4b69be44b)) ([#7338](https://github.com/elsa-workflows/elsa-core/pull/7338)) |
There was a problem hiding this comment.
Wrong commit SHA linked to database migrations breaking change
The commit link d4b69be44b does not point to the EF Core / ActivityNodeId column-widening change — it is actually the commit for the WaitAny join-ordering fix (#7340). The correct SHA for the database migration work (#7338) is 71438596f3, as correctly used on line 83 under the Fixes section.
Readers who click this link to understand the breaking migration will be taken to the wrong change, which could cause confusion when they are preparing upgrade steps.
| - **Database migrations (EF Core — all providers)**: `ActivityNodeId` columns in `ActivityExecutionRecords` and `WorkflowExecutionLogRecords` have been widened to unlimited types (`nvarchar(max)` / `longtext` / `NCLOB`) to support deeply nested workflows. The corresponding B-tree indexes (`IX_ActivityExecutionRecord_ActivityNodeId`, `IX_WorkflowExecutionLogRecord_ActivityNodeId`) are dropped as part of the V3_6 migrations. **You must apply the EF Core migrations before upgrading to 3.6.0 in any SQL Server, MySQL, or Oracle deployment.** ([d4b69be44b](https://github.com/elsa-workflows/elsa-core/commit/d4b69be44b)) ([#7338](https://github.com/elsa-workflows/elsa-core/pull/7338)) | |
| - **Database migrations (EF Core — all providers)**: `ActivityNodeId` columns in `ActivityExecutionRecords` and `WorkflowExecutionLogRecords` have been widened to unlimited types (`nvarchar(max)` / `longtext` / `NCLOB`) to support deeply nested workflows. The corresponding B-tree indexes (`IX_ActivityExecutionRecord_ActivityNodeId`, `IX_WorkflowExecutionLogRecord_ActivityNodeId`) are dropped as part of the V3_6 migrations. **You must apply the EF Core migrations before upgrading to 3.6.0 in any SQL Server, MySQL, or Oracle deployment.** ([71438596f3](https://github.com/elsa-workflows/elsa-core/commit/71438596f3)) ([#7338](https://github.com/elsa-workflows/elsa-core/pull/7338)) |
| ## 📦 Full changelog | ||
|
|
||
| - **Trigger serialization fix** (`WorkflowTriggerEqualityComparer`): avoid type discriminator injection during equality comparison. ([6f53c26f24](https://github.com/elsa-workflows/elsa-core/commit/6f53c26f24)) | ||
| - **`WorkflowExecutionContext`**: removed unused `ClearCompletionCallbacks` method; `correlationId` parameter made non-optional in the constructor. ([fa798b0a47](https://github.com/elsa-workflows/elsa-core/commit/fa798b0a47), [79a64e90fd](https://github.com/elsa-workflows/elsa-core/commit/79a64e90fd)) |
There was a problem hiding this comment.
Potentially undocumented breaking changes in Full changelog section
Two changes listed only in the Full changelog section may qualify as public API breaking changes and could warrant entries in the
ClearCompletionCallbacksremoved fromWorkflowExecutionContext— any external code calling this method will fail to compile after upgrading.correlationIdconstructor parameter made non-optional inWorkflowExecutionContext— callers that previously relied on the parameter being optional (or omitting it) will also fail to compile.
If these only affect internal/framework-level usage, no action is needed. However, if they are part of the public API surface, consider promoting them to the breaking changes section so that upgrading users are made aware before running into build errors.
Persists the 3.6.0 release notes as a versioned markdown file in the repository under
doc/changelogs/.What's included
3.5.3...3.6.0DistributedLockmeta-package removal,DefaultRegistriesPopulatorconstructor change)WaitAnyrace condition, cross-tenant cache collision, Zstd memory leak,Literalregression, workflow reload pipeline issuesNotes
doc/releases/was not usable —.gitignoreline 27 matches[Rr]elease*/directories. Useddoc/changelogs/instead.💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.